Pular para o conteúdo principal

Compatibilidade do BetterFood

Alvos de Execução

O repositório atual tem como alvo:

  • Versão do plugin: 1.5.0
  • Bukkit api-version: 1.21.4
  • Alvo de compilação Spigot API: 26.2-R0.1-SNAPSHOT
  • Java: 21

Comandos

O plugin usa:

  • /betterfood
  • /bf

Os subcomandos voltados para o jogador focam em alternar:

  • alimentação automática (toggleEating, ou apenas /betterfood sem argumentos)
  • mensagens de feedback de consumo na barra de ação (toggleMessage)

Os subcomandos de administrador (requerem betterfood.admin) expõem as ferramentas compartilhadas do Nightbreak:

  • setup — abre o menu de configuração dentro do jogo
  • recommendedplugins — mostra plugins que combinam bem com BetterFood. Atualmente o BetterFood não tem nenhuma entrada no catálogo compartilhado de recomendações, então isso abre um menu vazio e avisa que não há recomendações extras no momento (remetentes de console recebem o mesmo aviso em forma de chat)
  • downloadpluginupdate / downloadall — baixa uma atualização do plugin se houver uma disponível
  • downloadallcontent — informa que BetterFood não tem pacotes de conteúdo

O auto-completar de tab é filtrado por permissão e pelo que já foi digitado: toggleEating e toggleMessage só são sugeridos a remetentes com betterfood.user, e downloadpluginupdate, downloadallcontent, setup e recommendedplugins apenas a remetentes com betterfood.admin. O alias aceito downloadall intencionalmente não é sugerido. Os dois toggles do jogador são apenas para jogadores — os subcomandos explícitos toggleEating / toggleMessage recusam remetentes que não são jogadores com "BetterFood settings can only be changed in-game.", enquanto o comando /betterfood sem argumentos direciona remetentes de console para o comando de atualização. Um jogador sem betterfood.user é informado de que não tem permissão para alterar as configurações do BetterFood. Um subcomando não reconhecido, ou mais de um argumento, imprime a linha de uso, e essa própria linha de uso é sensível a permissões: administradores veem a lista completa, todos os outros veem apenas os dois toggles.

Comandos Compartilhados do MagmaCore

Como as ferramentas compartilhadas do MagmaCore estão incluídas, o BetterFood também registra estes comandos no carregamento — mas apenas se nada mais os tiver reivindicado ainda, então em um servidor que já roda outro plugin do MagmaGuy o primeiro plugin a carregar é o dono deles e o BetterFood registra que está pulando o registro:

  • /nightbreak plugins — navega pelo catálogo de plugins, como menu dentro do jogo e como lista no chat a partir do console (nightbreak.plugins, padrão op). O /nightbreak sem argumentos apenas imprime a linha de uso.
  • /nightbreaklogin <token> e /nightbreaklogout — conectam e desconectam o token compartilhado da conta Nightbreak (nightbreak.login, padrão op)
  • /logify — envia o log atual do servidor para o mclo.gs (logify.*, padrão op)
  • /betterfoodchangelog [dismiss|disable] — mostra as notas de lançamento não lidas do BetterFood. Esse é nomeado por plugin, então não colide; se /betterfoodchangelog estiver de alguma forma ocupado, ele recorre a um rótulo no estilo betterfood:betterfoodchangelog.

O comando de changelog é apenas para administradores e apenas dentro do jogo: ele responde a remetentes sem uma permissão de administrador (ou ao console) com "This command is only available to plugin administrators in-game." Ele considera um jogador como administrador se ele for op ou tiver betterfood.admin ou betterfood.*. Administradores também são lembrados das notas de lançamento não lidas pouco depois de entrarem, a menos que tenham executado /betterfoodchangelog disable. O estado de leitura/dispensa é guardado por jogador em plugins/BetterFood/nightbreak-changelogs.yml.

Veja Tokens do Nightbreak, Configuração do Nightbreak e Notificações de Changelog para o fluxo compartilhado.

Permissões

  • betterfood.user (padrão true) — controla o listener de comer automaticamente e os toggles do jogador.
  • betterfood.admin (padrão op) — controla o download de atualização do plugin, o menu de configuração e os comandos de plugins recomendados. Também conta como permissão de administrador para o comando de changelog.
  • nightbreak.plugins, nightbreak.login e logify.* (todos padrão op) — registrados pelas ferramentas incluídas do MagmaCore para os comandos compartilhados acima, e não declarados no plugin.yml do BetterFood.

Outras Integrações

  • As métricas do bStats estão ativadas (id do plugin 4557) — desative globalmente através da configuração do bStats se quiser optar por não participar.
  • BetterFood agora inclui as ferramentas compartilhadas do MagmaCore. Ele gera um config.yml com o toggle nightbreak.autoDownloadPluginUpdates (padrão false) — essa é a única chave que o próprio BetterFood coloca no config.yml — e verifica o nightbreak.io em busca de uma versão mais recente alguns minutos após a inicialização (o atraso é escalonado por plugin para que vários plugins do MagmaGuy não façam a chamada todos ao mesmo tempo), e depois cerca de uma vez por hora. Os resultados só são registrados quando mudam, então o console não é inundado novamente a cada hora. BetterFood não passa nenhum ID de recurso do SpigotMC e sua entrada no catálogo também não tem nenhum, portanto não há fallback de versão do SpigotMC.
  • Operadores que entram enquanto há uma atualização pendente recebem um aviso no chat com o link da página de download, alguns segundos depois de entrar. Ele é enviado em toda entrada enquanto a versão instalada estiver atrasada.
  • O token da conta fica fora da pasta do plugin, no arquivo compartilhado plugins/MagmaCore/nightbreak.yml, então vincular uma vez cobre todos os plugins do MagmaGuy no servidor.
  • Sem dependências de plugins externos; a lógica de alimentos ouve apenas o FoodLevelChangeEvent vanilla.