Configuración y permisos de ResurrectionChest
Permisos
| Permiso | Función | Valor predeterminado |
|---|---|---|
resurrectionchest.* | Da a los administradores acceso al comando base y a los subcomandos downloadall, forcereinstallcontent, downloadpluginupdate, applypluginupdate, reload y clear, y les muestra el recordatorio del primer arranque. setup e initialize comprueban sus propios nodos, indicados más abajo | op |
resurrectionchest.setup | Da acceso a /resurrectionchest setup, recommendedplugins, downloadallcontent y updatecontent | op |
resurrectionchest.initialize | Abre el menú de configuración inicial con /resurrectionchest initialize | op |
resurrectionchest.use | Permite registrar un cofre y enviar a él los objetos que se sueltan al morir | true |
resurrectionchest.model.free | Permite usar los modelos gratuitos de cofre de FreeMinecraftModels, Wooden Chest | true |
resurrectionchest.model.premium | Permite usar los modelos premium de cofre de FreeMinecraftModels, Angelic Chest | op |
resurrectionchest.use es el permiso que controla el funcionamiento del cofre. Los permisos de administración y modelos solo afectan a los comandos y a los aspectos visuales opcionales, respectivamente.
Comandos
| Comando | Permiso | Función |
|---|---|---|
/resurrectionchest | resurrectionchest.* | Muestra una breve descripción con indicaciones para configurar el plugin |
/resurrectionchest initialize | resurrectionchest.initialize | Abre la configuración inicial guiada; Configuración recomendada, Configuración manual y Usar contenido actual marcan la configuración como terminada. |
/resurrectionchest setup | resurrectionchest.setup | Abre el menú para explorar y activar paquetes de cofres, consultar actualizaciones, ver plugins recomendados y activar actualizaciones automáticas |
/resurrectionchest recommendedplugins | resurrectionchest.setup | Abre la lista de plugins complementarios recomendados para ResurrectionChest o la muestra en la consola: FreeMinecraftModels y ResourcePackManager |
/resurrectionchest downloadall | resurrectionchest.* | Descarga la actualización del plugin, si existe, y todos los paquetes de contenido disponibles en Nightbreak |
/resurrectionchest downloadallcontent | resurrectionchest.setup | Descarga todos los paquetes de contenido disponibles en Nightbreak |
/resurrectionchest updatecontent (alias updateallcontent) | resurrectionchest.setup | Vuelve a descargar únicamente los paquetes instalados que estén desactualizados |
/resurrectionchest forcereinstallcontent <package|all> | resurrectionchest.* | Vuelve a descargar un paquete o todos los paquetes descargados, aunque la versión instalada ya sea la actual. Los argumentos se autocompletan con los identificadores de Nightbreak wooden-chest, angelic-chest y all |
/resurrectionchest downloadpluginupdate | resurrectionchest.* | Descarga una actualización de ResurrectionChest si hay alguna disponible |
/resurrectionchest applypluginupdate | resurrectionchest.* | Aplica una actualización del plugin ya descargada sin reiniciar el servidor. Consulta Actualizaciones del plugin sin reinicio |
/resurrectionchest reload | resurrectionchest.* | Recarga ResurrectionChest |
/resurrectionchest clear | resurrectionchest.* | Elimina todos los bloques registrados por ResurrectionChest; deja caer el inventario de cada cofre y retira los bloques de cofre y cartel |
/resurrectionchestchangelog [dismiss|disable] | op, resurrectionchest.*, resurrectionchest.setup o resurrectionchest.initialize | Muestra dentro del juego las notas de versión de ResurrectionChest sin leer. Consulta Notificaciones de notas de versión |
Las actualizaciones descargadas del plugin se colocan en la carpeta de actualizaciones del servidor. Se aplican después del siguiente reinicio, salvo que las apliques antes con /resurrectionchest applypluginupdate o con el ajuste nightbreak.applyPluginUpdatesWithoutRestart.
Las herramientas de MagmaCore incluidas también registran los comandos compartidos /nightbreak, /nightbreaklogin, /nightbreaklogout y /logify si ningún otro plugin ha reclamado esos nombres. Consulta Tokens de Nightbreak.
Archivos del plugin
| Ruta | Función |
|---|---|
plugins/ResurrectionChest/config.yml | Todas las opciones de la tabla siguiente |
plugins/ResurrectionChest/playerData.yml | Una entrada por cofre registrado, con el UUID del jugador como clave: la ubicación location, el prefijo chestModel elegido al registrarlo y un trackedBlockSchemaVersion para migrar registros antiguos a las marcas actuales de propiedad de bloques |
plugins/ResurrectionChest/content_packages/ | Las definiciones de los paquetes wooden_chest.yml / angelic_chest.yml: isEnabled, name, description, version, folderName, nightbreakSlug, contentFilePrefixes y los opcionales downloadLink y category |
plugins/ResurrectionChest/nightbreak-changelogs.yml | Estado de lectura o descarte de la bandeja compartida de notas de versión que usa /resurrectionchestchangelog. Consulta Notificaciones de notas de versión |
plugins/ResurrectionChest/imports/ | Carpeta para importaciones manuales. Su contenido se extrae al arrancar; los modelos se envían a FreeMinecraftModels, que se actualiza automáticamente. Consulta Importaciones manuales y gestión dentro del juego |
plugins/ResurrectionChest/resource_pack/ | Recursos compartidos de iconos de menú y fuentes de Nightbreak, exportados desde el MagmaCore incluido al cargar el plugin y exportados de nuevo cuando cambia la copia incluida |
No edites playerData.yml manualmente mientras el servidor esté en marcha. ResurrectionChest lo reescribe cada vez que se registra o elimina un cofre.
Opciones de configuración
config.yml ofrece actualmente estas opciones:
| Clave | Tipo | Valor predeterminado |
|---|---|---|
setupDone | boolean | false |
nightbreak.autoDownloadPluginUpdates | boolean | false |
nightbreak.applyPluginUpdatesWithoutRestart | string | never |
Input name for death chest | string | [DeathChest] |
Enable high compatibility / low security mode for plugin conflicts | boolean | false |
Lower worn armor's durability on death | boolean | true |
Amount of durability to lower on death | int | 100 |
Chest creation message | string | &8[ResurrectionChest] &aYou've created your Death Chest! |
Chest destruction message | string | &8[ResurrectionChest] &cYour Death Chest has been destroyed! |
Chest missing message | string | &8[ResurrectionChest] &4Your Death Chest is missing! |
Chest protected region message | string | &8[ResurrectionChest] &cYou can't create a Death Chest here - this area is protected! |
Death message | string | &8[ResurrectionChest] &aYour items have been moved to your Death Chest! |
deathChestRemovedMessage | string | &8[ResurrectionChest] &cYour Death Chest has been removed! |
Enable particle effects for death chests | boolean | true |
Particle effect 1 | string | ENCHANTMENT_TABLE |
Particle effect 2 | string | ENCHANTMENT_TABLE |
Particle effect 3 | string | PORTAL |
blacklistedWorlds | list | [none] |
storeXP | boolean | true |
xpPercentageKept | double | 0.75 |
deathChestNameTag | string | $playerName's &fResurrection Chest |
freeSingleDeathChestModelName | string | resurrectionchest_free_single |
freeDoubleDeathChestModelName | string | resurrectionchest_free_double |
premiumSingleDeathChestModelName | string | resurrectionchest_angelic_single |
premiumDoubleDeathChestModelName | string | resurrectionchest_angelic_double |
Actualizaciones automáticas del plugin y el contenido
nightbreak.autoDownloadPluginUpdates es una opción compartida de Nightbreak y MagmaCore incluida en ResurrectionChest. Su valor predeterminado es false.
- Con
false, no se descarga nada automáticamente. ResurrectionChest sigue comprobando si hay actualizaciones del plugin unos minutos después del arranque (el retraso se escalona por plugin) y después aproximadamente cada hora, para mostrar el resultado en el botón de actualización del juego, pero tú debes iniciar las descargas. - Con
true, ResurrectionChest descarga unos minutos después del arranque la actualización disponible del plugin y los paquetes de contenido desactualizados. Las actualizaciones de contenido descargadas se usan después de reiniciar el servidor. Una actualización del plugin descargada también espera a un reinicio, salvo quenightbreak.applyPluginUpdatesWithoutRestartla aplique antes. - Las descargas automáticas del plugin requieren un token válido de una cuenta de Nightbreak y una suscripción de colaborador activa.
Puedes cambiar esta opción desde el botón Actualizaciones automáticas de la barra de herramientas de /resurrectionchest setup o editando config.yml.
El menú también incluye Actualización del plugin, que muestra las versiones instalada y disponible y descarga la actualización al pulsarlo, y Plugins recomendados, que muestra la misma lista que /resurrectionchest recommendedplugins.
Actualizaciones del plugin sin reinicio
Una actualización del plugin descargada espera en la carpeta de actualizaciones del servidor. /resurrectionchest applypluginupdate la instala sin reiniciar el servidor. ResurrectionChest se deshabilita, se sustituye su JAR y la nueva versión se carga y se habilita. Los demás plugins de MagmaGuy que dependen de ResurrectionChest se recargan con él.
El comando se niega, con un mensaje, cuando:
- no hay ninguna actualización descargada en espera
- la actualización en espera no es más reciente que la versión en ejecución, o su JAR no es válido
- un plugin de otro autor depende de ResurrectionChest, como dependencia obligatoria u opcional. En ese caso, reinicia el servidor
- ya hay otro cambio de plugin en curso
Si la nueva versión no consigue habilitarse, se vuelve a cargar el JAR anterior y la actualización se queda en la carpeta de actualizaciones para el siguiente reinicio. Usa este comando en lugar de un recargador de plugins de terceros.
nightbreak.applyPluginUpdatesWithoutRestart en config.yml decide qué ocurre justo después de cualquier descarga de una actualización del plugin, tanto si procede de downloadpluginupdate, de downloadall, de la entrada Actualización del plugin del menú de configuración o de una descarga automática:
| Valor | Comportamiento |
|---|---|
never | Valor predeterminado. La actualización espera al siguiente reinicio. A los administradores conectados con resurrectionchest.* se les avisa de que hace falta reiniciar y se les muestra el comando applypluginupdate |
when-empty | Aplica la actualización de inmediato si no hay jugadores conectados; si los hay, lo comprueba cada 30 segundos y la aplica en cuanto el servidor se queda vacío |
immediately | Aplica la actualización en cuanto termina la descarga |
Cualquier otro valor se comporta como never.
El cambio deshabilita y vuelve a habilitar ResurrectionChest, así que, igual que con /resurrectionchest reload, se descarta la XP que los jugadores aún no hayan recogido de sus cofres. Los objetos de los cofres no se ven afectados.
Protección de regiones
Registrar un cofre de muerte cuenta como construir. Antes de aceptar el cartel, ResurrectionChest consulta al LocationQueryRegistry compartido de MagmaCore si el jugador puede construir en el bloque del cofre.
- WorldGuard y GriefPrevention se integran automáticamente. Los proveedores compartidos de propiedad de ubicaciones también pueden impedir el registro si consideran protegida la ubicación. Sin proveedores de protección o propiedad, no hay restricciones adicionales.
- Si un plugin de protección deniega la construcción, se rechaza el registro y se envía al jugador
Chest protected region message. - Si un adaptador de protección genera un error, se rechaza el registro en vez de omitir la protección.
Los adaptadores integrados intentan conectarse al arrancar y, en consultas posteriores, se vuelve a comprobar qué plugins están habilitados. Si WorldGuard o GriefPrevention está habilitado pero su adaptador no consigue conectarse, se registra el fallo y se rechazan todos los registros mientras ese plugin siga habilitado. /resurrectionchest reload no vuelve a intentar la conexión. Se reintenta después de deshabilitar o recargar ese plugin de protección, tras una actualización de ResurrectionChest sin reinicio o tras reiniciar el servidor.
Penalización de durabilidad de la armadura
Lower worn armor's durability on death, con valor predeterminado true, y Amount of durability to lower on death, con valor predeterminado 100, se aplican a la armadura equipada mientras se envía al cofre de muerte:
- a cada pieza equipada que figure entre los objetos soltados al morir se le suma
Amount of durability to lower on deatha su valor de daño - si alcanza o supera su durabilidad máxima, la pieza se elimina de los objetos soltados: se destruye en vez de guardarse
- en caso contrario, se guarda la pieza dañada en el cofre
Una penalización de durabilidad igual a cero o negativa no tiene efecto.
La penalización solo se aplica a las muertes que gestiona ResurrectionChest. Se omite si keepInventory está activo, el mundo está excluido, el jugador no tiene resurrectionchest.use o el cofre registrado ha desaparecido.
Modo de alta compatibilidad
Enable high compatibility / low security mode for plugin conflicts, con valor predeterminado false, controla el rigor de la verificación de un bloque antes de actuar sobre él.
- Con
false, un cartel o cofre solo se considera de ResurrectionChest si conserva la marca de propietario que el plugin escribe en sus datos persistentes. - Con
true, se acepta que falte la marca de propiedad en una ubicación registrada. Se sigue rechazando una marca de otro propietario y el bloque registrado debe seguir siendo un cofre.
Usa este modo si otro plugin elimina las marcas de propiedad de ResurrectionChest. Relaja la comprobación de marcas ausentes; no permite bloques de sustitución arbitrarios ni marcas de otro propietario.
Gestión de XP
Cuando storeXP está activado:
- ResurrectionChest sigue la XP total del jugador durante la partida, pero lee su total actual al morir; por tanto, también cuenta la XP concedida directamente mediante la API de otro plugin
- al morir, guarda
round(total XP * xpPercentageKept), limitado al rango de enteros no negativos - establece la XP soltada en
0 - devuelve la XP guardada la próxima vez que el propietario abra su cofre registrado; sirve cualquiera de las mitades de un cofre doble
- si vuelve a morir antes de recogerla, la nueva cantidad se suma a la anterior en vez de sustituirla
xpPercentageKept se limita al intervalo 0-1 al leer la configuración. Los valores superiores a 1 se tratan como 1, y los negativos o inválidos como 0.
Excepciones importantes:
- Si
keepInventoryestá activo, ResurrectionChest no hace nada. - Si
keepLevelestá activo, se omite el almacenamiento de XP y se conserva la gestión de niveles de vanilla. - La XP guardada solo se conserva en memoria. No se escribe en
playerData.yml, por lo que reiniciar el servidor, ejecutar/resurrectionchest reload, recargar el plugin o aplicar una actualización del plugin sin reinicio elimina la XP que aún no se haya recogido. Los objetos que ya estén dentro del cofre no se ven afectados.
Gestión de objetos sobrantes
Los objetos se introducen en el cofre pila por pila y pueden introducirse parcialmente:
- se guarda todo lo que quepa, incluso completando una pila existente
- solo la cantidad sobrante permanece entre los objetos soltados en el lugar de la muerte
- el jugador recibe un aviso de que el cofre estaba lleno
Integración con FreeMinecraftModels
Si FreeMinecraftModels está instalado, ResurrectionChest puede mostrar un modelo visual de cofre sobre el cofre real.
Comportamiento actual:
- se prefieren los modelos premium de Angelic Chest cuando el jugador tiene
resurrectionchest.model.premiumy el modelo premium está cargado - en caso contrario, se usa el modelo gratuito de Wooden Chest si el jugador tiene
resurrectionchest.model.free - si ninguno de los permisos permite usar un modelo disponible, no se genera ningún modelo visual y se conserva el cofre vanilla
- el modelo cambia entre las variantes simple y doble según el tamaño del cofre
- el almacenamiento sigue siendo el cofre real
- los modelos visuales se actualizan cada vez que FreeMinecraftModels termina una recarga, incluidas las iniciadas fuera de ResurrectionChest, y si ya hay en el cofre un modelo visual coincidente, se reutiliza en lugar de generar un duplicado
El modelo se elige una sola vez, al registrar el cofre, y se guarda en playerData.yml como su chestModel. Esto tiene dos consecuencias:
- si FreeMinecraftModels no estaba instalado al registrar el cofre, este se guarda sin modelo y sigue siendo un cofre vanilla aunque instales FreeMinecraftModels después
- cambiar los permisos posteriormente no modifica el modelo de un cofre ya registrado
En ambos casos, el jugador debe volver a registrar el cofre, rompiéndolo y colocando el cartel de nuevo, para adoptar el nuevo modelo.
Cuando hay un modelo personalizado activo, los jugadores pueden interactuar directamente con él:
- clic derecho para abrir el inventario del cofre real
- clic izquierdo para eliminar el registro; solo puede hacerlo el propietario. Los demás reciben un mensaje rojo y no se destruye nada
Si FreeMinecraftModels no está instalado o no puede generar el modelo, el cofre real sigue funcionando normalmente.
Paquetes de contenido
ResurrectionChest incluye dos paquetes de contenido con modelos de cofre de FreeMinecraftModels:
- Wooden Chest (gratuito): proporciona
resurrectionchest_free_single/resurrectionchest_free_double. Lo usaresurrectionchest.model.free. - Angelic Chest (premium): proporciona
resurrectionchest_angelic_single/resurrectionchest_angelic_double. Lo usaresurrectionchest.model.premium.
Cada paquete se guarda en la carpeta models de FreeMinecraftModels cuando está instalado y en models_disabled cuando está desinstalado. Activarlo o desactivarlo mediante /resurrectionchest setup mueve los archivos entre esas carpetas y recarga FreeMinecraftModels automáticamente.
Limitaciones comprobadas en el código
El código actual contiene algunas opciones disponibles en config.yml que no se usan fuera de DefaultConfig:
Particle effect 1Particle effect 2freeSingleDeathChestModelNamefreeDoubleDeathChestModelNameypremiumDoubleDeathChestModelName: el plugin define internamente los prefijosresurrectionchest_freeyresurrectionchest_angelicy añade_singleo_doublesegún el tamaño del cofre. Por eso, las claves "Double" no afectan actualmente a sus modelos visuales
Particle effect 3 sí se usa en el código actual. Se resuelve una vez al cargar, con PORTAL como alternativa y una advertencia en la consola si el nombre no es válido, y después genera partículas cada tick mientras el chunk del cofre esté cargado. Establecer Enable particle effects for death chests en false cancela por completo esa tarea, lo que reduce el coste en servidores con muchos cofres registrados. premiumSingleDeathChestModelName comprueba que exista el archivo del modelo premium antes de asignar su prefijo; la existencia del archivo del modelo gratuito no se comprueba por separado.
Otras dos limitaciones de los comandos:
/resurrectionchest initializeabre la configuración inicial y requiereresurrectionchest.initialize./resurrectionchest setupabre los controles de contenido, actualizaciones y plugins recomendados./resurrectionchest clearno se limita a un jugador. Elimina todos los cofres registrados del servidor en una sola operación.
El comando de limpieza respeta las comprobaciones de propiedad configuradas y conserva los bloques que no las superan. Si el mundo del cofre está descargado, elimina el registro sin retirar sus bloques.