File Details
JHS-Votifier-1.0.2.jar
- R
- Jan 21, 2026
- 4.65 MB
- 29
- Early Access
File Name
JHS-Votifier-1.0.2.jar
Supported Versions
- Early Access
Changelog
All notable changes to JHS-Votifier will be documented in this file.
[1.0.2] - 2026-01-20
Added
Replay Attack Prevention - Votes with timestamps older than 5 minutes are now rejected
- New
securitysection inconfig.jsonwithmaxVoteAgeMinutessetting - Configurable max vote age (default: 5 minutes, set to 0 to disable)
- Protects against vote replay attacks where old vote payloads are resent
- Also rejects votes with timestamps too far in the future (clock skew tolerance: 1 minute)
- New
Timestamp Auto-Detection - Automatically handles both seconds and milliseconds timestamps
- Voting sites may send Unix timestamps in seconds (10 digits) or milliseconds (13 digits)
- Plugin auto-detects format and normalizes to milliseconds internally
- Works across all protocols (V1, V2, HTTP)
Config Changes
New security section in config.json:
{
"security": {
"maxVoteAgeMinutes": 5,
"_comment": "maxVoteAgeMinutes: Votes older than this are rejected to prevent replay attacks. Set to 0 to disable."
}
}
[1.0.1] - 2026-01-20
Added
On-Screen Popup Notifications - Vote notifications now support Hytale's native on-screen popup system alongside chat messages
- Vote broadcasts can show popups to all players
- Voter "thank you" messages can show popups to the voter
- Vote reminders can show popups to remind players to vote
- Each notification type has independent
chatEnabledandpopupEnabledtoggles - Configurable popup styles: Default, Success (green), Warning (yellow), Danger (red)
- Popup title and description support TaleMessage formatting and placeholders
Dedicated HTTP Token - HTTP endpoint now has its own token, separate from V2 TCP token
- Clearer separation between V2 TCP (port 8192) and HTTP POST protocols
- Auto-generated on first run like V2 token
- Delete
http_config.jsonto regenerate
serviceTokens Help - Config files now include
_serviceTokensHelpfield with example format- Shows how to give each voting site a unique token
- serviceTokens defaults to empty, example shown in help text
HTTP Endpoint Documentation -
http_config.jsonnow shows available endpoints_endpointVote: POST /JHS/Votifier/vote_endpointStatus: GET /JHS/Votifier/status_endpointTest: GET /JHS/Votifier/test
Fixed
- Vote reminder service now properly restarts on
/votereloadto apply new interval settings
Changed
- JAR filename now uses proper casing:
JHS-Votifier-1.0.1.jar - Improved config documentation with clearer comments
- Updated README with comprehensive token documentation
- Reload command now shows reminder interval in output
Config Changes
New notifications section in config.json:
{
"notifications": {
"voteBroadcast": {
"chatEnabled": true,
"popupEnabled": true,
"popupStyle": "Success",
"popupTitle": "<gold>Vote Received!</gold>",
"popupDescription": "<green>%player%</green> voted on <aqua>%service%</aqua>"
},
"voterNotify": {
"chatEnabled": true,
"popupEnabled": true,
"popupStyle": "Success",
"popupTitle": "<green>Thank You!</green>",
"popupDescription": "Your vote on <aqua>%service%</aqua> was received!"
},
"reminder": {
"chatEnabled": true,
"popupEnabled": false,
"popupStyle": "Warning",
"popupTitle": "<yellow>Vote Reminder</yellow>",
"popupDescription": "Don't forget to <aqua>/vote</aqua> for rewards!"
}
}
}
New http_config.json structure with dedicated token:
{
"enabled": false,
"token": "auto-generated-http-token",
"serviceTokens": {},
"_serviceTokensHelp": "Example: {\"JoinHytaleServers\": \"token-for-jhs\", ...}"
}
[1.0.0] - Initial Release
Features
- Multi-protocol vote receiving (Votifier V1, V2, HTTP)
- UDP Query protocol for server status polling
- Vote rewards with configurable commands
- Per-service reward configuration
- TaleMessage rich text formatting
- Vote GUI with clickable links
- Chat-based vote links
- Vote reminders for online players
- Rate limiting (30 requests/minute)
- RSA key auto-generation (V1)
- Token auto-generation (V2)

