Recarregar e atualizar mudanças

De DragonMineZ Wiki
Revisión del 09:49 14 oct 2026 de Shokkoh (discusión | contribs.) (Translation sync from dragonminez-wiki repository)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

Nem toda mudança precisa reiniciar o servidor, mas nem toda mudança pode ser aplicada ao vivo. Esta página explica o que o /dmzreload faz, como os valores de configuração chegam aos clientes, quando ainda é preciso reiniciar ou recarregar os recursos, e o que acontece com seus arquivos quando o próprio DragonMineZ é atualizado.

O comando /dmzreload

Veja também: Comandos, Permissões

O /dmzreload [target] é definido em ReloadCommand.java. Ele exige o nó de permissão dragonminez.dmz.reload, dragonminez.admin ou o nível de operador 2 (veja Permissões). O console sempre pode executá-lo.

/dmzreload            -> reloads everything (same as "all")
/dmzreload all        -> config + story + wishes
/dmzreload config     -> config files, raids, storage, NPC rules and placements
/dmzreload story      -> quests, sagas, side quests and NPC dialogues
/dmzreload wishes     -> dragon wishes only
Alvo O que recarrega
config Todos os arquivos de config/dragonminez (geral, combate, treinamento, habilidades, técnicas, entidades, raças, formas, formas acumuláveis, incursões, torneios), os tipos de incursão, o backend de armazenamento de jogadores (StorageManager.reload()), as regras de índole de NPCs e o posicionamento de NPCs (gerando de novo os NPCs configurados). Depois, todos os arquivos de configuração são reenviados a cada jogador online, e os limites de habilidades e a progressão deles são ressincronizados.
story QuestRegistry.loadAll(server), que relê as sagas, missões e missões secundárias do save do mundo (executando a atualização automática de missões descrita abaixo), e DialogueRegistry.loadAll(server) para os diálogos de NPCs. Depois, o registro de missões é reenviado a cada jogador online.
wishes WishManager.loadWishes(server); depois, os desejos são reenviados a cada jogador online.
all Tudo o que está acima, nessa ordem.

Depois de um recarregamento, os jogadores conectados são ressincronizados automaticamente; eles não precisam sair e entrar de novo. O console também mostra o relatório de carregamento de JSON (arquivos que falharam ao carregar e arquivos atualizados automaticamente).

Tela de configuração no jogo

A entrada DragonMineZ da tela Mods do Forge tem uma tela de configuração que lista todos os arquivos de config/dragonminez e permite editá-los no jogo; enquanto você está em um mundo, ela também tem um botão de recarregar que executa /dmzreload. Ela edita os arquivos da sua própria pasta do jogo, então é pensada para o modo um jogador e anfitriões de LAN. Em um servidor dedicado, edite os arquivos do servidor.

Alterar um valor ao vivo com /dmzconfig

/dmzconfig <file> <key> <value> ou /dmzconfig <file> <section> <key> <value> (permissão: dragonminez.admin ou nível de operador 2) altera um único valor, salva o arquivo e o reenvia a cada jogador online. Exemplos:

/dmzconfig general-server gameplay tpGainMultiplier 2.0
/dmzconfig general-server worldGen generateDragonBalls false

Ele só edita valores simples (números, true/false, texto) direto no arquivo ou a um nível de seção; listas e objetos mais profundos precisam ser editados no arquivo. Ele grava o arquivo como está, sem a atualização de versão descrita abaixo.

Como a configuração chega aos clientes

Veja também: Configuração
  • Quando um jogador entra, o servidor envia a ele todos os arquivos de config/dragonminez, exceto os só do cliente general-user.json e hud_layout.json, um pacote comprimido por arquivo. Enquanto estiver conectado, o cliente usa os valores do servidor para tudo o que esses arquivos controlam (estatísticas, formas, habilidades, valores de combate mostrados nos menus etc.).
  • /dmzreload config e /dmzconfig enviam os arquivos de novo para todos que estão online.
  • O servidor envia os arquivos do jeito que estão no disco. Se você editar um arquivo e não recarregar, o servidor continua rodando com os valores antigos enquanto os jogadores que entrarem depois recebem seu arquivo editado. Sempre execute /dmzreload config depois de editar.
  • Ao se desconectar, o cliente descarta a cópia do servidor e volta a usar seus próprios arquivos locais.

