Saltar para o conteúdo

Configurar o NuVotifier em Paper, Velocity e BungeeCord

O NuVotifier é a peça entre uma lista de servidores e o teu plugin de recompensas: a lista liga-se a ele por cada voto, e ele passa o voto ao plugin que dá a recompensa. Este guia configura-o num único servidor Paper e numa network Velocity ou BungeeCord, e depois verifica tudo com um voto de teste.

Atualizado:

Como o Votifier entrega um voto

  1. Um jogador vota no teu servidor numa lista.
  2. A lista abre uma ligação TCP ao teu servidor na porta do Votifier e envia o nome do jogador, o seu próprio nome de serviço, um endereço e uma marca temporal.
  3. O NuVotifier verifica a mensagem (chave RSA no v1, token no v2) e dispara um evento de voto.
  4. Um plugin de recompensas como o VotingPlugin fica à escuta desse evento e dá a recompensa.

O NuVotifier, por si só, não dá nada. Vem sem nenhum listener, por isso precisas sempre de um segundo plugin para as recompensas.

Passo 1: Instala o NuVotifier em Paper ou Spigot

Coloca o JAR do NuVotifier na pasta plugins e inicia o servidor uma vez. Ele cria a sua config, um par de chaves RSA e um token. A consola mostra o token no primeiro arranque: Your default NuVotifier token is ….

plugins/Votifier/config.yml
host: 0.0.0.0
port: 8192
disable-v1-protocol: false
tokens:
  default: <generated token>
forwarding:
  method: none
  pluginMessaging:
    channel: nuvotifier:votes
  • host é o endereço em que o NuVotifier fica à escuta. Por predefinição usa o IP para o qual o teu servidor está configurado, ou 0.0.0.0 para todas as interfaces.
  • port é a porta do Votifier, 8192 por predefinição. Não pode ser a porta do Minecraft.
  • tokens.default é usado para todas as listas, a menos que acrescentes um token com o nome de serviço de uma lista.
  • As chaves para o v1 são criadas em plugins/Votifier/rsa/ como public.key e private.key.

Passo 2: Torna a porta acessível

As listas ligam-se a partir da internet, por isso a porta do Votifier tem de estar aberta a ligações TCP de entrada. É aqui que a maioria das configurações falha.

  • Alojamento partilhado: muitos painéis só abrem a porta do jogo. Adiciona uma porta extra no painel e coloca exatamente esse número em port. Alguns hosts atribuem o número por ti.
  • VPS ou servidor dedicado próprio: permite a porta na firewall, por exemplo ufw allow 8192/tcp.
  • Em casa: reencaminha a porta no teu router para a máquina onde corre o servidor.

Reinicia o servidor depois de alterares a config. O NuVotifier também tem o /nvreload, que corre a partir da consola.

Passo 3: Escolhe v1 (chave pública) ou v2 (token)

Protocolo v1Protocolo v2
SegredoPar de chaves RSAToken partilhado
O que a lista precisaConteúdo de rsa/public.keyO token de tokens.default
SuporteVotifier clássico; a maioria das listas fala-oNuVotifier e listas que o suportem

Nunca dês a ninguém o private.key. Se uma lista suportar v2, o token é a opção mais simples: uma linha, sem ficheiro de chave. A BestMCServerList suporta os dois, por isso escolhe o que preferires na tua página do Votifier.

Mantém disable-v1-protocol: false num servidor único. O próprio NuVotifier avisa que muitas listas só falam v1.

Passo 4: Networks Velocity ou BungeeCord

Numa network, a lista liga-se ao proxy. O NuVotifier corre no proxy e reencaminha os votos para os servidores de backend onde está o plugin de recompensas. A wiki do NuVotifier recomenda plugin messaging para a maioria das networks.

Proxy (Velocity)

plugins/nuvotifier/config.toml
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"

