Nouvelle commande /votegui : affiche la progression du VoteParty et un
item par site de vote configure. Un clic ferme le GUI et envoie un
message chat cliquable vers l'URL du site (Bukkit ne permet pas
d'ouvrir un navigateur directement depuis un clic d'inventaire).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Le build et les tests passaient deja (Setup JDK, checkout, mvn verify
tous verts). Seul l'upload d'artefact echouait : upload-artifact@v4
utilise la nouvelle API @actions/artifact v2, pas encore supportee par
le backend Gitea Actions (GHESNotSupportedError). v3 utilise l'ancienne
API, compatible.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Le container maven:3.9-eclipse-temurin-17 n'a pas Node.js, requis par
les actions JS (checkout, cache, upload-artifact) -> echec au premier
step. Retour au runner par defaut + installation explicite de Maven
(actions/setup-java installe le JDK mais jamais Maven).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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>