Zum Hauptinhalt springen

ResurrectionChest Konfiguration und Berechtigungen

Berechtigungen​

BerechtigungZweckStandard
resurrectionchest.*Gibt Admins Zugriff auf den Basisbefehl und die Unterbefehle downloadall, forcereinstallcontent, downloadpluginupdate, applypluginupdate, reload und clear und zeigt ihnen die Erinnerung beim ersten Start. setup und initialize prüfen ihre eigenen, unten aufgeführten Knotenop
resurrectionchest.setupGibt Admins Zugriff auf /resurrectionchest setup, recommendedplugins, downloadallcontent und updatecontentop
resurrectionchest.initializeErlaubt /resurrectionchest initialize, um das Menü zur Ersteinrichtung zu öffnen.op
resurrectionchest.useErlaubt einem Spieler, eine Truhe zu registrieren und Todesbeute dorthin leiten zu lassentrue
resurrectionchest.model.freeErlaubt einem Spieler, die kostenlosen FreeMinecraftModels-Truhen-Visualisierungen (Wooden Chest) zu verwendentrue
resurrectionchest.model.premiumErlaubt einem Spieler, die Premium-FreeMinecraftModels-Truhen-Visualisierungen (Angelic Chest) zu verwendenop

resurrectionchest.use ist die wichtige Berechtigung für das tatsächliche Truhenverhalten. Die Admin- und Modellberechtigungen betreffen nur Befehle bzw. optionale Visualisierungen.

Befehle​

BefehlBerechtigungZweck
/resurrectionchestresurrectionchest.*Gibt einen kurzen Info-Text aus, der auf den Einrichtungsablauf verweist
/resurrectionchest initializeresurrectionchest.initializeÖffnet die geführte Ersteinrichtung. Die empfohlene Einrichtung, die manuelle Einrichtung und die Verwendung vorhandener Inhalte markieren die Einrichtung jeweils als abgeschlossen.
/resurrectionchest setupresurrectionchest.setupÖffnet das Einrichtungsmenü (Truhen-Packs durchsuchen und umschalten, auf Plugin-Updates prüfen, empfohlene Plugins ansehen, automatische Updates umschalten)
/resurrectionchest recommendedpluginsresurrectionchest.setupÖffnet (oder listet für die Konsole) die empfohlenen Begleit-Plugins für ResurrectionChest auf: FreeMinecraftModels und ResourcePackManager
/resurrectionchest downloadallresurrectionchest.*Lädt das Plugin-Update (falls vorhanden) und jedes verfügbare Inhaltspaket von Nightbreak herunter
/resurrectionchest downloadallcontentresurrectionchest.setupLädt jedes verfügbare Inhaltspaket von Nightbreak herunter
/resurrectionchest updatecontent (Alias updateallcontent)resurrectionchest.setupLädt nur veraltete installierte Inhaltspakete erneut herunter
/resurrectionchest forcereinstallcontent <package|all>resurrectionchest.*Lädt ein Inhaltspaket (oder jedes heruntergeladene Pack) auch dann erneut herunter, wenn die installierte Version bereits aktuell ist. Paketnamen vervollständigen per Tab zu den Nightbreak-Slugs wooden-chest und angelic-chest sowie all
/resurrectionchest downloadpluginupdateresurrectionchest.*Lädt ein ResurrectionChest-Plugin-Update herunter, falls eines verfügbar ist
/resurrectionchest applypluginupdateresurrectionchest.*Wendet ein heruntergeladenes Plugin-Update ohne Server-Neustart an. Siehe Plugin-Updates ohne Neustart
/resurrectionchest reloadresurrectionchest.*Lädt ResurrectionChest neu
/resurrectionchest clearresurrectionchest.*Löscht jeden verfolgten ResurrectionChest-Block; wirft das Inventar jeder verfolgten Truhe ab und entfernt die Truhen- und Schildblöcke
/resurrectionchestchangelog [dismiss|disable]op, resurrectionchest.*, resurrectionchest.setup oder resurrectionchest.initializeZeigt ungelesene ResurrectionChest-Versionshinweise im Spiel an. Siehe Changelog-Benachrichtigungen

