Saltar para o conteúdo principal

Configuração e permissões do ResurrectionChest

Permissões​

PermissãoFunçãoValor predefinido
resurrectionchest.*Dá aos administradores acesso ao comando base e aos subcomandos downloadall, forcereinstallcontent, downloadpluginupdate, applypluginupdate, reload e clear, e mostra-lhes o lembrete do primeiro arranque. setup e initialize verificam as suas próprias permissões, indicadas abaixoop
resurrectionchest.setupDá acesso a /resurrectionchest setup, recommendedplugins, downloadallcontent e updatecontentop
resurrectionchest.initializeAbre o menu de configuração inicial com /resurrectionchest initializeop
resurrectionchest.usePermite registar um baú e enviar para ele os itens perdidos ao morrertrue
resurrectionchest.model.freePermite usar os modelos gratuitos de baú FreeMinecraftModels do pacote Wooden Chesttrue
resurrectionchest.model.premiumPermite usar os modelos premium de baú FreeMinecraftModels do pacote Angelic Chestop

resurrectionchest.use controla o funcionamento do baú. As permissões de administrador e de modelo afetam apenas os comandos e os modelos opcionais, respetivamente.

Comandos​

ComandoPermissãoFunção
/resurrectionchestresurrectionchest.*Apresenta uma breve informação sobre como iniciar a configuração
/resurrectionchest initializeresurrectionchest.initializeAbre a configuração inicial guiada. As opções de configuração recomendada, configuração manual e utilização do conteúdo atual marcam a configuração como concluída.
/resurrectionchest setupresurrectionchest.setupAbre o menu para consultar e ativar pacotes de baús, verificar atualizações, ver plugins recomendados e ativar atualizações automáticas
/resurrectionchest recommendedpluginsresurrectionchest.setupAbre os plugins complementares recomendados para o ResurrectionChest, ou apresenta-os numa lista na consola: FreeMinecraftModels e ResourcePackManager
/resurrectionchest downloadallresurrectionchest.*Descarrega a atualização do plugin, se existir, e todos os pacotes de conteúdo disponíveis no Nightbreak
/resurrectionchest downloadallcontentresurrectionchest.setupDescarrega todos os pacotes de conteúdo disponíveis no Nightbreak
/resurrectionchest updatecontent, também disponível como updateallcontentresurrectionchest.setupVolta a descarregar apenas os pacotes instalados que estejam desatualizados
/resurrectionchest forcereinstallcontent <package|all>resurrectionchest.*Volta a descarregar um pacote ou todos os pacotes já descarregados, mesmo que a versão instalada esteja atualizada. Ao premir Tab, sugere os identificadores Nightbreak wooden-chest e angelic-chest, além de all.
/resurrectionchest downloadpluginupdateresurrectionchest.*Descarrega uma atualização do ResurrectionChest, se existir
/resurrectionchest applypluginupdateresurrectionchest.*Aplica uma atualização do plugin já descarregada sem reiniciar o servidor. Consulte Atualizações do plugin sem reinício
/resurrectionchest reloadresurrectionchest.*Recarrega o ResurrectionChest
/resurrectionchest clearresurrectionchest.*Elimina todos os blocos acompanhados pelo ResurrectionChest, larga o inventário de cada baú e remove os blocos dos baús e das placas
/resurrectionchestchangelog [dismiss|disable]op, resurrectionchest.*, resurrectionchest.setup ou resurrectionchest.initializeMostra no jogo as notas de lançamento do ResurrectionChest ainda não lidas. Consulte Notificações de notas de lançamento

As atualizações descarregadas do plugin ficam na pasta de atualizações do servidor. Entram em vigor após o próximo reinício, a menos que as aplique antes com /resurrectionchest applypluginupdate ou com a definição nightbreak.applyPluginUpdatesWithoutRestart.

As ferramentas MagmaCore incluídas também registam os comandos partilhados /nightbreak, /nightbreaklogin, /nightbreaklogout e /logify quando nenhum outro plugin tiver ocupado esses nomes. Consulte Tokens do Nightbreak.

Ficheiros do plugin​

CaminhoFunção
plugins/ResurrectionChest/config.ymlTodas as definições da tabela abaixo
plugins/ResurrectionChest/playerData.ymlUma entrada por baú registado, identificada pelo UUID do jogador, com a location do baú, o prefixo chestModel escolhido no registo e trackedBlockSchemaVersion, usado para migrar registos antigos para as marcas atuais de proprietário dos blocos
plugins/ResurrectionChest/content_packages/Definições dos pacotes wooden_chest.yml / angelic_chest.yml, com isEnabled, name, description, version, folderName, nightbreakSlug, contentFilePrefixes e os campos opcionais downloadLink e category
plugins/ResurrectionChest/nightbreak-changelogs.ymlEstado de leitura ou dispensa da caixa de entrada partilhada de notas de lançamento, acessível através de /resurrectionchestchangelog. Consulte Notificações de notas de lançamento.
plugins/ResurrectionChest/imports/Pasta para importações manuais. O conteúdo é extraído no arranque, os modelos são encaminhados para o FreeMinecraftModels e este é atualizado automaticamente. Consulte Importações manuais e gestão no jogo.
plugins/ResurrectionChest/resource_pack/Ícones de menu e tipos de letra partilhados do Nightbreak, exportados do MagmaCore incluído quando o plugin carrega e exportados novamente quando a cópia incluída muda