O que o /dmzreload cobre

  • config/dragonminez/general-server.json, combat.json, training.json, skills.json, techniques.json, entities.json
  • config/dragonminez/races/<race>/character.json, stats.json e forms/*.json, e config/dragonminez/forms/*.json (formas acumuláveis)
  • config/dragonminez/raids/*.json e config/dragonminez/tournaments/*.json
  • <world save>/dragonminez/{sagas,quests,sidequests} e <world save>/dragonminez/dialogues (com story ou all)
  • <world save>/dragonminez/wishes/*.json (com wishes ou all); veja Desejos personalizados
  • <world save>/dragonminez/npcs/{placements.json,alignment_rules.json} (com config ou all); veja Posicionamento e índole de NPCs

O que o /dmzreload não cobre

  • general-user.json e hud_layout.json: são arquivos do cliente. Os jogadores os alteram pela tela de Configuração no jogo e pelo editor da HUD; edições à mão exigem reiniciar o jogo.
  • Recursos de resource packs (modelos, texturas, animações em assets/dragonminez/...). Eles exigem um recarregamento de recursos no cliente (F3 + T), já que são carregados no cliente, não pela configuração do servidor.
  • Listeners de recarregamento de datapacks: spacepod/*.json (veja Destinos da Cápsula Espacial), weapon_attributes/*.json (veja Atributos de armas) e rhythm_charts/*.json. Eles seguem as regras dos datapacks vanilla: use o /reload vanilla ou reinicie o servidor.
  • Pacotes de addons externos de Esferas do Dragão em <game dir>/dragonballs/. Eles são relidos pelo /reload vanilla (conjuntos de esferas, radares, dragões e os desejos do pacote). Execute /dmzreload wishes depois para que os arquivos de desejos de cada mundo sejam mesclados de novo por cima dos desejos recarregados do pacote.
  • Troca de backend de armazenamento (NBT ↔ JSON ↔ DATABASE): /dmzreload config salva os jogadores online e reinicia o backend de armazenamento com os novos ajustes, mas trocar de backend com jogadores online não é algo para fazer de qualquer jeito; prefira fazer isso com o servidor vazio.
  • Código Java novo ou jars de addons: sempre exigem reiniciar.

Atualizar o DragonMineZ

Quando você instala uma versão nova do DMZ, seus arquivos são atualizados automaticamente na próxima inicialização.

Arquivos de configuração

Veja também: Como usar JSON

Cada arquivo de configuração carrega um configVersion (por exemplo "2.2.0"). Quando ele é mais antigo que a versão do mod, o DMZ move o arquivo antigo para config/dragonminez/oldBackup/<same path>, grava os novos padrões e mescla seus valores de volta: valores que você nunca mexeu adotam o novo padrão, valores que você alterou são mantidos e chaves novas são adicionadas. Os detalhes estão em Como usar JSON.

Missões, sagas e missões secundárias

Com autoUpdateQuests ativado em Configuração do servidor (o padrão), os arquivos padrão de missões, sagas e missões secundárias que o DMZ gerou no seu mundo são atualizados da mesma forma quando o servidor inicia (e com /dmzreload story):

  • Cada arquivo gerado carrega um "defaultsVersion". Arquivos que já estão na versão atual são ignorados.
  • Um campo que você nunca editou adota o novo padrão, então as correções de balanceamento chegam ao seu mundo.
  • Um campo que você editou mantém o seu valor. Se a nova versão também mudou esse campo, isso é registrado como conflito, e o seu valor continua vencendo.
  • Chaves que você adicionou são mantidas. Listas (objetivos, recompensas) só são mescladas entrada por entrada quando a estrutura ainda corresponde; caso contrário, sua lista inteira é mantida e informada como conflito.
  • Antes de um arquivo ser alterado, uma cópia vai para <world>/dragonminez/oldBackup/<same path>. Um resumo do que mudou é gravado em <world>/dragonminez/quest_update_report.txt e aparece no relatório de carregamento de JSON.
  • Arquivos de missões que você mesmo criou nunca são alterados.

Com autoUpdateQuests definido como false, os arquivos padrão só são gravados quando estão faltando.

Recomeçar do zero com os padrões Para descartar os arquivos de história do seu mundo e começar com os padrões atuais, use /dmzrestoreupdate. Ele apaga tudo em <world>/dragonminez/wishes, sagas e quests e depois executa /dmzreload all para regenerá-los (as missões secundárias não são alteradas). Antes, ele pede confirmação: clique no botão ou execute /dmzrestoreupdate confirm em até 15 segundos.

Fluxo de trabalho prático

  1. Edite seu arquivo ou arquivos JSON.
  2. Valide a sintaxe do JSON (veja Como usar JSON).
  3. Execute o /dmzreload <target> mais específico que cubra sua mudança: config para edições de balanceamento, raças, formas e incursões, story para edições de missões, sagas e diálogos, wishes para edições de desejos.
  4. Confira o log do servidor (ou o relatório de carregamento de JSON no chat). Uma mensagem malformed JSON significa que o DMZ não conseguiu ler seu arquivo: ele está usando os padrões desse arquivo e seu arquivo ficou intacto. Corrija e recarregue de novo.
  5. Para mudanças em resource packs ou datapacks, faça em vez disso um recarregamento de recursos no cliente ou um /reload vanilla.

Na dúvida, o /dmzreload all pode ser executado com segurança a qualquer momento: ele só refaz todos os caminhos de recarregamento e ressincroniza todo mundo.