Muitos plugins não funcionam sozinhos. Os plugins premium verificam uma chave de licença ao iniciar, as ligações ao Discord, Telegram ou VK precisam de um token (uma espécie de palavra-passe para um bot ou uma interface), os plugins de chat de voz abrem uma porta de rede própria e alguns descarregam bibliotecas ou bases de dados da internet. Se um destes elementos faltar ou for rejeitado, o plugin escreve uma mensagem no log. Na maioria dos casos, apenas a função desse plugin deixa de funcionar; num caso, o plugin pára o servidor de propósito.

Cada secção abaixo trata de uma mensagem. Encontras a mensagem completa na Consola ou, em Ficheiros, em logs/latest.log, e a configuração dos plugins em plugins/<Plugin>/. Antes de fazeres alterações, cria uma cópia de segurança em Cópias de segurança. Chaves e tokens são secretos: não os mostres a ninguém e corta-os das capturas de ecrã.

O DonutShop rejeita a chave de licença

Esta é a mensagem que aparece:

[DonutShop]             DONUTSHOP ERROR
[DonutShop] The licensing server rejected this key.

O que está por trás disto: o DonutShop é um plugin de loja que, ao arrancar, verifica a sua chave de licença no servidor de licenças do autor. Esta verificação falhou no último arranque. Mesmo um valor preenchido e não vazio pode ser inválido, ter expirado ou ter sido emitido para outra instalação. O servidor de Minecraft pode continuar a funcionar, mas o DonutShop não fica disponível de forma fiável: os jogadores não podem contar com a loja.

Como resolver:

  1. Obtém ou verifica a chave de licença gratuita através da página oficial do projeto DonutShop no Modrinth.
  2. Em Ficheiros, abre a configuração do DonutShop (plugins/DonutShop/config.yml) e introduz a chave em license-key. Coloca-a entre aspas, sem espaços antes nem depois.
  3. Guarda o ficheiro e reinicia o servidor.
  4. Consulta a Consola: só quando o banner "DONUTSHOP ERROR" deixar de aparecer no novo arranque é que o erro está resolvido.

Bom saber: se copiaste a chave de outro servidor, obtém uma própria para este servidor.

O LibreLogin pára o servidor: não é possível carregar a biblioteca

Esta é a mensagem que aparece:

[LibreLogin] Failed to load libraries, stopping server to prevent damage
… Failed to download library <Biblioteca>

O que está por trás disto: o LibreLogin é um plugin de autenticação com o qual os jogadores iniciam sessão com uma palavra-passe. Ao arrancar, descarrega bibliotecas, ou seja, partes de programa que não traz consigo, entre elas o PacketEvents. Se este download falhar, o LibreLogin pára o servidor de propósito, em vez de continuar a funcionar de forma incompleta. Por isso, o servidor não arranca até o problema ser resolvido.

Como resolver:

  1. Reinicia o servidor uma vez. Se a fonte de download esteve apenas brevemente inacessível, muitas vezes funciona na tentativa seguinte.
  2. Em Plugins, atualiza o LibreLogin para a versão mais recente para o teu software de servidor. Se o PacketEvents estiver instalado como plugin separado, atualiza-o também.
  3. Reinicia e verifica na Consola se as bibliotecas são agora carregadas.
  4. Se a mensagem aparecer em todos os arranques, o servidor não consegue aceder ao endereço de download. Isto pode dever-se ao acesso à Internet, à resolução de nomes (DNS, que traduz endereços em números IP) ou ao próprio endereço. Se não conseguires avançar, abre um ticket e indica a hora da mensagem.

Bom saber: como atualizar e substituir plugins, explica-o Instalar e gerir plugins de Minecraft.

O Simple Voice Chat descarta pacotes de voz

Esta é a mensagem que aparece:

[voicechat] Packet queue has <Quantidade> packets
[voicechat] Dropping voice chat packets!

O que está por trás disto: o Simple Voice Chat transmite voz entre jogadores que estão próximos no jogo. A mensagem significa: o chat de voz não consegue acompanhar o processamento, e os pacotes de voz acumulam-se numa fila ou são descartados. A causa é um servidor momentaneamente sobrecarregado, com TPS baixos (ticks por segundo, o ritmo do Minecraft; o normal são 20) ou carga de CPU elevada. Os jogadores ouvem então a voz entrecortada ou em falta. O servidor em si continua a funcionar.

Como resolver:

  1. Descobre o que gera a carga, por exemplo com o spark: spark: encontrar e compreender o lag no servidor de Minecraft.
  2. Reduz a distância de visão (view-distance) e a distância de simulação (simulation-distance) nas Definições ou em server.properties. Assim, o servidor carrega menos chunks, ou seja, secções do mundo de 16 × 16 blocos.
  3. Diminui o número de entidades (criaturas, animais, objetos no chão) em locais específicos e verifica os plugins que geram muita carga.
  4. Se isto não chegar, muda para mais desempenho em Definições e subscrição → Plano.

Bom saber: mensagens isoladas logo após o arranque ou ao explorar novas áreas são inofensivas, desde que voltem a cessar.

O Simple Voice Chat não consegue obter a sua porta UDP

Esta é a mensagem que aparece:

[voicechat] Failed to run voice chat at UDP port <Porta>
[voicechat] Disabling Simple Voice Chat

O que está por trás disto: o Simple Voice Chat transmite voz através de uma porta UDP própria. O UDP é o método de rede para dados rápidos em tempo real, como a voz. A porta configurada não pertence ao teu servidor ou já está ocupada, por exemplo porque ainda está definido o valor predefinido das instruções do plugin. Sem porta, o chat de voz desliga-se; o jogo em si continua a funcionar normalmente.

Como resolver:

  1. Em Ficheiros, abre o ficheiro plugins/voicechat/voicechat-server.properties. Se o Simple Voice Chat estiver instalado como mod, o ficheiro encontra-se em config/voicechat/voicechat-server.properties.
  2. Define port com o número da porta do teu servidor. A tua porta de jogo está liberta para TCP e UDP.
  3. Guarda o ficheiro e reinicia o servidor.
  4. Verifica na Consola se a mensagem deixa de aparecer e testa o chat de voz no jogo.

Pormenores: Configurar o Simple Voice Chat no servidor de Minecraft.

Bom saber: uma porta UDP só pode ser aberta por um programa de cada vez. Se outro plugin já usa a mesma porta, por exemplo o Geyser para jogadores de Bedrock, um dos dois precisa de outra porta atribuída ao teu servidor.

O plugin de Discord não tem um token de bot válido

Esta é a mensagem que aparece:

[DiscordSRV] No bot token has been set in the config; a bot token is required to connect to Discord.
[DiscordSRV] The bot token is invalid
[EssentialsDiscord] An error occurred while logging into Discord

O que está por trás disto: plugins de Discord como o DiscordSRV ou o EssentialsX Discord iniciam sessão no Discord com um bot próprio. Para isso precisam do token do bot, uma sequência longa de caracteres que funciona como uma palavra-passe. Na configuração não consta nenhum, ou o Discord rejeita o que foi introduzido, por exemplo porque entretanto foi reposto. A ligação ao Discord fica então desativada, e o servidor de Minecraft continua a funcionar normalmente.

Como resolver:

  1. No Discord Developer Portal, cria uma aplicação com um bot ou escolhe o teu bot existente. Na secção "Bot", copia o token ou gera um novo.
  2. Em Ficheiros, abre o config.yml do plugin, por exemplo plugins/DiscordSRV/config.yml, e introduz o token (no DiscordSRV, no campo BotToken).
  3. Convida o bot para o teu servidor de Discord, caso ainda não o tenhas feito.
  4. Guarda o ficheiro e reinicia o servidor.

Bom saber: se depois de "could not connect to Discord because:" aparecer uma referência a intents, ativa no Developer Portal, no bot, os "Privileged Gateway Intents" pedidos. Se um token se tornou público, repõe-no aí e introduz o novo.