No BungeeCord, as mesmas chaves ficam em plugins/NuVotifier/config.yml, em formato YAML. cache = "file" guarda os votos de jogadores que estão offline e entrega-os mais tarde.

Todos os servidores de backend (Paper)

plugins/Votifier/config.yml
port: -1
forwarding:
  method: pluginMessaging
  pluginMessaging:
    channel: nuvotifier:votes

port: -1 desliga o listener no backend, para que só o proxy receba votos. Garante que os teus backends só são acessíveis através do proxy, senão alguém pode enviar votos falsos.

A outra opção, method = "proxy", envia os votos do proxy para uma porta do NuVotifier em cada backend, configurada com endereço, porta e token por servidor em [forwarding.proxy.<name>]. Não tem cache de votos, por isso o plugin messaging costuma ser a melhor escolha.

Passo 5: Introduz os dados e envia um voto de teste

  1. Testa primeiro localmente: /testvote Steve serviceName=BestMCServerList no Paper, ou /ptestvote com os mesmos argumentos no proxy. Se o teu plugin de recompensas reagir, a parte interna funciona.
  2. Na BestMCServerList, abre o teu servidor no painel e vai a Votifier. Introduz o endereço público do servidor ou do proxy, a porta e o token (v2) ou a chave pública (v1), e guarda.
  3. Carrega em Enviar voto de teste. Enviamos um voto para TestVote que não conta para o ranking, e o registo de entregas mostra em segundos se chegou.

Os votos da BestMCServerList levam o nome de serviço BestMCServerList. Os jogadores Bedrock que entram através do Geyser e do Floodgate votam com o nome com prefixo, por exemplo .Steve, e o nome chega ao NuVotifier sem alterações. Cada nome de Minecraft pode votar uma vez por servidor e por dia de calendário, contado na hora de Europe/Berlin.

Ainda não estás listado? Adiciona primeiro o teu servidor e depois volta a este passo.

Erros comuns e soluções

ProblemaO que verificar
Ligação recusadaO NuVotifier não está a correr ou está à escuta noutra porta. Compara a porta na config com a que introduziste.
Tempo esgotadoUma firewall ou o host bloqueiam o tráfego. Abre a porta para TCP ou pede ao host uma porta extra.
O teste chega, os jogadores não recebem nadaNão há plugin de recompensas. A consola regista A vote was received, but you don't have any listeners available to listen for it.
Voto rejeitado com v2O token não coincide. Copia outra vez o tokens.default, sem espaços nem aspas.
Funciona no proxy, não no backendO backend não está definido para pluginMessaging, ou os nomes dos canais são diferentes.
Porta errada introduzidaResponde a porta do Minecraft em vez do NuVotifier. Usa a porta do Votifier.

Quando os votos chegarem, configura as recompensas: o nosso guia de recompensas de voto com VotingPlugin trata do nome de serviço, do VoteSites.yml e dos limites diários. Para a visão geral, vê como arranjar jogadores para um servidor novo.

Perguntas frequentes

Que porta usa o NuVotifier?

A porta 8192 por predefinição. Podes alterá-la na config, mas tem de ser uma porta separada da porta do Minecraft e acessível a partir da internet por TCP.

Onde encontro o token do NuVotifier?

Em plugins/Votifier/config.yml, em tokens → default. A consola também o mostra no primeiro arranque.

Preciso do NuVotifier em todos os servidores da minha network?

Com plugin messaging, sim: no proxy para receber os votos, e em cada backend com forwarding.method: pluginMessaging e port: -1 para os passar ao plugin de recompensas.

Devo usar v1 ou v2?

Usa v2 com token quando a lista o suportar. O v1 com a chave pública RSA existe para configurações mais antigas. A BestMCServerList suporta os dois.

O NuVotifier dá recompensas sozinho?

Não. Só recebe votos. Um plugin de recompensas como o VotingPlugin tem de ficar à escuta deles.

Fontes

Verificado com a documentação oficial: