Saltar para o conteúdo

Recompensas de voto no Minecraft com VotingPlugin

As listas de servidores enviam uma mensagem ao teu servidor por cada voto, mas nada acontece até um plugin de recompensas reagir. O VotingPlugin é uma escolha popular: dá itens, dinheiro ou comandos por site de voto, mostra as ligações de voto com /vote e acrescenta extras como vote parties e sequências. Este guia liga-o à BestMCServerList passo a passo.

Atualizado:

Como um voto se transforma numa recompensa

Há três partes a trabalhar em conjunto. Um jogador vota numa lista de servidores. A lista envia uma mensagem de voto ao Votifier no teu servidor, com o nome do jogador e um nome de serviço que identifica a lista. O VotingPlugin fica à escuta destas mensagens, procura o site de voto cujo ServiceSite corresponde ao nome de serviço e executa as recompensas desse site.

Ou seja, o VotingPlugin não recebe votos sozinho. Precisas primeiro de um Votifier a funcionar, normalmente o NuVotifier. Se ainda não o configuraste, segue o guia de configuração do NuVotifier e volta aqui.

  • O Votifier recebe o voto e verifica-o (token no v2, chave RSA no v1).
  • O VotingPlugin faz corresponder o nome de serviço e dá as recompensas.
  • A BestMCServerList envia o nome de serviço BestMCServerList.

Passo 1: Instala o VotingPlugin

  1. Garante que o NuVotifier está a correr e acessível. Um voto de teste a partir da tua página do Votifier deve aparecer na consola.
  2. Coloca o JAR do VotingPlugin na pasta plugins do teu servidor Spigot ou Paper e reinicia uma vez.
  3. O VotingPlugin cria os seus ficheiros, entre eles plugins/VotingPlugin/VoteSites.yml para os sites de voto e Config.yml para as definições gerais.

Numa network com proxy, os votos normalmente chegam ao proxy e as recompensas correm nos servidores de backend. Mantém o VoteSites.yml igual em todos os backends.

Passo 2: Adiciona a BestMCServerList ao VoteSites.yml

Cada lista onde estás tem a sua própria entrada em VoteSites. A chave é um nome interno: curto, sem espaços e sem pontos. A linha importante é ServiceSite.

plugins/VotingPlugin/VoteSites.yml
VoteSites:
  BestMCServerList:
    Enabled: true
    Name: 'BestMCServerList'
    Priority: 5
    ServiceSite: 'BestMCServerList'
    VoteURL: 'https://bestmcserverlist.net/server/your-server/vote'
    VoteDelay: 24h
    WaitUntilVoteDelay: false
    VoteDelayDaily: true
    ForceOffline: false
    DisplayItem:
      Material: 'DIAMOND'
      Amount: 1
    Rewards:
      Commands:
      - 'eco give %player% 250'
      - 'give %player% diamond 2'
      Messages:
        Player: '&aThanks for voting on BestMCServerList!'
  • Enabled: true é obrigatório; a predefinição é false.
  • ServiceSite tem de coincidir com o nome de serviço que a lista envia. O VotingPlugin compara sem distinguir maiúsculas de minúsculas, mas de resto o texto tem de ser idêntico. No nosso caso é BestMCServerList.
  • VoteURL é a ligação que os jogadores recebem com /vote. Copia a tua ligação de voto da página do teu servidor; your-server representa o teu próprio slug.
  • DisplayItem é obrigatório em todos os sites, porque aparece nos menus do VotingPlugin.
  • Os comandos correm a partir da consola, e %player% passa a ser o nome de quem votou. O eco give precisa de um plugin de economia; usa os comandos que o teu servidor tiver.

Guarda o ficheiro e executa /av reload.

Passo 3: Intervalo entre votos e reinício diário

Na BestMCServerList, cada nome de Minecraft pode votar uma vez por servidor e por dia de calendário, e o dia segue o fuso horário Europe/Berlin. Um novo voto é possível logo a seguir à meia-noite, hora de Berlim, e não 24 horas depois do último.

  • VoteDelay: 24h é usado para o /vote next, a contagem decrescente que os jogadores veem. Não bloqueia votos.
  • VoteDelayDaily: true repõe o intervalo uma vez por dia, o que se adequa a listas com reinício diário como a nossa. VoteDelayDailyHour define a hora em hora do servidor (1–24). Se o relógio do teu servidor não estiver na hora de Berlim, tem a diferença em conta quando o definires.
  • WaitUntilVoteDelay: true rejeitaria votos que chegassem antes do fim do intervalo. Deixa-o em false: nós já impomos um voto por nome e por dia, e uma definição errada do intervalo faria os jogadores perder recompensas.

