Recargar y actualizar cambios
No todos los cambios necesitan reiniciar el servidor, pero tampoco todos se pueden aplicar en caliente. Esta página explica qué hace /dmzreload, cómo llegan los valores de configuración a los clientes, cuándo sigue haciendo falta un reinicio o una recarga de recursos, y qué pasa con tus archivos cuando se actualiza el propio DragonMineZ.
El comando /dmzreload
/dmzreload [target] se define en ReloadCommand.java. Requiere el nodo de permiso dragonminez.dmz.reload, dragonminez.admin o el nivel de operador 2 (consulta Permisos). La consola siempre puede ejecutarlo.
/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
| Objetivo | Qué recarga |
|---|---|
config |
Todos los archivos de config/dragonminez (general, combate, entrenamiento, habilidades, técnicas, entidades, razas, formas, formas acumulables, incursiones, torneos), los tipos de incursión, el backend de almacenamiento de jugadores (StorageManager.reload()), las reglas de alineamiento de NPCs y las ubicaciones de NPCs (vuelve a hacer aparecer los NPCs configurados). Después, todos los archivos de configuración se vuelven a enviar a cada jugador conectado, y se resincronizan sus límites de habilidades y su progresión.
|
story |
QuestRegistry.loadAll(server), que vuelve a leer las sagas, misiones y misiones secundarias del mundo guardado (ejecutando la actualización automática de misiones descrita abajo), y DialogueRegistry.loadAll(server) para los diálogos de NPCs. Después, el registro de misiones se vuelve a enviar a cada jugador conectado.
|
wishes |
WishManager.loadWishes(server); después, los deseos se vuelven a enviar a cada jugador conectado.
|
all |
Todo lo anterior, en ese orden. |
Después de una recarga, los jugadores conectados se resincronizan automáticamente; no necesitan volver a conectarse. La consola también muestra el informe de carga de JSON (archivos que no se pudieron cargar y archivos que se actualizaron automáticamente).
Pantalla de configuración en el juego
La entrada DragonMineZ de la pantalla Mods de Forge tiene una pantalla de configuración que lista todos los archivos de config/dragonminez y te permite editarlos en el juego; mientras estás en un mundo también tiene un botón de recarga que ejecuta /dmzreload. Edita los archivos de tu propia carpeta del juego, así que está pensada para partidas en un solo jugador y anfitriones de LAN. En un servidor dedicado, edita los archivos del servidor.
Cambiar un valor en caliente con /dmzconfig
/dmzconfig <file> <key> <value> o /dmzconfig <file> <section> <key> <value> (permiso: dragonminez.admin o nivel de operador 2) cambia un solo valor, guarda el archivo y lo vuelve a enviar a cada jugador conectado. Ejemplos:
/dmzconfig general-server gameplay tpGainMultiplier 2.0
/dmzconfig general-server worldGen generateDragonBalls false
Solo edita valores simples (números, true/false, texto) directamente en el archivo o a un nivel de sección; las listas y los objetos más profundos se deben editar en el archivo. Escribe el archivo tal como está, sin la actualización de versión descrita abajo.
Cómo llega la configuración a los clientes
- Cuando un jugador se conecta, el servidor le envía todos los archivos de
config/dragonminezexcepto los de solo clientegeneral-user.jsonyhud_layout.json, un paquete comprimido por archivo. Mientras está conectado, el cliente usa los valores del servidor para todo lo que controlan esos archivos (estadísticas, formas, habilidades, valores de combate que se muestran en los menús, etc.). /dmzreload configy/dmzconfigvuelven a enviar los archivos a todos los conectados.- El servidor envía los archivos tal como están en el disco. Si editas un archivo y no recargas, el servidor sigue funcionando con los valores viejos mientras que los jugadores que se conecten después reciben tu archivo editado. Ejecuta siempre
/dmzreload configdespués de editar. - Al desconectarse, el cliente descarta la copia del servidor y vuelve a sus propios archivos locales.
Qué cubre /dmzreload
config/dragonminez/general-server.json,combat.json,training.json,skills.json,techniques.json,entities.jsonconfig/dragonminez/races/<race>/character.json,stats.jsonyforms/*.json, yconfig/dragonminez/forms/*.json(formas acumulables)config/dragonminez/raids/*.jsonyconfig/dragonminez/tournaments/*.json<world save>/dragonminez/{sagas,quests,sidequests}y<world save>/dragonminez/dialogues(constoryoall)<world save>/dragonminez/wishes/*.json(conwishesoall); consulta Deseos personalizados<world save>/dragonminez/npcs/{placements.json,alignment_rules.json}(conconfigoall); consulta Ubicación y alineamiento de NPCs
Qué no cubre /dmzreload
general-user.jsonyhud_layout.json: son archivos del cliente. Los jugadores los cambian desde la pantalla de Configuración del juego y el editor del HUD; las ediciones a mano necesitan reiniciar el juego.- Recursos de resource packs (modelos, texturas, animaciones en
assets/dragonminez/...). Necesitan una recarga de recursos del cliente (F3 + T), ya que se cargan en el cliente, no desde la configuración del servidor. - Listeners de recarga de datapacks:
spacepod/*.json(consulta Destinos de la Cápsula Espacial),weapon_attributes/*.json(consulta Atributos de armas) yrhythm_charts/*.json. Siguen las reglas de los datapacks vanilla: usa el/reloadvanilla o reinicia el servidor. - Paquetes de addons externos de Esferas del Dragón en
<game dir>/dragonballs/. Los vuelve a leer el/reloadvanilla (juegos de esferas, radares, dragones y los deseos del paquete). Ejecuta/dmzreload wishesdespués para que los archivos de deseos de cada mundo se vuelvan a combinar sobre los deseos recargados del paquete. - Cambio de backend de almacenamiento (
NBT↔JSON↔DATABASE):/dmzreload configguarda a los jugadores conectados y reinicia el backend de almacenamiento con los nuevos ajustes, pero cambiar de backend con jugadores conectados no es algo para hacer a la ligera; mejor hazlo con el servidor vacío. - Código Java nuevo o jars de addons: siempre requieren un reinicio.
Actualizar DragonMineZ
Cuando instalas una versión nueva de DMZ, tus archivos se actualizan automáticamente en el siguiente arranque.
Archivos de configuración
Cada archivo de configuración lleva un configVersion (por ejemplo "2.2.0"). Cuando es anterior a la versión del mod, DMZ mueve el archivo viejo a config/dragonminez/oldBackup/<same path>, escribe los nuevos valores predeterminados y vuelve a combinar tus valores: los que nunca tocaste adoptan el nuevo valor predeterminado, los que cambiaste se conservan y se añaden las claves nuevas. Los detalles están en Cómo usar JSON.
Misiones, sagas y misiones secundarias
Con autoUpdateQuests activado en Configuración del servidor (el valor predeterminado), los archivos predeterminados de misiones, sagas y misiones secundarias que DMZ generó en tu mundo se actualizan de la misma forma cuando arranca el servidor (y con /dmzreload story):
- Cada archivo generado lleva un
"defaultsVersion". Los archivos que ya están en la versión actual se omiten. - Un campo que nunca editaste adopta el nuevo valor predeterminado, así que los ajustes de balance llegan a tu mundo.
- Un campo que editaste conserva tu valor. Si la nueva versión también cambió ese campo, se registra como conflicto, y tu valor sigue ganando.
- Las claves que añadiste se conservan. Las listas (objetivos, recompensas) solo se combinan entrada por entrada cuando su estructura sigue coincidiendo; si no, se conserva tu lista entera y se informa como conflicto.
- Antes de cambiar un archivo, se guarda una copia en
<world>/dragonminez/oldBackup/<same path>. Un resumen de lo que cambió se escribe en<world>/dragonminez/quest_update_report.txty se muestra en el informe de carga de JSON. - Los archivos de misiones que creaste tú nunca se tocan.
Con autoUpdateQuests en false, los archivos predeterminados solo se escriben cuando faltan.
/dmzrestoreupdate. Borra todo lo que hay en <world>/dragonminez/wishes, sagas y quests, y luego ejecuta /dmzreload all para regenerarlos (las misiones secundarias no se tocan). Primero pide confirmación: haz clic en el botón o ejecuta /dmzrestoreupdate confirm en menos de 15 segundos.
Flujo de trabajo práctico
- Edita tu archivo o archivos JSON.
- Valida la sintaxis del JSON (consulta Cómo usar JSON).
- Ejecuta el
/dmzreload <target>más acotado que cubra tu cambio:configpara ediciones de balance, razas, formas e incursiones,storypara ediciones de misiones, sagas y diálogos,wishespara ediciones de deseos. - Revisa el log del servidor (o el informe de carga de JSON en el chat). Un mensaje
malformed JSONsignifica que DMZ no pudo leer tu archivo: está usando los valores predeterminados de ese archivo y tu archivo quedó intacto. Arréglalo y vuelve a recargar. - Para cambios en resource packs o datapacks, haz en su lugar una recarga de recursos del cliente o un
/reloadvanilla.
Si tienes dudas, /dmzreload all se puede ejecutar con seguridad en cualquier momento: simplemente vuelve a ejecutar todas las rutas de recarga y resincroniza a todos.