Heruntergeladene Plugin-Updates werden im Update-Ordner des Servers abgelegt. Sie werden nach dem nächsten Server-Neustart wirksam, sofern du sie nicht schon früher mit /resurrectionchest applypluginupdate oder über die Einstellung nightbreak.applyPluginUpdatesWithoutRestart anwendest.

Die mitgelieferten MagmaCore-Werkzeuge registrieren außerdem die gemeinsamen Befehle /nightbreak, /nightbreaklogin, /nightbreaklogout und /logify, sofern kein anderes Plugin diese Namen bereits beansprucht hat. Siehe Nightbreak-Tokens.

Plugin-Dateien​

PfadZweck
plugins/ResurrectionChest/config.ymlJede Einstellung aus der Tabelle weiter unten
plugins/ResurrectionChest/playerData.ymlEin Eintrag pro registrierter Truhe, geschlüsselt nach Spieler-UUID: die location der Truhe, das bei der Registrierung gewählte chestModel-Präfix und eine trackedBlockSchemaVersion, mit der ältere Registrierungen auf die aktuellen Block-Besitzmarkierungen migriert werden
plugins/ResurrectionChest/content_packages/Die Inhaltspaket-Definitionen wooden_chest.yml / angelic_chest.yml (isEnabled, name, description, version, folderName, nightbreakSlug, contentFilePrefixes sowie die optionalen downloadLink und category)
plugins/ResurrectionChest/nightbreak-changelogs.ymlGelesen-/Ausgeblendet-Status für den gemeinsamen Changelog-Posteingang hinter /resurrectionchestchangelog. Siehe Changelog-Benachrichtigungen
plugins/ResurrectionChest/imports/Ablageordner für manuelle Importe. Alles, was hier abgelegt wird, wird beim Start entpackt — Modelldateien werden an FreeMinecraftModels weitergeleitet und FreeMinecraftModels wird automatisch aktualisiert. Siehe Manuelle Importe vs. In-Game-Verwaltung
plugins/ResurrectionChest/resource_pack/Gemeinsame Nightbreak-Menüsymbole und Schriftart-Assets, die beim Laden des Plugins aus dem mitgelieferten MagmaCore exportiert und erneut exportiert werden, wenn sich die mitgelieferte Kopie ändert

Bearbeite die playerData.yml nicht von Hand, während der Server läuft; ResurrectionChest schreibt sie jedes Mal neu, wenn eine Truhe registriert oder entfernt wird.

Konfiguration​

config.yml stellt derzeit diese benutzerseitigen Einstellungen bereit:

KonfigurationsschlüsselTypStandard
setupDonebooleanfalse
nightbreak.autoDownloadPluginUpdatesbooleanfalse
nightbreak.applyPluginUpdatesWithoutRestartstringnever
Input name for death cheststring[DeathChest]
Enable high compatibility / low security mode for plugin conflictsbooleanfalse
Lower worn armor's durability on deathbooleantrue
Amount of durability to lower on deathint100
Chest creation messagestring&8[ResurrectionChest] &aYou've created your Death Chest!
Chest destruction messagestring&8[ResurrectionChest] &cYour Death Chest has been destroyed!
Chest missing messagestring&8[ResurrectionChest] &4Your Death Chest is missing!
Chest protected region messagestring&8[ResurrectionChest] &cYou can't create a Death Chest here - this area is protected!
Death messagestring&8[ResurrectionChest] &aYour items have been moved to your Death Chest!
deathChestRemovedMessagestring&8[ResurrectionChest] &cYour Death Chest has been removed!
Enable particle effects for death chestsbooleantrue
Particle effect 1stringENCHANTMENT_TABLE
Particle effect 2stringENCHANTMENT_TABLE
Particle effect 3stringPORTAL
blacklistedWorldslist[none]
storeXPbooleantrue
xpPercentageKeptdouble0.75
deathChestNameTagstring$playerName's &fResurrection Chest
freeSingleDeathChestModelNamestringresurrectionchest_free_single
freeDoubleDeathChestModelNamestringresurrectionchest_free_double
premiumSingleDeathChestModelNamestringresurrectionchest_angelic_single
premiumDoubleDeathChestModelNamestringresurrectionchest_angelic_double

