Aviso para donos de servidores
Leia esta página antes de começar a editar qualquer coisa em config/dragonminez ou na pasta de save dragonminez/ de um mundo em um servidor ativo. Ela explica do que o DragonMineZ faz backup por você e do que não faz, como as atualizações tratam seus arquivos e o que ter em mente em um servidor multijogador.
Faça backup antes de mexer em qualquer coisa
O DMZ guarda por conta própria uma cópia dos arquivos que altera:
- Os arquivos de configuração que ele atualiza depois de uma atualização do DMZ são movidos para
config/dragonminez/oldBackup/<same path>antes de o arquivo novo ser gravado (veja Como usar JSON). - Os arquivos padrão de missões, sagas e missões secundárias que ele atualiza são copiados antes para
<world>/dragonminez/oldBackup/<same path>(veja Recarregar e atualizar mudanças). - Arquivos que ele não consegue ler nunca são sobrescritos: o DMZ usa os valores padrão nessa sessão e deixa seu arquivo intacto.
Essa rede de segurança não cobre:
- Suas próprias edições entre duas versões do DMZ. A
oldBackup/só guarda a versão de logo antes de uma atualização. /dmzrestoreupdate, que apaga as pastaswishes,sagasequestsdo mundo (incluindo seus arquivos personalizados) e regenera os padrões.- Os dados dos jogadores:
playerdata_json/<uuid>.jsonao usar o armazenamentoJSON, seu banco de dados ao usar o armazenamentoDATABASE, e os arquivos.datvanilla dos jogadores. - Os dados salvos do mundo em
<world>/data/(posições das Esferas do Dragão, grupos, incursões, chefes de mundo e mais).
Para quem são estas páginas
As páginas de configuração e de conteúdo próprio desta wiki são escritas para quem se sente à vontade editando JSON, usando um ambiente de desenvolvimento ou criando um addon de Forge. De propósito, elas não explicam lore nem história, nem hospedagem e administração de servidores fora do próprio DMZ (portas, proxies etc.). Para jogar o mod, comece pelo Guia para iniciantes.
Nunca confie em dados do cliente para a progressão
Se você está escrevendo um addon ou um mixin para o DMZ: estatísticas, desbloqueios, permissões, missões e desejos são validados no servidor por design. Não crie recursos de addon que confiem em um valor informado pelo cliente para nada relacionado à progressão; leia o estado pelo StatsCapability / StatsProvider no servidor em vez de um cache do cliente.
Os arquivos de configuração são atualizados nas atualizações do DMZ
Cada arquivo de configuração carrega um configVersion. Quando você instala uma versão mais nova do DMZ, os arquivos desatualizados são regenerados com os novos padrões e os valores que você alterou são mesclados de volta (valores que você nunca mexeu adotam os novos padrões). Esse é o comportamento esperado, não um bug: veja Como usar JSON para saber exatamente como a mesclagem funciona, e compare com a cópia em oldBackup/ se um valor parecer errado depois de uma atualização.
Um arquivo com erro de sintaxe não é regenerado: o DMZ usa os padrões desse arquivo até você corrigi-lo e executar /dmzreload. Todo jogador vê no chat, ao entrar, um breve relatório dos arquivos quebrados (você pode desligar isso com developer.reportJsonProblemsInChat em Configuração do servidor).
Conteúdo personalizado e da comunidade sobrevive às atualizações
- Raças personalizadas mantêm todos os seus valores entre atualizações; arquivos de formas personalizadas mantêm seu conteúdo; arquivos extras de incursões e torneios, e as missões e sagas personalizadas que você criar, são carregados como estão.
- Os arquivos padrão de configuração e de história do DMZ são atualizados quando o DMZ os altera, mas os valores que você editou são mantidos. Se você quer que uma mudança seja totalmente independente dos padrões do DMZ, copie-a para sua própria raça, forma ou saga personalizada em vez de editar os arquivos do DMZ (veja Raças personalizadas, Formas personalizadas e Missões personalizadas).
- Defina
autoUpdateQuestscomofalseem Configuração do servidor se você nunca quiser que o DMZ mexa nos arquivos de missões padrão de um mundo depois que eles existirem.
Considerações para multijogador e servidores grandes
- O servidor envia seus arquivos de configuração a cada jogador ao entrar. Depois de editar um arquivo de configuração, sempre execute
/dmzreload config: até fazer isso, o servidor mantém os valores antigos enquanto os jogadores que entram recebem o arquivo editado. O recarregamento reenvia todos os arquivos a cada jogador conectado, então espere um breve travamento em servidores maiores. - Edições de missões, sagas e diálogos só têm efeito em um mundo depois de
/dmzreload story(ou de reiniciar). - Não troque de backend de armazenamento (
NBT,JSON,DATABASE) com jogadores online: faça isso com o servidor vazio e faça um backup antes. O save vanilla.datdo jogador também é sempre gravado, então ele continua sendo uma reserva se o banco de dados estiver inacessível.
Como obter ajuda
- Pergunte no Discord do DragonMineZ.
- Relate bugs no nível do motor ou peça recursos no quadro de progresso do GitHub.