Não edite playerData.yml manualmente enquanto o servidor estiver a funcionar. O ResurrectionChest reescreve-o sempre que regista ou remove um baú.

Definições disponíveis​

O config.yml disponibiliza atualmente estas definições:

Chave de configuraçãoTipoValor predefinido
setupDonebooleanfalse
nightbreak.autoDownloadPluginUpdatesbooleanfalse
nightbreak.applyPluginUpdatesWithoutRestartstringnever
Input name for death cheststring[DeathChest]
Enable high compatibility / low security mode for plugin conflictsbooleanfalse
Lower worn armor's durability on deathbooleantrue
Amount of durability to lower on deathint100
Chest creation messagestring&8[ResurrectionChest] &aYou've created your Death Chest!
Chest destruction messagestring&8[ResurrectionChest] &cYour Death Chest has been destroyed!
Chest missing messagestring&8[ResurrectionChest] &4Your Death Chest is missing!
Chest protected region messagestring&8[ResurrectionChest] &cYou can't create a Death Chest here - this area is protected!
Death messagestring&8[ResurrectionChest] &aYour items have been moved to your Death Chest!
deathChestRemovedMessagestring&8[ResurrectionChest] &cYour Death Chest has been removed!
Enable particle effects for death chestsbooleantrue
Particle effect 1stringENCHANTMENT_TABLE
Particle effect 2stringENCHANTMENT_TABLE
Particle effect 3stringPORTAL
blacklistedWorldslist[none]
storeXPbooleantrue
xpPercentageKeptdouble0.75
deathChestNameTagstring$playerName's &fResurrection Chest
freeSingleDeathChestModelNamestringresurrectionchest_free_single
freeDoubleDeathChestModelNamestringresurrectionchest_free_double
premiumSingleDeathChestModelNamestringresurrectionchest_angelic_single
premiumDoubleDeathChestModelNamestringresurrectionchest_angelic_double

Atualizações automáticas do plugin e do conteúdo​

nightbreak.autoDownloadPluginUpdates é uma definição partilhada do Nightbreak/MagmaCore incluída no ResurrectionChest. O valor predefinido é false.

  • Com false, não há descargas automáticas. O ResurrectionChest continua a procurar atualizações do plugin alguns minutos após o arranque (com um atraso diferente por plugin) e depois aproximadamente de hora a hora, para mostrar o resultado no botão de atualização do jogo. A descarga tem de ser iniciada manualmente.
  • Com true, descarrega uma atualização disponível do plugin e os pacotes de conteúdo desatualizados alguns minutos após o arranque. As atualizações de conteúdo descarregadas são utilizadas depois de reiniciar o servidor. Uma atualização do plugin descarregada também aguarda um reinício, a menos que nightbreak.applyPluginUpdatesWithoutRestart a aplique antes.
  • A descarga automática de atualizações do plugin exige um token de conta Nightbreak válido e uma subscrição de apoiante ativa.

Pode alterar esta definição no jogo através da opção Atualizações automáticas na barra de ferramentas de /resurrectionchest setup, ou editar diretamente config.yml.

O menu também tem uma opção de Atualização do plugin, que mostra a versão instalada e a disponível e descarrega a atualização ao clicar, e uma opção de Plugins recomendados, com a mesma lista de /resurrectionchest recommendedplugins.

Atualizações do plugin sem reinício​

Uma atualização do plugin descarregada fica à espera na pasta de atualizações do servidor. /resurrectionchest applypluginupdate instala-a sem reiniciar o servidor. O ResurrectionChest é desativado, o jar é substituído e a nova versão é carregada e ativada. Os outros plugins do MagmaGuy que dependem do ResurrectionChest são recarregados com ele.

O comando recusa, com uma mensagem, quando:

  • não há nenhuma atualização descarregada à espera
  • a atualização à espera não é mais recente do que a versão em execução, ou o seu jar não é válido
  • um plugin de outro autor depende (ou tem uma dependência opcional) do ResurrectionChest. Nesse caso, reinicie o servidor
  • já está a decorrer outra troca de plugin

Se a nova versão não conseguir ativar, o jar anterior é carregado novamente e a atualização fica na pasta de atualizações para o próximo reinício. Use este comando em vez de um plugin de recarregamento de terceiros.

