Friedensbanner
Das Friedensbanner ist ein herstellbares Item, das die normale natürliche Umwandlung in Elite-Mobs innerhalb eines einstellbaren Chunk-Radius unterdrückt. Mit suppressEvents: true unterdrückt es auch Aktions-Events und zeitgesteuerte Event-Spawnversuche von EliteMobs. Es blockiert keine beliebigen benutzerdefinierten oder regionalen Boss-Spawns, entfernt keine vorhandenen Elites und bietet keinen allgemeinen Schutz vor Mobs.
Funktionsweise
- Herstellung: Spieler stellen ein Friedensbanner mit dem Standard-Rezept (oder einem vom Admin konfigurierten Rezept) her. Das Standard-Rezept benötigt Knochen, die ein Banner beliebiger Farbe umgeben.
- Platzierung: Bei aktivierter Funktion wird der Schutz beim Platzieren sofort registriert. Der Standardradius 4 umfasst ein Quadrat aus 9×9 Chunks um den Banner-Chunk, auf jeder Höhe; keinen vom Block aus gemessenen Kreis.
- Entfernung: Das Abbauen des Friedensbanner-Blocks entfernt die Schutzzone und erlaubt wieder das Spawnen von Elite-Mobs in dem Bereich.
- Persistenz: Platzierte Friedensbanner werden auf der Festplatte gespeichert und bleiben über Server-Neustarts hinweg erhalten. Wenn Chunks, die ein Friedensbanner enthalten, geladen werden, überprüft das Plugin, ob der Banner-Block noch existiert, und entfernt den Schutz, falls er durch andere Mittel zerstört wurde.
Standard-Herstellungsrezept
BBB
BWB
BBB
- B = Knochen
- W = Beliebiges Banner (alle 16 Bannerfarben werden akzeptiert)
Das Rezept erzeugt ein blaues Banner mit einem benutzerdefinierten Muster, Anzeigenamen und Beschreibungstext, das es als Friedensbanner identifiziert.
Konfiguration
Alle Friedensbanner-Einstellungen befinden sich in PeaceBanner.yml. Siehe die Seite Konfigurationseinstellungen für die vollständige Referenz.
| Einstellung | Standard | Beschreibung |
|---|---|---|
enabled | true | Ob die Friedensbanner-Funktion aktiviert ist |
craftable | true | Ob Spieler Friedensbanner herstellen können |
chunkRadius | 4 | Radius (in Chunks) um ein platziertes Banner, in dem Elite-Mobs unterdrückt werden |
suppressEvents | true | Ob platzierte Banner auch EliteMobs-Events (Aktions- und Zeitereignisse) unterdrücken |
recipeShape | BBB / BWB / BBB | Das Layout des Herstellungsrasters |
recipeIngredients | B: BONE, W: ANY_BANNER | Ordnet Rezeptzeichen Materialien zu |
itemName | &aPeace Banner | Anzeigename des Friedensbanner-Items |
itemLore | (siehe Konfiguration) | Beschreibungszeilen, die auf dem Item angezeigt werden |
placedMessage | (siehe Konfiguration) | Nachricht, die beim Platzieren eines Banners gesendet wird |
removedMessage | (siehe Konfiguration) | Nachricht, die beim Abbauen eines Banners gesendet wird |
chunkRadius wird beim Platzieren erfasst und mit jedem Banner gespeichert. Eine Konfigurationsänderung vergrößert oder verkleinert bestehende Bannerbereiche auch nach einem Neustart nicht; platziere die Banner erneut, um den neuen Radius zu verwenden. Der Standard-Beschreibungstext enthält eine feste 4, die sich nicht mit dem Radius ändert. placedMessage ersetzt dagegen $radius.
enabled: false deaktiviert die Unterdrückung, die Verarbeitung von Platzierung, Abbau und Laden sowie das Herstellungsrezept. Gespeicherte Bannerdaten bleiben erhalten, und der Admin-Give-Befehl bleibt verfügbar. craftable: false deaktiviert nur das Rezept.
Admin-Befehle
| Befehl | Berechtigung | Beschreibung |
|---|---|---|
/em peacebanner give <player> | elitemobs.peacebanner.admin | Gibt einem Spieler, der online ist, ein Friedensbanner; bei vollem Inventar wird es an seiner Position fallen gelassen |
/em peacebanner list | elitemobs.peacebanner.admin | Listet alle platzierten Friedensbanner mit ihren Koordinaten und dem Chunk-Radius auf |
Überlappende Banner
Mehrere Friedensbanner können mit überlappenden Schutzzonen platziert werden. Das System verwendet Referenzzählung, sodass ein Chunk geschützt bleibt, solange mindestens ein Banner ihn abdeckt. Das Entfernen eines einzelnen Banners hebt den Schutz nur für Chunks auf, die nicht von einem anderen Banner abgedeckt werden.
Technische Details
- Neue Friedensbanner-Platzierungen werden am Persistent-Data-Container-Tag (PDC) des Items erkannt, nicht am Aussehen. Ein normales Banner an einem nicht registrierten Ort erzeugt keinen Schutz.
- Banner-Daten werden in
plugins/EliteMobs/data/peace-banners.ymlgespeichert. - Beim Laden eines Chunks wird nur geprüft, ob am gespeicherten Ort irgendein Bannerblock steht. Friedensbanner-Tag und Muster werden nicht erneut geprüft. Ist dort kein Banner mehr, etwa nach einer Explosion oder Weltbearbeitung, wird der Schutz erst dann entfernt, nicht sofort bei der externen Änderung.
- Gespeicherte Datensätze gehören zur UUID der Welt. Datensätze einer Welt, die bei der Initialisierung von EliteMobs nicht geladen ist, bleiben inaktiv, bis diese Welt geladen wird; dann wird ihr Schutz automatisch aktiv. Eine andere Welt, die denselben Namen wiederverwendet, übernimmt sie nicht; EliteMobs protokolliert stattdessen eine Warnung.