O plugin não consegue descarregar a base de dados de países

Esta é a mensagem que aparece:

[AuthMe] Could not download GeoLiteAPI database [FileNotFoundException]: plugins/AuthMe/GeoLite2-Country.mmdb (No such file or directory)

O que está por trás disto: alguns plugins, como o AuthMe, associam endereços IP a um país. Para isso, descarregam uma base de dados de países, normalmente a GeoLite2 do fornecedor MaxMind. Este download falhou. O plugin continua a funcionar; apenas as funções dependentes do país, como os bloqueios por país, ficam inativas enquanto a base de dados estiver em falta.

Como resolver:

  1. Normalmente trata-se de um problema temporário do lado remoto. O próximo reinício tenta o download novamente; não precisas de fazer nada de imediato.
  2. Se a mensagem persistir ao longo de vários arranques, consulta a configuração do plugin em plugins/<Plugin>/. Muitas vezes o plugin precisa de uma chave de licença própria para o download, e a configuração indica o campo para isso.
  3. Introduz a chave, guarda e reinicia o servidor.

Bom saber: se não usas funções dependentes do país, podes ignorar a mensagem. O início de sessão e todas as restantes funções do plugin continuam a funcionar na mesma.

O DonutShop está bloqueado sem chave de licença

Este é o aspeto da mensagem:

[DonutShop]             DONUTSHOP LOCKED
[DonutShop] No license key is set in config.yml.
[DonutShop] Then run: /link <your-key>

O que está por trás disto: o DonutShop só arranca com uma chave de licença. Na sua config.yml não está registada nenhuma, por isso a loja permanece bloqueada. A chave é gratuita, mas tens de a pedir uma vez ao autor. O servidor de Minecraft em si não é afetado.

Como resolver:

  1. Pede ao autor do plugin a chave gratuita. O caminho para isso, uma ligação do Discord, é indicado pela mensagem nas linhas à volta do banner.
  2. Executa /link <a-tua-chave>, como a mensagem indica, ou introduz a chave em plugins/DonutShop/config.yml.
  3. Reinicia o servidor.
  4. Verifica na Consola se o banner "DONUTSHOP LOCKED" desapareceu.

Bom saber: se depois aparecer "DONUTSHOP ERROR", a chave foi rejeitada. Nesse caso, a secção sobre a licença rejeitada do DonutShop ajuda-te.

O token VK do plugin é rejeitado

Este é o aspeto da mensagem:

com.vk.api.sdk.exceptions.ApiAuthException: User authorization failed (5): User authorization failed: invalid access_token (4).

O que está por trás disto: alguns plugins ligam-se ao VK, a rede social VKontakte. Para isso precisam de um token de acesso, uma espécie de palavra-passe para a interface. O VK rejeitou o token registado ("invalid access_token"), ou seja, é inválido, expirou ou foi revogado. As funções VK do plugin ficam desativadas, o resto do servidor funciona normalmente.

Como resolver:

  1. Gera no VK um novo token de acesso com as permissões que o plugin exige. Quais são, consta nas instruções do plugin.
  2. Em Ficheiros, abre a configuração do plugin em plugins/<Plugin>/ e substitui o token antigo pelo novo.
  3. Guarda o ficheiro e reinicia o servidor.
  4. Verifica na Consola se a mensagem deixa de aparecer.

Bom saber: o plugin afetado é indicado pelo stacktrace que se segue, ou seja, as linhas indentadas com at …. Ao lado de com.vk.api aparece aí o nome do pacote do plugin.

O plugin não consegue disponibilizar o seu resourcepack

Este é o aspeto da mensagem:

java.io.IOException: HTTP 403 dla http://<Address>/<Pack>.zip
Failed to start resourcepack server: Server is not publicly reachable on <Address>:<Port>

O que está por trás disto: alguns plugins fornecem aos jogadores um resourcepack próprio. Para isso, descarregam-no de um endereço, montam-no eles próprios ou iniciam um pequeno servidor web integrado, a partir do qual os jogadores o obtêm. Um destes passos falhou. Os jogadores deixam de receber o pack, e as texturas ou funções que dependem dele ficam em falta. O servidor continua a funcionar.

Como resolver:

  1. Lê o estado HTTP na mensagem: 403 significa acesso negado, 404 significa ficheiro não encontrado.
  2. Abre no navegador o endereço do pack indicado na configuração do plugin. Tem de descarregar diretamente o ficheiro ZIP e não pode mostrar uma página de pré-visualização ou de início de sessão.
  3. Corrige o endereço ou carrega o pack para um local que o disponibilize publicamente.
  4. Se o plugin usar um servidor web integrado, indica aí apenas uma porta que esteja atribuída ao teu servidor no painel e seja acessível publicamente.
  5. Reinicia o servidor.

O plugin precisa de uma chave de API para um serviço externo

Este é o aspeto da mensagem:

Please set your <Service> API key
Get your API key from: https://<Provider>/…
accessToken=MISSING

O que está por trás disto: o plugin trabalha em conjunto com um serviço externo, por exemplo para estatísticas ou para uma ligação a um site. Para isso precisa de uma chave de API ou de dados de acesso. Uma chave de API é um identificador com o qual o plugin se identifica perante o serviço. Na configuração, está em falta. Até ser introduzida, o plugin não funciona; o resto do servidor continua a funcionar.

Como resolver:

  1. Lê a mensagem: normalmente indica o serviço, o ficheiro e o campo, e muitas vezes também o endereço onde obténs a chave ("Get your API key from:").
  2. Cria uma conta no serviço e gera lá a chave.
  3. Em Ficheiros, abre o ficheiro indicado em plugins/<Plugin>/ e introduz a chave. O ficheiro está normalmente em formato YAML, em que a indentação com espaços define a estrutura; não a alteres e coloca o valor entre aspas.
  4. Guarda o ficheiro e reinicia o servidor.

Bom saber: se depois o plugin indicar que não consegue ler o ficheiro, O ficheiro de configuração de um plugin está com erros ajuda-te.

O plugin premium não encontra uma chave de licença válida

Este é o aspeto da mensagem:

No License Key Found!
Please enter a valid key in license.yml
Authentication failed! API key is invalid

O que está por trás disto: o plugin é um plugin premium ou precisa de uma chave do fornecedor e não encontra uma válida na sua configuração. Por isso, desativa-se por completo ou desliga algumas funções. O servidor continua a funcionar, apenas sem as funções deste plugin.

Como resolver:

  1. Procura a chave da tua compra, por exemplo na conta do site onde compraste o plugin, ou pergunta ao fornecedor.
  2. Em Ficheiros, abre o ficheiro indicado na mensagem, normalmente plugins/<Plugin>/license.yml ou plugins/<Plugin>/config.yml, e introduz a chave.
  3. Guarda o ficheiro e reinicia o servidor.
  4. Se não tiveres chave, remove o plugin em Plugins, em vez de o deixares a funcionar permanentemente com erros.

Bom saber: descarrega plugins premium apenas do site oficial de venda. Versões de fontes não oficiais, em que a verificação de licença foi removida, contêm com frequência software malicioso.

O bot do Telegram do plugin não arranca

Este é o aspeto da mensagem:

Error removing old webhook

O que está por trás disto: um plugin com ligação ao Telegram regista-se no arranque com um bot no Telegram. Para isso, remove primeiro um webhook antigo, ou seja, um endereço registado para o qual o Telegram enviaria novas mensagens. Isso falhou, normalmente porque o token do bot é inválido ou o Telegram não estava acessível naquele momento. A função do Telegram permanece desligada, o servidor de Minecraft continua a funcionar normalmente.

Como resolver:

  1. No Telegram, abre a conversa com @BotFather e pede para te mostrar o token do teu bot ou para gerar um novo.
  2. Em Ficheiros, abre a configuração do plugin em plugins/<Plugin>/ e substitui o token. Copia-o por completo, um token de bot começa com um número e dois pontos.
  3. Guarda o ficheiro e reinicia o servidor.
  4. Verifica na Consola se a mensagem deixa de aparecer.

Bom saber: se a mensagem aparecer apenas uma vez e no arranque seguinte já não, o Telegram esteve brevemente inacessível. Nesse caso, não precisas de alterar nada.

O plugin não obtém uma porta de rede própria

Assim aparece a mensagem:

Failed to bind to /<Address>:<Port>
[PlasmoVoice] Failed to start the udp server

O que está por trás: Alguns plugins abrem uma porta de rede própria, por exemplo para um chat de voz como o Plasmo Voice ou para uma página web com mapa ou estatísticas. O endereço ou a porta configurados não estão disponíveis no teu servidor: a porta não lhe está atribuída, já está ocupada, ou a configuração tem um endereço IP fixo que o servidor não pode utilizar assim. A funcionalidade do plugin fica desativada, o resto do servidor continua a funcionar.

Como resolver:

  1. Em Ficheiros, abre a configuração do plugin em plugins/<Plugin>/ e procura as entradas da porta e do endereço.
  2. Indica uma porta que esteja atribuída ao teu servidor no painel e que ainda esteja livre.
  3. Deixa o endereço vazio ou define 0.0.0.0. Isto significa: acessível em todas as interfaces de rede do servidor.
  4. Guarda o ficheiro, reinicia o servidor e verifica na Consola se a mensagem deixa de aparecer.

Bom saber: Uma porta só pode ser aberta por um programa de cada vez. Se dois plugins usarem a mesma, cada um precisa da sua própria. Mais informações sobre portas: Verificar portas do Minecraft e erros de ligação.

Plugin ou serviço adicional não consegue obter a sua porta

Assim se apresenta a mensagem:

[<Plugin>] Failed to start HTTP server: Address already in use
java.net.BindException: Address already in use

O que está por trás disto: Um plugin ou um serviço adicional, como chat de voz, um site próprio, Query ou RCON, quer abrir uma porta própria que já está ocupada. Muitas vezes, na configuração dele está a porta do jogo, e essa já foi aberta pelo próprio servidor no arranque. O servidor continua a funcionar normalmente e os jogadores podem entrar, apenas essa funcionalidade fica inativa.

Como resolver:

  1. Na Consola, lê o nome entre parênteses retos antes da mensagem, por exemplo [<Plugin>]. Em Saúde do servidor, aparece em „Plugin ou serviço afetado“.
  2. Em Ficheiros, abre a configuração em plugins/<Plugin>/ e procura a entrada da porta. No caso de Query e RCON, são query.port e rcon.port no server.properties.
  3. Indica uma porta que não seja a porta do jogo e que nenhum outro plugin utilize. Todas as portas do teu servidor são apresentadas no separador Ports.
  4. Para o Simple Voice Chat e outros plugins conhecidos, os assistentes em Plugins configuram automaticamente uma porta livre.
  5. Guarda o ficheiro, reinicia o servidor e verifica na Consola se a mensagem deixa de aparecer.

Bom saber: Reiniciar não basta, enquanto a configuração tiver a mesma porta. Mais informações sobre portas: Verificar as portas do Minecraft e os erros de ligação.

A tua mensagem não está aqui?

Lê a mensagem completa na Consola ou em logs/latest.log, incluindo as linhas anteriores. O nome entre parênteses retos no início da linha, por exemplo [DiscordSRV], normalmente indica o plugin. Se não aparecer, o stacktrace ajuda: nas linhas indentadas com at … surgem nomes de pacotes e de pastas que apontam para o plugin ou o mod. As chaves, os tokens ou as portas de que um plugin precisa estão explicados na página do projeto. Antes de alterares a configuração, cria uma cópia de segurança. Se não conseguires avançar, abre um ticket e indica a hora da mensagem.