nightbreak.applyPluginUpdatesWithoutRestart no config.yml decide o que acontece logo após qualquer descarga de uma atualização do plugin, seja através de downloadpluginupdate, downloadall, da opção Atualização do plugin do menu de configuração ou de uma descarga automática:

ValorComportamento
neverPredefinição. A atualização aguarda o próximo reinício. Os administradores online com resurrectionchest.* são informados de que é necessário reiniciar e veem o comando applypluginupdate
when-emptyAplica a atualização imediatamente se não houver jogadores online; caso contrário, verifica a cada 30 segundos e aplica-a quando o servidor ficar vazio
immediatelyAplica a atualização assim que a descarga termina

Qualquer outro valor funciona como never.

Uma troca desativa e volta a ativar o ResurrectionChest, por isso, tal como acontece com /resurrectionchest reload, o XP que os jogadores ainda não recolheram dos seus baús é descartado. Os itens nos baús não são afetados.

Proteção de regiões​

Registar um baú de morte conta como construir. Antes de aceitar a placa, o ResurrectionChest consulta o LocationQueryRegistry partilhado do MagmaCore para saber se o jogador pode construir no bloco do baú.

  • O WorldGuard e o GriefPrevention são integrados automaticamente. Os fornecedores partilhados de propriedade de locais também podem recusar o registo ao indicar que o local está protegido. Sem fornecedores de proteção ou propriedade, não há restrições adicionais.
  • Se um plugin de proteção não permitir construir, o registo é recusado e o jogador recebe Chest protected region message.
  • Se um adaptador de proteção lançar um erro, o registo é recusado em vez de ignorar a proteção.

Os adaptadores integrados são ligados primeiro no arranque e comparados novamente com os plugins ativos nas consultas posteriores. Se o WorldGuard ou o GriefPrevention estiver ativo, mas o respetivo adaptador não se conseguir ligar, a falha é registada e todos os registos são recusados enquanto esse plugin se mantiver ativo. /resurrectionchest reload não volta a tentar a ligação. A ligação é tentada novamente depois de esse plugin de proteção ser desativado ou recarregado, após uma atualização do ResurrectionChest sem reinício ou após reiniciar o servidor.

Penalização de durabilidade da armadura​

Lower worn armor's durability on death, predefinida como true, e Amount of durability to lower on death, predefinida como 100, aplicam-se à armadura equipada quando esta é enviada para o baú de morte:

  • cada peça equipada que conste dos itens perdidos ao morrer recebe Amount of durability to lower on death no seu valor de dano
  • se esse valor atingir ou ultrapassar a durabilidade máxima, a peça é removida dos itens da morte e destruída, em vez de ser guardada
  • caso contrário, a peça danificada é colocada no baú

Uma penalização de durabilidade igual a zero ou negativa não tem efeito.

A penalização só se aplica às mortes processadas pelo ResurrectionChest. Não se aplica com keepInventory ativo, em mundos excluídos, quando o jogador não tem resurrectionchest.use ou quando o baú registado desapareceu.

Modo de alta compatibilidade​

Enable high compatibility / low security mode for plugin conflicts, predefinida como false, controla o rigor da verificação dos blocos antes de o ResurrectionChest atuar sobre eles.

  • Com false, uma placa ou um baú só é reconhecido como pertencente ao ResurrectionChest se ainda tiver a marca de proprietário que o plugin escreve nos dados persistentes do bloco.
  • Com true, é aceite a ausência de uma marca numa localização registada. Uma marca de outro proprietário continua a ser rejeitada e um baú registado tem de continuar a ser um bloco de baú.

Use este modo se outro plugin remover as marcas de proprietário do ResurrectionChest. O modo permite marcas ausentes, mas não aceita blocos de substituição arbitrários nem marcas de outros proprietários.

Tratamento de XP​

Com storeXP ativo:

  • o ResurrectionChest acompanha o XP total durante o jogo, mas lê o total atual no momento da morte; assim, também conta o XP atribuído diretamente pela API de outro plugin
  • ao morrer, guarda round(total XP * xpPercentageKept), limitado ao intervalo dos inteiros não negativos
  • define o XP largado como 0
  • devolve o XP guardado quando o proprietário voltar a abrir o baú registado; qualquer metade de um baú duplo serve
  • se o jogador voltar a morrer antes de recolher o XP, o novo valor é somado ao existente

xpPercentageKept é limitado ao intervalo 0-1 ao ler a configuração. Valores superiores a 1 contam como 1; valores negativos ou inválidos contam como 0.

