🧩 All in one - Votifier, Rewards, Vote Command, Reminders, Colors, Broadcasts, Sounds, Notifications and custom UI! Votifier alternative.
A powerful Hytale plugin that rewards players for voting on server lists using both Votifier V1 and V2 protocols.

<green>, <gold>, <aqua>, etc.)/vote command opens a GUI with clickable vote site linksVoteReceivedEvent for other plugins to integratehytalist.hyvote.command.vote allowed by default)hytalist.hyvote.admin)hytalist.hyvote.admin)hytalist.hyvote.admin)/plugin load Hytalist:HyVote
Main configuration file for the Votifier server and rewards.
{
"Port": 8192,
"Host": "0.0.0.0",
"Token": "auto-generated-secure-token",
"DisableV1Protocol": false,
"RewardCommands": [
"give {player} Rock_Gem_Diamond --quantity 1",
"give {player} Rock_Gem_Emerald --quantity 5"
],
"BroadcastMessage": true,
"BroadcastMessages": [
"<green>{player}</green> <gray>has voted on</gray> <aqua>{service}</aqua><gray>!</gray>",
"<gold>Vote for the server to receive awesome rewards!</gold>"
],
"DebugMode": false
}#### Options
Note: RSA keys for V1 protocol are auto-generated in rsa/public.key and rsa/private.key.
#### 🏷️ Placeholders
Use these in reward commands and broadcast messages:

Configure notifications sent to players when they vote. Supports multiple notification types.
{
"Title": {
"Enabled": false,
"Title": "<green>Reward Received!</green>",
"Subtitle": "<gray>Thanks for voting on</gray> <aqua>{service}</aqua><gray>!</gray>",
"DurationSeconds": 3,
"FadeInSeconds": 0.5,
"FadeOutSeconds": 0.5
},
"Notification": {
"Enabled": true,
"Title": "<green>Reward Received!</green>",
"Description": "<gray>Thanks for your vote on</gray> <aqua>{service}</aqua><gray>!</gray>",
"IconItem": "Rock_Gem_Diamond"
},
"Chat": {
"Enabled": false,
"Messages": [
"<green>Reward Received!</green>",
"<gray>Thanks for your vote on</gray> <aqua>{service}</aqua><gray>!</gray>"
]
},
"Sound": {
"Enabled": true,
"Name": "SFX_Player_Pickup_Item"
}
}#### Title Options (Big text on screen)
#### Notification Options (Small popup)
#### Chat Options
#### Sound Options
SFX_Player_Pickup_Item (string)

Configure the /vote command and vote site links. You can toggle UI, Chat or both.
{
"Enabled": true,
"VoteLinks": {
"Hytalist.com": "https://hytalist.com/test-server?nick={player}",
"AnotherServerList": "https://example.com"
},
"UI": {
"Enabled": true,
"Title": "Vote for the Server",
"VoteLinkTitle": "Vote Link (Copy and open in Browser)",
"VoteLinkDescription": "Click a site above to see the vote link"
},
"Chat": {
"Enabled": true,
"Header": "<gray>========== <green>Vote Links</green> ==========</gray>",
"Format": "<aqua>{siteName}</aqua><gray>:</gray> <white><click:{siteUrl}>{siteUrl}</click></white>",
"Footer": "<gray>===================================</gray>"
}
}#### Options
#### UI Options
#### Chat Options
{siteName} and {siteUrl} placeholders (string)The {player} placeholder in URLs will be replaced with the player's username.

Configure vote reminders for players who haven't voted recently.
{
"Enabled": true,
"AfterHours": 24,
"DelayInSeconds": 60,
"CheckIntervalSeconds": 60,
"Title": {
"Enabled": true,
"Title": "Vote Reminder",
"Subtitle": "Use /vote to support the server!",
"DurationSeconds": 3,
"FadeInSeconds": 0.5,
"FadeOutSeconds": 0.5
},
"Notification": {
"Enabled": false,
"Title": "<gold>Vote Reminder</gold>",
"Description": "<gray>You haven't voted in a while!</gray> <aqua>Use /vote</aqua>",
"IconItem": "Rock_Gem_Diamond"
},
"Chat": {
"Enabled": false,
"Messages": [
"<gold>You haven't voted in a while!</gold>",
"<gray>Support the server by voting:</gray> <aqua>/vote</aqua>"
]
},
"Sound": {
"Enabled": true,
"Name": "SFX_UI_Quest_Objective_Complete"
}
}#### Options
#### Title Options (Big text on screen)
#### Notification Options (Small popup)
#### Chat Options
#### Sound Options

HyVote uses TaleMessage for color formatting. Available tags:
<black>, <dark_blue>, <dark_green>, <dark_aqua>, <dark_red>, <dark_purple>, <gold>, <gray>, <dark_gray>, <blue>, <green>, <aqua>, <red>, <light_purple>, <yellow>, <white>
Example:
<green>{player}</green> <gray>voted on</gray> <gold>{service}</gold><gray>!</gray>You can even do rainbow colors! Example:
<gradient:red:yellow:green:blue:purple>Rainbow!</gradient>config.json (auto-generated on first run)rsa/public.key (auto-generated on first run)DebugMode and votingAdd the HyVote API to your project:
Gradle (Kotlin DSL)
repositories {
maven { url = uri("https://jitpack.io") }
}
dependencies {
compileOnly("com.github.hytalist:hyvote-api:1.0.0")
}Gradle (Groovy)
repositories {
maven { url 'https://jitpack.io' }
}
dependencies {
compileOnly 'com.github.hytalist:hyvote-api:1.0.0'
}Maven
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.github.hytalist</groupId>
<artifactId>hyvote-api</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>Listen to vote events from other plugins:
Java
import com.hytalist.hyvote.event.VoteReceivedEvent;
import com.hytalist.hyvote.model.Vote;
@Override
public void setup() {
eventRegistry.registerGlobal(VoteReceivedEvent.class, event -> {
Vote vote = event.getVote();
String player = vote.getUsername();
String service = vote.getServiceName();
// Cancel default rewards
event.setCancelled(true);
// Handle with custom logic
});
}Kotlin
import com.hytalist.hyvote.event.VoteReceivedEvent
override fun setup() {
eventRegistry.registerGlobal(VoteReceivedEvent::class.java) { event ->
val vote = event.vote
val player = vote.username
val service = vote.serviceName
// Cancel default rewards
event.setCancelled(true)
// Handle with custom logic
}
}DebugMode in config.jsonHyVote messages./gradlew clean buildOutput: build/libs/HyVote-x.x.x.jar
MIT License - see LICENSE file.
Made with ❤️ for the Hytale community
0 Comments