Ajoute un message broadcast personnalisable a chaque vote

Optionnel (rewards.broadcast, desactive par defaut), declenche sur
vote direct et sur /claim, avec %player% et %amount%.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
SarTron-NorthBlue
2026-07-12 13:44:23 +04:00
co-authored by Claude Sonnet 5
parent 394267ca5a
commit 520ca1c80b
5 changed files with 29 additions and 1 deletions
+5 -1
View File
@@ -66,6 +66,9 @@ mysql:
rewards:
vote-commands: # executees pour CHAQUE vote (direct ou via /claim, une fois par vote)
- "goldencrates give %player% vote_key 1"
broadcast: # message annonce a tout le serveur a chaque vote / claim
enabled: false
message: "&a[Vote] &e%player% &fvient de voter, merci a lui !"
voteparty:
votes-requis: 100 # déclenche le VoteParty à ce cumul (par serveur)
@@ -88,8 +91,9 @@ messages:
- `%player%` dans `rewards.vote-commands` est remplacé par le pseudo du joueur.
- `%current%` / `%required%` dans les messages de progression VoteParty.
- `%amount%` dans le message de succès `/claim`.
- `%amount%` dans le message de succès `/claim` et dans `rewards.broadcast.message`.
- Codes couleur `&` supportés partout.
- `rewards.broadcast` (désactivé par défaut) : annonce publique à chaque vote direct ou à chaque `/claim` (avec le nombre de votes récupérés).
## Stockage : MySQL ou YAML
@@ -110,6 +110,15 @@ public class VoteConfig {
"&a[Vote] &fMerci pour ton vote !"));
}
public boolean isVoteBroadcastEnabled() {
return cfg().getBoolean("rewards.broadcast.enabled", false);
}
public String getVoteBroadcastMessage() {
return colorize(cfg().getString("rewards.broadcast.message",
"&a[Vote] &e%player% &fvient de voter, merci a lui !"));
}
public String getMessageNoPermission() {
return colorize(cfg().getString("messages.no-permission",
"&cVous n'avez pas la permission d'utiliser cette commande."));
@@ -72,5 +72,11 @@ public class ClaimCommand implements CommandExecutor {
voteParty.addVotes(pendingVotes);
player.sendMessage(config.getMessageClaimSuccess().replace("%amount%", String.valueOf(pendingVotes)));
if (config.isVoteBroadcastEnabled()) {
Bukkit.broadcastMessage(config.getVoteBroadcastMessage()
.replace("%player%", player.getName())
.replace("%amount%", String.valueOf(pendingVotes)));
}
}
}
@@ -45,6 +45,10 @@ public class VoteMessageListener implements PluginMessageListener {
target.sendMessage(config.getMessageDirectVote());
if (config.isVoteBroadcastEnabled()) {
Bukkit.broadcastMessage(config.getVoteBroadcastMessage().replace("%player%", target.getName()));
}
voteParty.addVotes(1);
}
}
+5
View File
@@ -22,6 +22,11 @@ mysql:
rewards:
vote-commands:
- "goldencrates give %player% vote_key 1"
# Message annonce a tout le serveur a chaque vote (direct) ou a chaque /claim (avec %amount% votes recuperes).
# %player% et %amount% disponibles (amount vaut 1 pour un vote direct).
broadcast:
enabled: false
message: "&a[Vote] &e%player% &fvient de voter, merci a lui !"
voteparty:
# Nombre de votes cumules (sur CE serveur) declenchant le VoteParty.