Exceções importantes:

  • Com keepInventory ativo, o ResurrectionChest não faz nada.
  • Com keepLevel ativo, o armazenamento de XP é ignorado e o tratamento vanilla do nível mantém-se.
  • O XP guardado fica apenas na memória. Não é escrito em playerData.yml. Reiniciar o servidor, executar /resurrectionchest reload, recarregar o plugin ou aplicar uma atualização do plugin sem reinício descarta o XP ainda não recolhido. Os itens já guardados no baú não são afetados.

Tratamento de excedentes​

Os itens são inseridos no baú uma pilha de cada vez, permitindo inserções parciais:

  • tudo o que couber é guardado, incluindo quantidades que completem pilhas existentes
  • só a quantidade que não couber permanece na lista normal de itens largados no local da morte
  • o jogador recebe um aviso de que o baú estava cheio

Integração com FreeMinecraftModels​

Com o FreeMinecraftModels instalado, o ResurrectionChest pode criar um modelo visual sobre o baú real.

Comportamento atual:

  • o modelo premium Angelic Chest tem preferência se o jogador tiver resurrectionchest.model.premium e o modelo premium estiver carregado
  • caso contrário, usa o modelo gratuito Wooden Chest se o jogador tiver resurrectionchest.model.free
  • se nenhuma permissão der acesso a um modelo utilizável, não é criado um modelo e o baú vanilla mantém-se
  • o modelo alterna entre as variantes simples e dupla conforme o tamanho do baú
  • o baú real continua a guardar os itens
  • os modelos são atualizados sempre que o FreeMinecraftModels termina um recarregamento, incluindo um iniciado fora do ResurrectionChest, e um modelo correspondente já presente no baú é reutilizado em vez de criar um duplicado

O modelo é escolhido uma única vez, no registo do baú, e guardado em playerData.yml como chestModel. Isto tem duas consequências:

  • se o FreeMinecraftModels não estiver instalado no momento do registo, o baú fica registado sem modelo e continua a ser vanilla mesmo após instalar o FreeMinecraftModels
  • alterações posteriores às permissões não mudam o modelo de um baú existente

Nos dois casos, o jogador tem de registar novamente o baú, destruindo-o e voltando a colocar a placa, para adotar o novo modelo.

Quando está ativo um modelo personalizado, os jogadores podem interagir diretamente com ele:

  • clicar com o botão direito abre o inventário do baú real
  • clicar com o botão esquerdo destrói o registo; só o proprietário pode fazê-lo. Outro jogador recebe uma mensagem vermelha e nada é destruído.

Se o FreeMinecraftModels não estiver instalado ou o modelo não puder ser criado, o baú real continua a funcionar normalmente.

Pacotes de conteúdo​

O ResurrectionChest inclui dois pacotes de conteúdo com modelos de baús FreeMinecraftModels:

  • Wooden Chest, gratuito, disponibiliza resurrectionchest_free_single / resurrectionchest_free_double. É usado por resurrectionchest.model.free.
  • Angelic Chest, premium, disponibiliza resurrectionchest_angelic_single / resurrectionchest_angelic_double. É usado por resurrectionchest.model.premium.

Cada pacote fica na pasta models do FreeMinecraftModels quando instalado e em models_disabled quando desinstalado. Alterar o seu estado através de /resurrectionchest setup move os ficheiros entre estas pastas e recarrega automaticamente o FreeMinecraftModels.

Limitações verificadas no código​

O código atual disponibiliza algumas entradas em config.yml que não são referenciadas fora de DefaultConfig:

  • Particle effect 1
  • Particle effect 2
  • freeSingleDeathChestModelName
  • freeDoubleDeathChestModelName e premiumDoubleDeathChestModelName. O plugin usa internamente os prefixos fixos resurrectionchest_free e resurrectionchest_angelic, acrescentando _single ou _double conforme o tamanho. As chaves de configuração "Double" não afetam atualmente os modelos dos baús.

Particle effect 3 é a definição de partículas utilizada pelo código atual. É resolvida uma vez no carregamento, com recurso a PORTAL e um aviso na consola se o nome for inválido. Depois, a partícula é criada a cada tick enquanto o chunk do baú estiver carregado. Definir Enable particle effects for death chests como false cancela completamente essa tarefa por tick, sendo a opção menos exigente em servidores com muitos baús registados. premiumSingleDeathChestModelName verifica se o ficheiro do modelo premium existe antes de atribuir o prefixo premium. A existência do ficheiro do modelo gratuito não é verificada separadamente.

Mais duas observações sobre os comandos:

  • /resurrectionchest initialize abre a configuração inicial e exige resurrectionchest.initialize. /resurrectionchest setup abre os controlos de conteúdo, atualizações e plugins recomendados.
  • /resurrectionchest clear não se limita a um jogador. Elimina todos os baús registados no servidor de uma só vez.

O comando de limpeza respeita as verificações de proprietário configuradas e deixa intactos os blocos que não passam nelas. Se o mundo do baú estiver descarregado, elimina o registo sem remover os blocos nesse mundo.