actions/setup-java installe le JDK mais pas Maven. Ca marche sur les
runners GitHub-hostes (Maven deja present dans l'image), mais pas sur
ce runner self-hoste (act) qui utilise une image minimale. Bascule
sur l'image Docker officielle maven:3.9-eclipse-temurin-17, qui a
Maven + JDK 17 preinstalles, peu importe le runner sous-jacent.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
mvn clean verify (compile + tests) a chaque push/PR sur main, upload
des jars en artefact si succes.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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>
Sur demande uniquement (pas de trigger auto par commit) : build les 2
jars, zip, cree le tag/release via l'API Gitea et y attache le zip.
Token passe en variable d'env GITEA_TOKEN, jamais stocke dans le repo.
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>
Le scoreboard du joueur affichait %current%/%required% en clair car
seule une API Java existait, pas de placeholders texte. Enregistre
automatiquement si PlaceholderAPI est present (softdepend) :
voteparty_current, voteparty_required, voteparty_remaining,
maintenance, pending (rafraichi en arriere-plan, async).
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>
Clarifie que storage.type (mysql/yaml) doit etre identique sur
Velocity et tous les serveurs Spigot avec les memes identifiants,
et que le VoteParty reste toujours local par serveur peu importe
ce choix.
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>
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>
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>