14 tests couvrant VoteConfig (Spigot + Velocity) et YamlPendingVoteStore
(Spigot + Velocity) : valeurs par defaut, portee per-server/global,
merge de config sans ecraser l'existant, incrementation/reset des
votes en attente, colorisation des messages.
Mockito pour VoteConfig/YamlPendingVoteStore cote Spigot (mock de
VoteNetworkSpigot, pas besoin de serveur Bukkit reel). Cote Velocity,
tests directs sans framework (classes deja decouplees de Velocity-API).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
L'ancien merge lisait les defauts via Properties.load(), qui jette
tous les commentaires : les nouvelles cles ajoutees automatiquement
(ex: pending-votes.scope) arrivaient nues, sans explication, sous un
header generique confus.
Le merge copie desormais le bloc texte entier (commentaires inclus)
du config.properties par defaut, verbatim, pour chaque cle manquante.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
pending-votes.scope (config.properties Velocity) = global (defaut,
comportement historique) ou per-server. En per-server, un vote hors
ligne incremente le compteur de chaque serveur de direct-vote.servers
independamment (nouvelle table nb_votes_attente_serveur) ; /claim sur
un serveur ne remet a 0 que ce serveur-la. Necessite server-name
(config.yml) et storage.pending-votes-scope assortis cote Spigot.
Ajoute LICENSE (MIT) et credit Sar_Tron (plugin.yml, @Plugin Velocity,
pom parent, README) en vue de la publication publique.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Une mise a jour du plugin qui ajoute des cles de config n'obligeait
pas a editer config.yml/config.properties a la main : les valeurs
par defaut restaient invisibles pour l'admin. Desormais, au demarrage,
les cles manquantes sont ajoutees dans le fichier existant sans
toucher aux valeurs deja personnalisees.
Spigot : merge via YamlConfiguration (perd les commentaires au
prochain rewrite, limitation Bukkit). Velocity : simple ajout de
lignes en fin de fichier, commentaires existants preserves.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Velocity envoyait le paquet direct des qu'un joueur etait en ligne,
sans verifier que le serveur courant (ex: un lobby) avait bien
VoteNetwork-Spigot installe. Message silencieusement perdu dans ce cas.
Ajoute direct-vote.servers (config.properties) : liste blanche des
serveurs equipes du plugin. Hors de cette liste, le vote est traite
comme "joueur hors ligne" et stocke en base au lieu d'etre envoye en
direct.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Projet destine a etre open source, plus aucune reference a "NorthBlue"
dans le code, les artifactId Maven ou les config par defaut.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Reception directe en jeu (plugin messaging) ou stockage des votes en
attente (MySQL ou YAML configurable), /claim, VoteParty local par
serveur, mode maintenance, API publique pour scoreboard/GUI.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>