Automatische Plugin- & Inhalts-Updates​

nightbreak.autoDownloadPluginUpdates ist eine gemeinsame Nightbreak-/MagmaCore-Einstellung, die in ResurrectionChest enthalten ist. Sie ist standardmäßig auf false gesetzt.

  • Wenn false (der Standard), wird nichts automatisch heruntergeladen. ResurrectionChest prüft weiterhin wenige Minuten nach dem Start (die Verzögerung ist pro Plugin versetzt) und danach etwa einmal pro Stunde auf ein Plugin-Update, damit die In-Game-Update-Schaltfläche das Ergebnis anzeigen kann, aber du löst jeden tatsächlichen Download selbst aus.
  • Wenn true, lädt ResurrectionChest wenige Minuten nach dem Start ein verfügbares Plugin-Update und veraltete Inhaltspakete herunter. Heruntergeladene Inhalts-Updates werden nach dem Neustart des Servers verwendet. Auch ein heruntergeladenes Plugin-Update wartet auf einen Neustart, sofern nightbreak.applyPluginUpdatesWithoutRestart es nicht schon früher anwendet.
  • Automatische Plugin-Downloads erfordern ein gültiges Nightbreak-Konto-Token und eine aktive Supporter-Mitgliedschaft.

Du kannst diese Einstellung im Spiel über den Umschalter Automatic Updates in der Werkzeugleiste innerhalb von /resurrectionchest setup umschalten oder die config.yml direkt bearbeiten.

Das Einrichtungsmenü bietet außerdem einen Eintrag Plugin Update (zeigt die installierte/verfügbare Version an und lädt beim Klicken ein Update herunter) und einen Eintrag Recommended Plugins (dieselbe Liste wie /resurrectionchest recommendedplugins).

Plugin-Updates ohne Neustart​

Ein heruntergeladenes Plugin-Update wartet im Update-Ordner des Servers. /resurrectionchest applypluginupdate spielt es ein, ohne den Server neu zu starten. ResurrectionChest wird deaktiviert, die Jar wird ersetzt und die neue Version wird geladen und aktiviert. Andere MagmaGuy-Plugins, die von ResurrectionChest abhängen, werden mit neu geladen.

Der Befehl bricht mit einer Meldung ab, wenn:

  • kein heruntergeladenes Update wartet
  • das wartende Update nicht neuer als die laufende Version oder seine Jar ungültig ist
  • ein Plugin eines anderen Autors von ResurrectionChest abhängt oder es als Soft-Dependency nutzt. Starte den Server stattdessen neu
  • bereits ein anderer Plugin-Austausch läuft

Lässt sich die neue Version nicht aktivieren, wird die vorherige Jar wieder geladen und das Update bleibt für den nächsten Neustart im Update-Ordner. Verwende diesen Befehl statt eines Plugin-Reloaders von Drittanbietern.

nightbreak.applyPluginUpdatesWithoutRestart in der config.yml legt fest, was direkt nach jedem Download eines Plugin-Updates passiert, egal ob er über downloadpluginupdate, downloadall, den Eintrag Plugin Update im Einrichtungsmenü oder einen automatischen Download kam:

WertVerhalten
neverStandard. Das Update wartet auf den nächsten Neustart. Online-Admins mit resurrectionchest.* erfahren, dass ein Neustart nötig ist, und bekommen den Befehl applypluginupdate angezeigt
when-emptyWendet das Update sofort an, wenn keine Spieler online sind; andernfalls wird alle 30 Sekunden geprüft und das Update angewendet, sobald der Server leer ist
immediatelyWendet das Update an, sobald der Download abgeschlossen ist

