Come Votifier consegna un voto
- Un giocatore vota il tuo server su una lista.
- La lista apre una connessione TCP verso il tuo server sulla porta Votifier e invia il nome del giocatore, il proprio service name, un indirizzo e un timestamp.
- NuVotifier controlla il messaggio (chiave RSA per v1, token per v2) e lancia un evento di voto.
- Un plugin delle ricompense come VotingPlugin resta in ascolto di quell’evento e dà la ricompensa.
NuVotifier da solo non dà niente. Non include nessun listener, quindi ti serve sempre un secondo plugin per le ricompense.
Passo 1: installa NuVotifier su Paper o Spigot
Metti il JAR di NuVotifier nella cartella plugins e avvia il server una volta. Crea la sua config, una coppia di chiavi RSA e un token. Al primo avvio la console stampa il token: Your default NuVotifier token is ….
host: 0.0.0.0
port: 8192
disable-v1-protocol: false
tokens:
default: <generated token>
forwarding:
method: none
pluginMessaging:
channel: nuvotifier:voteshostè l’indirizzo su cui NuVotifier resta in ascolto. Di default prende l’IP per cui è configurato il tuo server, oppure0.0.0.0per tutte le interfacce.portè la porta Votifier, di default8192. Non deve essere la porta di Minecraft.tokens.defaultviene usato per ogni lista, a meno che tu non aggiunga un token sotto il service name di una lista.- Le chiavi per v1 vengono create in
plugins/Votifier/rsa/comepublic.keyeprivate.key.
Passo 2: rendi raggiungibile la porta
Le liste si collegano da internet, quindi la porta Votifier deve essere aperta alle connessioni TCP in entrata. È qui che falliscono la maggior parte delle configurazioni.
- Hosting condiviso: molti pannelli aprono solo la porta di gioco. Aggiungi una porta extra nel pannello e metti esattamente quel numero in
port. Alcuni hosting assegnano il numero al posto tuo. - VPS o server dedicato tuo: consenti la porta nel firewall, per esempio
ufw allow 8192/tcp. - A casa: inoltra la porta nel router verso la macchina su cui gira il server.
Riavvia il server dopo aver modificato la config. NuVotifier ha anche /nvreload, che si può eseguire dalla console.
Passo 3: scegli v1 (chiave pubblica) o v2 (token)
| Protocollo v1 | Protocollo v2 | |
|---|---|---|
| Segreto | Coppia di chiavi RSA | Token condiviso |
| Cosa serve alla lista | Il contenuto di rsa/public.key | Il token da tokens.default |
| Supporto | Votifier classico; lo parlano quasi tutte le liste | NuVotifier e le liste che lo supportano |
Non dare mai a nessuno private.key. Se una lista supporta v2, il token è la scelta più semplice: una riga, nessun file di chiave. BestMCServerList li supporta entrambi, quindi scegli quello che preferisci nella tua pagina Votifier.
Su un singolo server lascia disable-v1-protocol: false. È NuVotifier stesso ad avvertire che molte liste parlano solo v1.
Passo 4: network Velocity o BungeeCord
In un network la lista si collega al proxy. NuVotifier gira sul proxy e inoltra i voti ai server backend dove si trova il plugin delle ricompense. La wiki di NuVotifier consiglia il plugin messaging per la maggior parte dei network.
Proxy (Velocity)
host = "0.0.0.0"
port = 8192
disable-v1-protocol = false
[tokens]
default = "<generated token>"
[forwarding]
method = "pluginMessaging"
[forwarding.pluginMessaging]
channel = "nuvotifier:votes"
cache = "file"Su BungeeCord le stesse chiavi stanno in plugins/NuVotifier/config.yml in formato YAML. cache = "file" conserva i voti dei giocatori offline e li consegna più tardi.
Ogni server backend (Paper)
port: -1
forwarding:
method: pluginMessaging
pluginMessaging:
channel: nuvotifier:votesport: -1 disattiva il listener sul backend, così solo il proxy riceve i voti. Assicurati che i tuoi backend siano raggiungibili solo tramite il proxy, altrimenti qualcuno potrebbe inviare voti falsi.
L’altra opzione, method = "proxy", invia i voti dal proxy a una porta NuVotifier su ogni backend, configurata con indirizzo, porta e token per ogni server sotto [forwarding.proxy.<name>]. Non ha una cache dei voti, quindi di solito il plugin messaging è la scelta migliore.
Passo 5: inserisci i dati e invia un voto di prova
- Prima prova in locale:
/testvote Steve serviceName=BestMCServerListsu Paper, oppure/ptestvotecon gli stessi argomenti sul proxy. Se il plugin delle ricompense reagisce, la parte interna funziona. - Su BestMCServerList apri il tuo server nella dashboard e vai su Votifier. Inserisci l’indirizzo pubblico del server o del proxy, la porta e il token (v2) o la chiave pubblica (v1), poi salva.
- Premi Invia voto di prova. Inviamo un voto per
TestVoteche non conta per la classifica, e il registro consegne ti mostra in pochi secondi se è arrivato.
I voti da BestMCServerList hanno il service name BestMCServerList. I giocatori Bedrock che entrano tramite Geyser e Floodgate votano con il nome con prefisso, per esempio .Steve, e il nome arriva a NuVotifier invariato. Ogni nome Minecraft può votare una volta per server per giorno di calendario, contato con l’ora di Europe/Berlin.
Non sei ancora nella lista? Prima aggiungi il tuo server, poi torna a questo passo.
Errori comuni e soluzioni
| Problema | Cosa controllare |
|---|---|
| Connessione rifiutata | NuVotifier non è attivo o ascolta su un’altra porta. Confronta la porta nella config con quella che hai inserito. |
| Timeout | Un firewall o l’hosting blocca il traffico. Apri la porta per TCP o chiedi all’hosting una porta extra. |
| Il test arriva, i giocatori non ricevono niente | Nessun plugin delle ricompense. La console registra A vote was received, but you don't have any listeners available to listen for it. |
| Voto rifiutato con v2 | Il token non corrisponde. Copia di nuovo tokens.default, senza spazi né virgolette. |
| Funziona sul proxy, non sul backend | Il backend non è impostato su pluginMessaging, oppure i nomi dei canali sono diversi. |
| Porta sbagliata inserita | Risponde la porta di Minecraft invece di NuVotifier. Usa la porta Votifier. |
Quando i voti arrivano, configura le ricompense: la nostra guida alle ricompense per i voti con VotingPlugin copre il service name, VoteSites.yml e i limiti giornalieri. Per il quadro generale, vedi come trovare giocatori per un nuovo server.