Passo 4: Testa as recompensas

  1. Executa /av vote <player> BestMCServerList. Isto executa as recompensas desse site para um jogador e mostra que a tua config de recompensas funciona. Não testa o Votifier.
  2. Abre a tua página do Votifier na BestMCServerList e carrega em Enviar voto de teste. Enviamos um voto para o nome TestVote, que não conta para o ranking. O registo de entregas mostra se o teu servidor o aceitou.
  3. Procura na consola uma linha como [VotingPlugin] Received a vote from service site 'BestMCServerList' by player 'TestVote'!.
  4. Executa /av servicesites para listar os nomes de serviço que o VotingPlugin recebeu até agora.

Se o voto de teste chegar mas o VotingPlugin indicar um service site desconhecido, o problema está na linha ServiceSite. Com AutoCreateVoteSites: true no Config.yml (a predefinição), o VotingPlugin também pode criar uma entrada nova sozinho; ela continua a precisar de Enabled: true e das tuas recompensas.

Jogadores Bedrock e votos offline

Os jogadores Bedrock que entram através do Geyser e do Floodgate têm um prefixo no nome, por predefinição um ponto: .Steve. Votam com esse nome completo e nós passamo-lo ao Votifier sem alterações. No VotingPlugin, define o mesmo prefixo no Config.yml. Numa network, usa o mesmo valor no proxy e em todos os backends:

plugins/VotingPlugin/Config.yml
BedrockPlayerPrefix: '.'

.Steve e Steve são jogadores diferentes. Nunca tires o prefixo para um nome encaixar.

Os jogadores não precisam de estar online quando votam. As recompensas têm um RewardType de ONLINE, OFFLINE ou BOTH (a predefinição). Testa também os votos offline, porque os comandos que precisam de um jogador online comportam-se de forma diferente.

Vote parties, marcos e sequências

Quando as recompensas básicas funcionarem, o SpecialRewards.yml acrescenta objetivos que mantêm os jogadores a votar: uma VoteParty que dispara quando o servidor inteiro chega a um número de votos, VoteMilestones para totais pessoais e VoteStreaks para votar vários dias seguidos. Mantém as recompensas úteis mas justas; recompensas que estragam a economia fazem o voto parecer obrigatório.

Queres um badge de rank para os maiores votantes? O guia de prefixos do LuckPerms mostra como dar a um jogador um prefixo em imagem com um comando, que podes executar como recompensa.

Erros comuns

ProblemaSolução
O voto de teste chega, mas ninguém recebe nadaO site de voto não está ativo, ou o ServiceSite não é BestMCServerList. Verifica o /av servicesites.
Nada na consolaO Votifier não recebe o voto. Verifica a porta, o token e a firewall com o registo de entregas na tua página do Votifier.
O NuVotifier regista que não há listeners disponíveisO VotingPlugin não está instalado ou não carregou. Verifica o log de arranque.
O /av vote funciona, os votos reais nãoO comando de administração salta o Votifier. Testa antes com Enviar voto de teste.
Os jogadores Bedrock não recebem nadaO BedrockPlayerPrefix não corresponde ao teu prefixo do Floodgate.

Perguntas frequentes

Qual é o nome de serviço da BestMCServerList para o VotingPlugin?

É BestMCServerList. Escreve exatamente isto na linha ServiceSite do site de voto no VoteSites.yml.

Preciso do NuVotifier para o VotingPlugin?

Sim. O VotingPlugin dá as recompensas, mas os votos chegam ao teu servidor através do Votifier. O NuVotifier é a versão mantida e suporta os protocolos v1 e v2.

Quando é que os jogadores podem voltar a votar na BestMCServerList?

Uma vez por nome de Minecraft, servidor e dia de calendário. O dia muda à meia-noite no fuso horário Europe/Berlin.

Os jogadores Bedrock recebem recompensas de voto?

Sim, se votarem com o nome completo do Floodgate, como .Steve, e o BedrockPlayerPrefix do VotingPlugin corresponder ao teu prefixo do Floodgate.

Fontes

Verificado com a documentação oficial: