Ajoute la portee per-server pour les votes en attente + credits/licence
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>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
74b2914529
commit
261e220d1a
@@ -1,5 +1,7 @@
|
||||
# VoteNetwork
|
||||
|
||||
Par **Sar_Tron**, sous licence [MIT](LICENSE).
|
||||
|
||||
Systeme de vote reseau en deux modules, pour une architecture **proxy Velocity + serveurs Spigot/Paper** (modes A, B, C, ...).
|
||||
|
||||
- `velocity/` — module proxy. Recoit `votenetwork vote <pseudo>` (console uniquement) et route le vote en direct ou le met en attente.
|
||||
@@ -110,6 +112,21 @@ Testez la connexion/l'accès au stockage configuré côté Spigot avec :
|
||||
/vote testdb
|
||||
```
|
||||
|
||||
### Portée des votes en attente : partagée (`global`) ou par serveur (`per-server`)
|
||||
|
||||
En mode `mysql` uniquement, `pending-votes.scope` (dans `config.properties` côté Velocity) contrôle si le compteur de votes en attente est **partagé** entre tous les serveurs ou **indépendant par serveur** :
|
||||
|
||||
- **`global`** (par défaut) : un seul compteur par joueur. Un `/claim` sur n'importe quel serveur le remet à 0 **partout** à la fois.
|
||||
- **`per-server`** : chaque serveur listé dans `direct-vote.servers` a son propre compteur. Un vote hors ligne incrémente le compteur de **chaque** serveur de la liste. Un `/claim` sur le serveur 1 ne remet à 0 **que** le serveur 1 — le joueur garde ses votes en attente sur le serveur 2 et peut les réclamer séparément là-bas.
|
||||
|
||||
> Exemple : le joueur vote 2 fois hors ligne → 2 votes en attente sur *chaque* serveur. `/claim` sur le serveur 1 → 2 récompenses, serveur 1 repasse à 0, serveur 2 reste à 2. S'il revote une fois → serveur 1 = 1, serveur 2 = 3.
|
||||
|
||||
Pour activer `per-server`, il faut **les deux** :
|
||||
1. `pending-votes.scope=per-server` + `direct-vote.servers` rempli dans `config.properties` (Velocity).
|
||||
2. `storage.pending-votes-scope: per-server` + `server-name: "gen1"` (nom exact tiré de `direct-vote.servers`) dans le `config.yml` de **chaque** serveur Spigot concerné.
|
||||
|
||||
Si ces réglages ne correspondent pas entre le proxy et un serveur (scope différent, ou `server-name` absent/mal orthographié), ce serveur ne retrouvera jamais les votes stockés par Velocity.
|
||||
|
||||
## Fonctionnement du vote
|
||||
|
||||
1. Un site de vote appelle la console du proxy : `votenetwork vote <pseudo>`.
|
||||
@@ -173,14 +190,24 @@ Utilisez ces placeholders directement dans la config de votre plugin de scoreboa
|
||||
|
||||
## Structure de la base de données
|
||||
|
||||
Créée automatiquement si absente (mode `mysql`) :
|
||||
Créées automatiquement si absentes (mode `mysql`), les deux tables coexistent toujours — seule celle correspondant à `pending-votes.scope` est utilisée :
|
||||
|
||||
```sql
|
||||
-- scope = global (par defaut)
|
||||
CREATE TABLE IF NOT EXISTS nb_votes_attente (
|
||||
player_uuid VARCHAR(36) NOT NULL PRIMARY KEY,
|
||||
player_name VARCHAR(16) NOT NULL,
|
||||
nombre_votes INT DEFAULT 0
|
||||
);
|
||||
|
||||
-- scope = per-server
|
||||
CREATE TABLE IF NOT EXISTS nb_votes_attente_serveur (
|
||||
player_uuid VARCHAR(36) NOT NULL,
|
||||
server_name VARCHAR(64) NOT NULL,
|
||||
player_name VARCHAR(16) NOT NULL,
|
||||
nombre_votes INT DEFAULT 0,
|
||||
PRIMARY KEY (player_uuid, server_name)
|
||||
);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user