Configuration et permissions de ResurrectionChest
Permissions
| Permission | Fonction | Par défaut |
|---|---|---|
resurrectionchest.* | Autorise la commande de base et les sous-commandes downloadall, forcereinstallcontent, downloadpluginupdate, applypluginupdate, reload et clear, et affiche le rappel du premier démarrage. setup et initialize vérifient leurs propres permissions ci-dessous | op |
resurrectionchest.setup | Autorise /resurrectionchest setup, recommendedplugins, downloadallcontent et updatecontent | op |
resurrectionchest.initialize | Ouvre la première configuration avec /resurrectionchest initialize | op |
resurrectionchest.use | Permet d'enregistrer un coffre et d'y transférer les objets de mort | true |
resurrectionchest.model.free | Autorise les modèles de coffre gratuits de FreeMinecraftModels, Wooden Chest | true |
resurrectionchest.model.premium | Autorise les modèles de coffre premium de FreeMinecraftModels, Angelic Chest | op |
resurrectionchest.use contrôle le fonctionnement des coffres. Les permissions d'administration ne concernent que les commandes ; celles des modèles ne concernent que leur apparence facultative.
Commandes
| Commande | Permission | Fonction |
|---|---|---|
/resurrectionchest | resurrectionchest.* | Affiche un bref message orientant vers la configuration |
/resurrectionchest initialize | resurrectionchest.initialize | Ouvre la première configuration guidée ; Recommended Setup, Manual Setup et Use Current Content la marquent comme terminée. |
/resurrectionchest setup | resurrectionchest.setup | Ouvre le menu permettant de parcourir et gérer les packs, rechercher les mises à jour, consulter les plugins recommandés et gérer les mises à jour automatiques |
/resurrectionchest recommendedplugins | resurrectionchest.setup | Ouvre les plugins compagnons recommandés, ou les liste dans la console : FreeMinecraftModels et ResourcePackManager |
/resurrectionchest downloadall | resurrectionchest.* | Télécharge la mise à jour du plugin, si disponible, et tous les packs de contenu disponibles sur Nightbreak |
/resurrectionchest downloadallcontent | resurrectionchest.setup | Télécharge tous les packs de contenu disponibles sur Nightbreak |
/resurrectionchest updatecontent (alias updateallcontent) | resurrectionchest.setup | Retélécharge uniquement les packs installés qui ne sont plus à jour |
/resurrectionchest forcereinstallcontent <package|all> | resurrectionchest.* | Retélécharge un pack, ou tous les packs téléchargés, même si leur version installée est actuelle. L'autocomplétion propose les identifiants Nightbreak wooden-chest, angelic-chest et all |
/resurrectionchest downloadpluginupdate | resurrectionchest.* | Télécharge une mise à jour de ResurrectionChest si elle est disponible |
/resurrectionchest applypluginupdate | resurrectionchest.* | Applique une mise à jour du plugin déjà téléchargée sans redémarrer le serveur. Voir Mises à jour du plugin sans redémarrage |
/resurrectionchest reload | resurrectionchest.* | Recharge ResurrectionChest |
/resurrectionchest clear | resurrectionchest.* | Efface tous les blocs suivis par ResurrectionChest, dépose l'inventaire de chaque coffre au sol et supprime les coffres et panneaux |
/resurrectionchestchangelog [dismiss|disable] | op, resurrectionchest.*, resurrectionchest.setup ou resurrectionchest.initialize | Affiche en jeu les notes de version de ResurrectionChest non lues. Voir Notifications de changements |
Les mises à jour téléchargées du plugin sont placées dans le dossier de mise à jour du serveur. Elles prennent effet au prochain redémarrage, sauf si vous les appliquez plus tôt avec /resurrectionchest applypluginupdate ou le réglage nightbreak.applyPluginUpdatesWithoutRestart.
Les outils MagmaCore intégrés enregistrent aussi les commandes partagées /nightbreak, /nightbreaklogin, /nightbreaklogout et /logify si aucun autre plugin n'a déjà pris ces noms. Voir Jetons Nightbreak.
Fichiers du plugin
| Chemin | Fonction |
|---|---|
plugins/ResurrectionChest/config.yml | Tous les paramètres du tableau ci-dessous |
plugins/ResurrectionChest/playerData.yml | Une entrée par coffre, indexée par l'UUID du joueur, contenant sa location, le préfixe chestModel choisi à l'enregistrement et trackedBlockSchemaVersion pour migrer les anciens enregistrements vers les marques de propriété actuelles |
plugins/ResurrectionChest/content_packages/ | Définitions des packs wooden_chest.yml et angelic_chest.yml : isEnabled, name, description, version, folderName, nightbreakSlug, contentFilePrefixes, ainsi que les champs facultatifs downloadLink et category |
plugins/ResurrectionChest/nightbreak-changelogs.yml | État lu ou ignoré des notifications communes de changements accessibles via /resurrectionchestchangelog. Voir Notifications de changements |
plugins/ResurrectionChest/imports/ | Dossier des importations manuelles. Son contenu est décompressé au démarrage, les modèles sont envoyés vers FreeMinecraftModels et ce dernier est rechargé automatiquement. Voir Importations manuelles ou gestion en jeu |
plugins/ResurrectionChest/resource_pack/ | Ressources partagées d'icônes de menu et de police Nightbreak, exportées depuis le MagmaCore intégré au chargement du plugin, puis de nouveau lorsque la copie intégrée change |
Ne modifiez pas manuellement playerData.yml lorsque le serveur tourne. ResurrectionChest le réécrit à chaque enregistrement ou suppression de coffre.
Paramètres disponibles
config.yml contient actuellement les paramètres suivants :
| Clé de configuration | Type | Par défaut |
|---|---|---|
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 |
Mises à jour automatiques du plugin et du contenu
nightbreak.autoDownloadPluginUpdates est un paramètre commun Nightbreak/MagmaCore fourni avec ResurrectionChest. Sa valeur par défaut est false.
- Avec
false, aucun téléchargement n'est automatique. ResurrectionChest recherche tout de même une mise à jour quelques minutes après le démarrage (le délai varie selon le plugin), puis environ toutes les heures, pour afficher le résultat sur le bouton de mise à jour en jeu. Vous déclenchez vous-même les téléchargements. - Avec
true, ResurrectionChest télécharge quelques minutes après le démarrage la mise à jour disponible du plugin et les packs installés qui ne sont plus à jour. Les mises à jour de contenu téléchargées sont utilisées après le redémarrage du serveur. Une mise à jour du plugin téléchargée attend elle aussi un redémarrage, sauf sinightbreak.applyPluginUpdatesWithoutRestartl'applique plus tôt. - Le téléchargement automatique du plugin nécessite un jeton de compte Nightbreak valide et un abonnement de soutien actif.
Vous pouvez modifier ce paramètre avec le bouton Mises à jour automatiques de la barre d'outils de /resurrectionchest setup, ou directement dans config.yml.
Le menu propose aussi Mise à jour du plugin, qui affiche les versions installée et disponible et télécharge la mise à jour au clic, ainsi que Plugins recommandés, identique à /resurrectionchest recommendedplugins.
Mises à jour du plugin sans redémarrage
Une mise à jour du plugin téléchargée attend dans le dossier de mise à jour du serveur. /resurrectionchest applypluginupdate l'installe sans redémarrer le serveur. ResurrectionChest est désactivé, son jar est remplacé, puis la nouvelle version est chargée et activée. Les autres plugins de MagmaGuy qui dépendent de ResurrectionChest sont rechargés avec lui.
La commande refuse, avec un message, lorsque :
- aucune mise à jour téléchargée n'est en attente
- la mise à jour en attente n'est pas plus récente que la version en cours, ou son jar n'est pas valide
- un plugin d'un autre auteur dépend de ResurrectionChest (dépendance ou dépendance optionnelle). Redémarrez plutôt le serveur
- un autre remplacement de plugin est déjà en cours
Si la nouvelle version ne parvient pas à s'activer, l'ancien jar est rechargé et la mise à jour reste dans le dossier de mise à jour pour le prochain redémarrage. Utilisez cette commande plutôt qu'un plugin tiers de rechargement.
nightbreak.applyPluginUpdatesWithoutRestart dans config.yml détermine ce qui se passe juste après le téléchargement d'une mise à jour du plugin, qu'elle provienne de downloadpluginupdate, de downloadall, de l'entrée Mise à jour du plugin du menu de configuration ou d'un téléchargement automatique :
| Valeur | Comportement |
|---|---|
never | Par défaut. La mise à jour attend le prochain redémarrage. Les administrateurs connectés possédant resurrectionchest.* sont informés qu'un redémarrage est nécessaire et voient la commande applypluginupdate |
when-empty | Applique la mise à jour immédiatement si aucun joueur n'est connecté ; sinon, vérifie toutes les 30 secondes et l'applique dès que le serveur est vide |
immediately | Applique la mise à jour dès la fin du téléchargement |
Toute autre valeur se comporte comme never.
Un remplacement désactive puis réactive ResurrectionChest : comme avec /resurrectionchest reload, l'XP que les joueurs n'ont pas encore récupérée dans leurs coffres est donc perdue. Les objets des coffres ne sont pas affectés.
Protection des régions
Enregistrer un coffre de mort est considéré comme une construction. Avant d'accepter le panneau, ResurrectionChest demande au LocationQueryRegistry commun de MagmaCore si le joueur peut construire à l'emplacement du coffre.
- WorldGuard et GriefPrevention sont intégrés automatiquement. Les fournisseurs partagés de propriété des emplacements peuvent aussi refuser l'enregistrement en signalant le lieu comme protégé. Sans fournisseur de protection ou de propriété, aucune restriction supplémentaire ne s'applique.
- Si un plugin de protection refuse la construction, l'enregistrement est refusé avec le message
Chest protected region message. - Si un adaptateur de protection produit une erreur, l'enregistrement est refusé. La protection n'est pas contournée silencieusement.
Les adaptateurs intégrés sont d'abord raccordés au démarrage, puis leur état est revérifié par rapport aux plugins actifs lors des requêtes suivantes. Si WorldGuard ou GriefPrevention est activé mais que son adaptateur ne parvient pas à se raccorder, l'échec est consigné et tout enregistrement est refusé tant que ce plugin reste activé. /resurrectionchest reload ne retente pas le raccordement. Il est retenté après la désactivation ou le rechargement de ce plugin de protection, après une mise à jour de ResurrectionChest sans redémarrage, ou après un redémarrage du serveur.
Pénalité de durabilité de l'armure
Lower worn armor's durability on death, activé par défaut, et Amount of durability to lower on death, fixé à 100 par défaut, s'appliquent à l'armure portée lors de son transfert dans le coffre de mort :
- chaque pièce portée présente dans les objets de mort reçoit
Amount of durability to lower on deathpoints de dégâts supplémentaires - si cela atteint ou dépasse sa durabilité maximale, la pièce est retirée des objets lâchés ; elle est détruite au lieu d'être stockée
- sinon, la pièce endommagée est placée dans le coffre
Une pénalité de durabilité nulle ou négative n'a aucun effet.
La pénalité ne concerne que les morts effectivement gérées par ResurrectionChest. Elle ne s'applique pas si keepInventory est actif, si le monde est interdit, si le joueur n'a pas resurrectionchest.use ou si son coffre enregistré a disparu.
Mode haute compatibilité
Enable high compatibility / low security mode for plugin conflicts, désactivé par défaut, règle la rigueur de la vérification des blocs avant toute intervention.
- Avec
false, un panneau ou un coffre n'est reconnu comme appartenant à ResurrectionChest que s'il conserve la marque de propriétaire écrite par le plugin dans ses données persistantes. - Avec
true, une marque absente est acceptée à un emplacement suivi. Une marque portant un autre propriétaire reste refusée, et un coffre suivi doit toujours être un bloc de coffre.
Utilisez ce mode lorsqu'un autre plugin supprime les marques de propriété de ResurrectionChest. Il tolère leur absence, sans autoriser des blocs de remplacement quelconques ni des marques de propriétaire contradictoires.
Gestion de l'XP
Lorsque storeXP est activé :
- ResurrectionChest suit l'XP totale pendant le jeu, mais lit le total réel à la mort du joueur ; l'XP accordée directement par l'API d'un autre plugin est donc comptabilisée
- à la mort, il stocke
round(total XP * xpPercentageKept), limité à l'intervalle des entiers non négatifs - il fixe l'XP lâchée à
0 - il restitue l'XP stockée lorsque le propriétaire ouvre ensuite son coffre enregistré ; les deux moitiés d'un coffre double conviennent
- une nouvelle mort avant récupération ajoute de l'XP au montant stocké, sans le remplacer
xpPercentageKept est limité à l'intervalle 0-1 lors de la lecture de la configuration. Une valeur supérieure à 1 devient 1 ; une valeur négative ou invalide devient 0.
Exceptions à connaître :
- Si
keepInventoryest actif, ResurrectionChest ne fait rien. - Si
keepLevelest actif, le stockage d'XP est ignoré et la gestion vanilla des niveaux reste intacte. - L'XP stockée reste uniquement en mémoire. Elle n'est pas écrite dans
playerData.yml. Un redémarrage du serveur,/resurrectionchest reload, un rechargement du plugin ou une mise à jour du plugin sans redémarrage fait donc perdre l'XP non récupérée. Les objets déjà dans le coffre ne sont pas affectés.
Gestion du surplus
Les objets sont insérés pile par pile et les insertions partielles sont autorisées :
- tout ce qui tient est stocké, y compris en complétant une pile existante
- seule la quantité restante demeure dans les objets de mort ordinaires, sur le lieu de la mort
- le joueur reçoit un avertissement indiquant que le coffre était plein
Intégration FreeMinecraftModels
Si FreeMinecraftModels est installé, ResurrectionChest peut afficher un modèle de coffre au-dessus du vrai coffre.
Comportement actuel :
- le modèle premium Angelic Chest est préféré lorsque le joueur possède
resurrectionchest.model.premiumet que ce modèle est effectivement chargé - sinon, le modèle gratuit Wooden Chest est utilisé si le joueur possède
resurrectionchest.model.free - si aucune permission ne donne accès à un modèle utilisable, aucun modèle n'apparaît et le coffre vanilla reste tel quel
- le modèle passe de la variante simple à la variante double selon la taille du coffre
- le véritable coffre continue de stocker les objets
- les modèles sont actualisés chaque fois que FreeMinecraftModels termine un rechargement, y compris un rechargement lancé en dehors de ResurrectionChest, et un modèle correspondant déjà présent au coffre est réutilisé au lieu d'en faire apparaître un doublon
Le modèle est choisi une seule fois, à l'enregistrement, puis enregistré dans playerData.yml sous chestModel. Cela a deux conséquences :
- si FreeMinecraftModels n'était pas installé lors de l'enregistrement, le coffre n'a aucun modèle enregistré et reste vanilla même après l'installation de FreeMinecraftModels
- modifier ensuite les permissions ne change pas le modèle d'un coffre existant
Dans les deux cas, le joueur doit réenregistrer le coffre, en le cassant puis en reposant le panneau, pour obtenir le nouveau modèle.
Lorsqu'un modèle personnalisé est actif, les joueurs peuvent interagir directement avec lui :
- un clic droit ouvre l'inventaire du coffre sous-jacent
- un clic gauche détruit l'enregistrement ; seul le propriétaire peut le faire. Un autre joueur reçoit un message rouge et rien n'est détruit
Si FreeMinecraftModels est absent ou si le modèle ne peut pas apparaître, le coffre sous-jacent fonctionne normalement.
Packs de contenu
ResurrectionChest fournit deux packs contenant des modèles de coffre FreeMinecraftModels :
- Wooden Chest, gratuit, fournit
resurrectionchest_free_singleetresurrectionchest_free_double. Il utiliseresurrectionchest.model.free. - Angelic Chest, premium, fournit
resurrectionchest_angelic_singleetresurrectionchest_angelic_double. Il utiliseresurrectionchest.model.premium.
Un pack installé se trouve dans le dossier models de FreeMinecraftModels, et un pack désinstallé dans models_disabled. Activer ou désactiver un pack avec /resurrectionchest setup déplace les fichiers entre ces dossiers et recharge automatiquement FreeMinecraftModels.
Limites confirmées dans le code source
Le code actuel expose plusieurs paramètres dans config.yml sans les utiliser ailleurs que dans DefaultConfig :
Particle effect 1Particle effect 2freeSingleDeathChestModelNamefreeDoubleDeathChestModelNameetpremiumDoubleDeathChestModelName. Le plugin utilise les préfixes fixesresurrectionchest_freeetresurrectionchest_angelic, puis ajoute_singleou_doubleselon la taille du coffre. Les clés « Double » n'affectent donc pas son apparence actuelle.
En revanche, Particle effect 3 est utilisé. Il est résolu une seule fois au chargement, avec repli sur PORTAL et avertissement dans la console si son nom est invalide. Les particules apparaissent ensuite à chaque tick tant que le chunk du coffre est chargé. Désactiver Enable particle effects for death chests supprime entièrement cette tâche, ce qui consomme le moins de ressources sur un serveur ayant beaucoup de coffres enregistrés. premiumSingleDeathChestModelName sert à vérifier l'existence du fichier de modèle premium avant de choisir son préfixe. L'existence du fichier gratuit n'est pas vérifiée séparément.
Deux autres précisions sur les commandes :
/resurrectionchest initializeouvre la première configuration et nécessiteresurrectionchest.initialize./resurrectionchest setupouvre les commandes de contenu, de mise à jour et de plugins recommandés./resurrectionchest clearne se limite pas à un joueur. Elle efface tous les coffres enregistrés sur le serveur en une seule opération.
La commande de suppression respecte les vérifications de propriété configurées et laisse intacts les blocs qui ne les passent pas. Si le monde du coffre est déchargé, elle efface l'enregistrement sans y supprimer les blocs.