Jeder andere Wert verhält sich wie never.

Ein Austausch deaktiviert ResurrectionChest und aktiviert es wieder. Wie bei /resurrectionchest reload werden daher XP verworfen, die Spieler noch nicht aus ihren Truhen abgeholt haben. Die Gegenstände in den Truhen sind davon nicht betroffen.

Regionsschutz​

Das Registrieren einer Todestruhe wird als Bauen behandelt: Bevor das Schild akzeptiert wird, fragt ResurrectionChest MagmaCores gemeinsame LocationQueryRegistry, ob der Spieler am Truhenblock bauen darf.

  • WorldGuard und GriefPrevention werden automatisch eingebunden. Gemeinsame Anbieter für Standortzuordnungen können die Registrierung ebenfalls ablehnen, indem sie den Ort als geschützt melden. Ohne Schutzanbieter oder Anbieter für Standortzuordnungen gibt es keine zusätzliche Einschränkung.
  • Verweigert ein Schutz-Plugin das Bauen, wird die Registrierung abgelehnt und dem Spieler wird Chest protected region message gesendet.
  • Wirft ein Schutz-Adapter einen Fehler, schlägt die Abfrage kontrolliert fehl (die Registrierung wird abgelehnt), statt den Schutz stillschweigend zu umgehen.

Die eingebauten Adapter werden zunächst beim Start eingebunden und bei späteren Abfragen erneut mit den aktivierten Plugins abgeglichen. Ist WorldGuard oder GriefPrevention aktiviert, lässt sich sein Adapter aber nicht einbinden, wird der Fehler protokolliert und jede Registrierung abgelehnt, solange dieses Plugin aktiviert bleibt. /resurrectionchest reload versucht das Einbinden nicht erneut. Ein neuer Versuch erfolgt, nachdem das Schutz-Plugin deaktiviert oder neu geladen wurde, nach einem ResurrectionChest-Update ohne Neustart oder nach einem Server-Neustart.

Haltbarkeitsstrafe für Rüstung​

Lower worn armor's durability on death (Standard true) und Amount of durability to lower on death (Standard 100) werden auf die getragene Rüstung des Spielers angewendet, während sie in die Todestruhe geleitet wird:

  • jedes getragene Rüstungsteil, das in der Todesbeute auftaucht, erhält Amount of durability to lower on death auf seinen Schadenswert addiert
  • würde das Teil dadurch seine maximale Haltbarkeit erreichen oder überschreiten, wird es vollständig aus der Beute entfernt (es wird zerstört statt gelagert)
  • andernfalls landet das beschädigte Teil in der Truhe

Eine Haltbarkeitsstrafe von null oder ein negativer Wert hat keine Wirkung.

Die Strafe läuft nur bei Toden, die ResurrectionChest tatsächlich behandelt — sie wird übersprungen, wenn keepInventory aktiv ist, wenn die Welt auf der Blacklist steht, wenn dem Spieler resurrectionchest.use fehlt und wenn die registrierte Truhe fehlt.

Hochkompatibilitätsmodus​

Enable high compatibility / low security mode for plugin conflicts ist standardmäßig false und bestimmt, wie streng ResurrectionChest einen Block vor einer Aktion prüft.

  • Bei false gilt ein Schild oder eine Truhe nur dann als ResurrectionChest-Block, wenn die vom Plugin in den persistenten Blockdaten gespeicherte Eigentümermarkierung noch vorhanden ist.
  • Bei true wird eine fehlende Markierung am registrierten Ort akzeptiert. Eine widersprechende Eigentümermarkierung bleibt ungültig, und eine registrierte Truhe muss weiterhin ein Truhenblock sein.

Verwende diesen Modus, wenn ein anderes Plugin die Eigentümermarkierungen von ResurrectionChest entfernt. Er lockert die Prüfung auf fehlende Markierungen, erlaubt aber keine beliebigen Ersatzblöcke oder widersprechenden Eigentümermarkierungen.

XP-Behandlung​

Wenn storeXP aktiviert ist:

  • ResurrectionChest verfolgt die Gesamt-XP des Spielers während des Spiels, liest aber im Moment des Todes den tatsächlichen Gesamtwert des Spielers, sodass XP, die direkt über die API eines anderen Plugins vergeben wurden, ebenfalls zählen
  • beim Tod speichert es round(total XP * xpPercentageKept), begrenzt auf den nichtnegativen Ganzzahlbereich
  • es setzt die abgeworfene XP auf 0
  • es gibt die gespeicherte XP zurück, wenn der Besitzer das nächste Mal seine registrierte Truhe öffnet (jede Hälfte einer Doppeltruhe zählt)
  • ein erneuter Tod vor dem Abholen addiert zum gespeicherten Betrag, statt ihn zu ersetzen

xpPercentageKept wird beim Einlesen der Konfiguration auf den Bereich 0-1 begrenzt, sodass Werte über 1 wie 1 wirken und negative oder ungültige Werte wie 0.

Wichtige Ausnahmen:

  • Wenn keepInventory aktiv ist, tut ResurrectionChest nichts.
  • Wenn keepLevel aktiv ist, wird der XP-Speicherzweig übersprungen und die Vanilla-Level-Behandlung bleibt unverändert.
  • Gespeicherte XP werden nur im Arbeitsspeicher gehalten. Sie werden nicht in die playerData.yml geschrieben, sodass ein Server-Neustart, ein /resurrectionchest reload, ein Plugin-Reload oder ein Plugin-Update ohne Neustart alle noch nicht abgeholten XP verwirft. Die bereits in der Truhe liegenden Gegenstände sind davon nicht betroffen.

Überlaufbehandlung​

Gegenstände werden stapelweise in die Truhe eingefügt, und teilweises Einfügen ist erlaubt:

  • was hineinpasst, wird gelagert, einschließlich des Auffüllens eines bestehenden Stapels
  • nur die übrige Menge bleibt in der normalen Todesbeute-Liste am Todesort
  • der Spieler erhält eine Warnung, dass die Truhe voll war

FreeMinecraftModels-Integration​

Wenn FreeMinecraftModels installiert ist, kann ResurrectionChest ein visuelles Truhen-Modell auf der echten Truhe spawnen.

Aktuelles Verhalten:

  • Premium-Visualisierungen (Angelic Chest) werden bevorzugt, wenn der Spieler resurrectionchest.model.premium hat und das Premium-Modell tatsächlich geladen ist
  • andernfalls wird die kostenlose Visualisierung (Wooden Chest) verwendet, wenn der Spieler resurrectionchest.model.free hat
  • wenn keine der Berechtigungen ein verwendbares Modell freigibt, wird kein Modell gespawnt und die Vanilla-Truhe wird unverändert verwendet
  • das visuelle Modell wechselt zwischen Einzel- und Doppelvarianten basierend auf der Truhengröße
  • die echte Truhe bleibt das Speicher-Backend
  • Modelle werden aufgefrischt, sobald FreeMinecraftModels einen Reload abschließt, auch einen, der außerhalb von ResurrectionChest gestartet wurde, und ein passendes Modell, das bereits an der Truhe steht, wird wiederverwendet, statt ein Duplikat zu spawnen

Die Modellwahl wird einmalig bei der Registrierung der Truhe getroffen und in der playerData.yml als chestModel dieser Truhe gespeichert. Das hat zwei Konsequenzen:

  • war FreeMinecraftModels zum Zeitpunkt der Registrierung nicht installiert, wird die Truhe ohne Modell erfasst und bleibt auch nach der Installation von FreeMinecraftModels eine schlichte Vanilla-Truhe
  • eine spätere Berechtigungsänderung stuft eine bestehende Truhe nicht rückwirkend hoch oder herab

In beiden Fällen muss der Spieler die Truhe neu registrieren (zerstören und das Schild erneut platzieren), um das neue Modell zu erhalten.

Wenn ein benutzerdefiniertes Modell aktiv ist, können Spieler direkt damit interagieren:

  • Rechtsklick auf das Modell öffnet das zugrunde liegende Truheninventar
  • Linksklick auf das Modell hebt die Registrierung auf (nur der Besitzer kann dies tun; ein Nicht-Besitzer, der linksklickt, erhält eine rote Nachricht und es wird nichts zerstört)

Wenn FreeMinecraftModels fehlt oder das Modell nicht gespawnt werden kann, funktioniert die zugrunde liegende Truhe weiterhin normal.

Inhaltspakete​

ResurrectionChest wird mit zwei Inhaltspaketen ausgeliefert, die die FreeMinecraftModels-Truhenmodelle umhüllen:

  • Wooden Chest (kostenlos): bietet resurrectionchest_free_single / resurrectionchest_free_double. Wird von resurrectionchest.model.free verwendet.
  • Angelic Chest (Premium): bietet resurrectionchest_angelic_single / resurrectionchest_angelic_double. Wird von resurrectionchest.model.premium verwendet.

Jedes Pack liegt nach der Installation im models-Ordner von FreeMinecraftModels und nach der Deinstallation im models_disabled-Ordner. Das Umschalten über /resurrectionchest setup verschiebt die Dateien zwischen diesen Ordnern und lädt FreeMinecraftModels automatisch neu.

Quellcode-basierte Vorbehalte​

Der aktuelle Quellcode zeigt einige Konfigurationseinträge, die in config.yml verfügbar sind, aber nirgendwo außerhalb von DefaultConfig referenziert werden:

  • Particle effect 1
  • Particle effect 2
  • freeSingleDeathChestModelName
  • freeDoubleDeathChestModelName und premiumDoubleDeathChestModelName (das Plugin codiert intern die Modellnamen-Präfixe resurrectionchest_free und resurrectionchest_angelic fest und hängt dann je nach Truhengröße _single oder _double an, sodass die „Double“-Konfigurationsschlüssel die Truhen-Visualisierung derzeit nicht beeinflussen)

Im Gegensatz dazu ist Particle effect 3 die Partikeleinstellung mit einer offensichtlichen aktiven Verwendung im aktuellen Code: Sie wird einmalig beim Laden aufgelöst (mit Rückfall auf PORTAL und einer Konsolenwarnung, falls der Name kein gültiger Partikel ist) und danach jeden Tick gespawnt, solange der Chunk der Truhe geladen ist. Enable particle effects for death chests auf false zu setzen bricht diese Tick-Aufgabe vollständig ab, was auf Servern mit vielen registrierten Truhen die günstigste Option ist. premiumSingleDeathChestModelName wird verwendet, um zu überprüfen, ob die Premium-Modelldatei existiert, bevor das Premium-Präfix zugewiesen wird; die Existenz der kostenlosen Modelldatei wird nicht separat geprüft.

Zwei weitere Vorbehalte zur Befehlsoberfläche:

  • /resurrectionchest initialize öffnet die Ersteinrichtung und erfordert resurrectionchest.initialize. /resurrectionchest setup öffnet die Inhalts-, Update- und Plugin-Empfehlungsfunktionen.
  • /resurrectionchest clear ist nicht auf einen Spieler beschränkt. Es löscht in einem Durchgang jede registrierte Truhe auf dem Server.

Der Löschbefehl beachtet die konfigurierten Eigentümerprüfungen und lässt Blöcke, die diese nicht bestehen, unangetastet. Ist die Welt der Truhe entladen, wird die Registrierung ohne Entfernung der dortigen Blöcke gelöscht.