Protection
Überblick
Protection ist veraltet (deprecated). Es erhält keine neuen Funktionen, und v1.3 ist das letzte Kompatibilitäts-Release. Neue Projekte sollten die offizielle Region-Erweiterung von TypeWriter verwenden, dokumentiert unter docs.typewritermc.com. Diese Seite bleibt für Server bestehen, die Protection bereits einsetzen.
Mit Protection definierst du Regionen im TypeWriter-Web-Panel und gibst ihnen Regeln, sogenannte Flags. Eine Region ist ein Quader oder ein Polygonprisma, das in einem Artifact gespeichert ist, mit einer Priorität, Besitzern, Mitgliedern, einer optionalen übergeordneten Region und einer Liste von Flags wie build, pvp oder mob-spawning. Wenn Spieler innerhalb einer Region handeln, bricht die Erweiterung die Aktion entsprechend den Flags ab oder verändert sie.
Regionen sind außerdem TypeWriter-Objekte. Du kannst eine Sequence starten, wenn ein Spieler eine Region betritt oder verlässt, eine Audience nach Region filtern, Spieler nach Region gruppieren, einen Fact lesen, der angibt, ob ein Spieler sich darin befindet, und Regionen auf einer BlueMap-Karte anzeigen.
Funktionen
- Quader- und Polygonregionen — zeichne eine Region im Spiel mit einer Werkzeugleiste oder importiere eine WorldEdit-Auswahl.
- Weltweite Regionen — ein globales Artifact deckt ganze Welten zwischen zwei Höhen ab.
- Überlappung und Priorität — Regionen können sich überlappen; sie werden von der höchsten Priorität abwärts ausgewertet.
- Übergeordnete Regionen — eine untergeordnete Region erbt die Flags, Besitzer und Mitglieder ihrer übergeordneten Region.
- Viele Flags — 99 Flag-Keys für Bauen, Kampf, Explosionen, Umgebung, Bewegung und Chat.
- Besitzer und Mitglieder — diese Spieler werden innerhalb ihrer Region nie eingeschränkt.
- Regions-Events — Betreten- und Verlassen-Events, ein Audience-Filter, eine Gruppe und ein Fact.
- Inspektionswerkzeuge —
/typewriter protection inspect,infoundflagszeigen, welche Flags dort gelten, wo du stehst. - BlueMap-Marker — zeige eine Region mit eigenen Farben auf BlueMap an.
- PlaceholderAPI — lies die Regionen um einen Spieler und ihre Flag-Werte aus.
Installation
- Installiere PacketEvents, das TypeWriter ohnehin voraussetzt.
- Optional: Installiere WorldEdit oder FastAsyncWorldEdit, um Auswahlen mit
/typewriter protection import-wezu importieren. - Optional: Installiere MythicMobs, damit das Flag
mob-spawningauch für Mythic-Mobs gilt, und BlueMap, um Regionen auf der Karte anzuzeigen. - Optional: PlaceholderAPI für die Platzhalter.
- Lege die Protection-JAR in
plugins/Typewriter/extensions/ab und starte den Server neu.
Erste Schritte
So schützt du einen Spawn-Bereich vor Bauen und PvP:
- Öffne im TypeWriter-Web-Panel eine Manifest-Seite und füge ein Protection Region Artifact hinzu. Lass
artifactIdwie generiert: Es speichert die Form der Region. - Füge eine Protection Region Definition hinzu und verknüpfe das Artifact in
artifact. Setze einepriority(zum Beispiel10). - Füge in
flagsein Flag mit dem Keybuildund einem booleschen Wert false hinzu. Fügepvpauf dieselbe Weise hinzu. Ein boolesches Flag mit false verbietet die Aktion. - Veröffentliche (Publish) die Seite.
- Führe im Spiel
/typewriter protection edit <definition>aus. In deiner Hotbar erscheint eine Werkzeugleiste: Der Lohenstab fügt einen Punkt an dem Block hinzu, den du ansiehst, der Redstone entfernt den letzten Punkt, der Kompass wechselt zwischen Quader- und Polygonmodus, der Limettengrüne Farbstoff wendet die Auswahl an und die Barriere bricht ab. Füge bei einem Quader zwei gegenüberliegende Ecken hinzu und wende an. - Betritt den Bereich und versuche, einen Block abzubauen. Mit
/typewriter protection inspectkannst du prüfen, was gilt.
Erstelle eine Auswahl mit WorldEdit und führe dann /typewriter protection import-we <definition> aus. Deine Auswahl wird in Punkte umgewandelt, die du anschließend anwenden kannst.
Besitzer und Mitglieder einer Region sowie Spieler mit typewriter.protection.bypass ignorieren jedes Flag dieser Region. Teste mit einem Spieler, der nicht aufgeführt ist und kein Operator mit der Bypass-Berechtigung.
So funktioniert es
Eine Region existiert nur, solange ihr Definition-Entry existiert und veröffentlicht ist. Ihre Form ist im Artifact gespeichert, und die Definition enthält alles andere.
Überlappung. Mehrere Regionen können denselben Punkt enthalten. Sie werden von der höchsten priority zur niedrigsten geprüft. Bei booleschen Flags genügt ein Flag mit false, um die Aktion zu verbieten: Eine Region mit build true hebt das Verbot einer Region mit niedrigerer Priorität nicht auf. Flags, die etwas verändern (Nachrichten, Actions, Teleports), werden von der ersten Region angewendet, die sie definiert.
Vererbung. Eine Region mit einer parentRegion wertet auch die Flags ihrer Elternregionen aus. Besitzer und Mitglieder der Elternregionen werden der untergeordneten Region hinzugefügt. Die untergeordnete Region verwendet ihre eigene priority oder die der Elternregion, wenn ihre eigene 0 ist.
Regionsgrenzen. Betreten und Verlassen werden erkannt, wenn sich ein Spieler zu einem anderen Block bewegt oder teleportiert. Ein Spieler, der innerhalb einer Region beitritt, löst das Betreten-Event bei seiner ersten Bewegung um einen Block aus.
Konfiguration
Nachrichten und Inspektion. Füge einen Protection Settings-Entry hinzu, um zu ändern, wie verweigerte Aktionen angezeigt werden: Chat, Actionbar oder Bossbar, MiniMessage-Vorlagen ({reason}, {reason_line}, {region}, {flag}), die Aktualisierungsrate des Inspektionsmodus (inspectRefreshTicks, mindestens 5 Ticks) und der Text der Befehlsnachrichten in messages. Ohne diesen Entry werden Standardwerte verwendet. Nur der erste gefundene Entry wird gelesen.
BlueMap. Aktiviere in einer Regionsdefinition bluemapSettings.enabled, um die Region auf BlueMap zu zeichnen. Du wählst das Marker-Set, die Linien- und Füllfarben, das Label ({name}, {id}, {priority}) und ob der Marker extrudiert oder flach ist. Regionen werden beim Start von BlueMap und bei jeder Änderung einer Region synchronisiert.
Besitzer und Mitglieder. owners und members enthalten Spieler-UUIDs. Die Befehle addowner und addmember akzeptieren einen Spielernamen und speichern die UUID, wenn der Spieler dem Server bekannt ist.
Flags
Flags werden zur Liste flags einer Regionsdefinition hinzugefügt. Jedes Flag hat einen Key und einen typisierten Wert. Die meisten Flags sind boolesch: Ein Wert false verbietet die Aktion. Die untenstehenden Flag-Keys sind die, die im Web-Panel und in Befehlen verwendet werden.
Bauen und Interaktion
| Flag | Was ein Wert false bewirkt |
|---|---|
build | Bricht das Abbauen und Platzieren von Blöcken ab. Wird vor block-break und block-place geprüft. |
block-break, block-place | Bricht das Abbauen oder Platzieren von Blöcken ab. |
use | Bricht Rechtsklicks auf Türen, Knöpfe, Hebel, Zauntore, Falltüren, Schilder, Truhen, Fässer, Shulker-Kisten, Öfen, Ambosse, Werkbänke und andere Stationen, Redstone-Komponenten und ähnliche Blöcke ab. |
interact | Bricht jede Spielerinteraktion ab, einschließlich Klicks in die Luft. Mit Vorsicht verwenden. |
chest-access | Bricht das Öffnen von Containern ab (Truhen, Fässer, Shulker-Kisten, Trichter, Werfer, Spender, Öfen, Braustände). |
sleep | Bricht die Benutzung von Betten ab. |
lighter | Bricht Feuerzeug (Feuerstein und Stahl) und Feuerbälle ab. |
vehicle-place, vehicle-destroy | Bricht das Platzieren von Loren und Booten oder das Zerstören eines Fahrzeugs durch einen Spieler ab. |
entity-painting-destroy | Bricht das Zerstören von Gemälden und Rahmen durch einen Spieler ab. |
crop-trampling | Bricht das Zertrampeln von Ackerland ab. |
pistons | Bricht ab, dass Kolben Blöcke in die Region hinein- oder aus ihr herausbewegen. |
item-pickup, item-drop | Bricht das Aufheben oder Fallenlassen von Items ab. |
Kampf und Mobs
| Flag | Was ein Wert false bewirkt |
|---|---|
pvp | Bricht Schaden zwischen Spielern ab. |
mob-damage | Bricht Schaden an einem Spieler ab, der von einer Entity verursacht wird, die kein Spieler ist. |
damage-animals | Bricht ab, dass ein Spieler Tiere schlägt. |
tnt-damage, firework-damage | Bricht Schaden durch TNT und TNT-Loren oder durch Feuerwerk ab. |
mob-spawning | Bricht das Spawnen von Kreaturen ab, unabhängig vom Grund. Es gilt auch für MythicMobs, wenn MythicMobs installiert ist. |
btcmob-spawning, btcmob-damage | Dasselbe für BTC-Mobs-Kreaturen, wenn BTC Mobs installiert ist. |
exp-drops | In der Region getötete Mobs lassen keine Erfahrung fallen. |
potion-splash | Bricht Wurftränke ab, die in der Region landen. |
Explosionen und Umgebung
| Flag | Was ein Wert false bewirkt |
|---|---|
creeper-explosion, tnt | Bricht Creeper-Explosionen oder TNT-, TNT-Loren- und Respawn-Anker-Explosionen ab. |
ghast-fireball | Bricht Explosionen von Feuerbällen, Wither-Schädeln, Drachenfeuerbällen und Windkugeln ab. |
fire-spread | Bricht Feuerausbreitung, brennende Blöcke und Entzündung ab, die nicht von Lava oder Blitz stammt. |
lava-fire, lightning | Bricht Entzündung durch Lava sowie Blitzeinschläge und Entzündung ab. |
lava-flow, water-flow | Bricht ab, dass Lava oder Wasser in die Region fließt. |
ice-melt, snow-melt | Bricht das Schmelzen von Eis oder Schnee ab. |
ice-form, snow-fall | Bricht die Bildung von Eis oder Schnee ab. |
frostwalker | Bricht Eis durch Frostläufer ab. |
leaf-decay, grass-growth, vine-growth | Bricht das Verrotten von Laub, die Ausbreitung von Gras, Myzel, Pfaden und Pilzen sowie das Wachsen von Ranken ab. |
enderman-grief, ravager-grief | Bricht ab, dass Endermen und Verwüster Blöcke verändern. |
chunk-unload | Ein Wert true hält die Chunks der Region dauerhaft geladen. |
Bewegung
| Flag | Wert | Wirkung |
|---|---|---|
entry, exit | boolean | Ein Wert false blockiert das Betreten oder Verlassen der Region. Blockierte Spieler erhalten die Nachricht deniedEntry. |
entry-deny-action, exit-deny-action | Actions | TypeWriter-Actions, die für den Spieler beim Betreten oder Verlassen ausgeführt werden und wenn ein Betreten oder Verlassen verweigert wird. Verwende für normale Logik die Entries für Betreten- und Verlassen-Events. |
ender-pearl | boolean | Ein Wert false bricht Enderperlen-Teleports in die Region ab. |
fall-damage | boolean | Ein Wert false bricht Fallschaden ab. |
fly | boolean | Ein Wert false schaltet den Flug für Spieler in der Region aus. |
walk-speed, fly-speed | Zahl | Legt die Geh- oder Fluggeschwindigkeit der Spieler darin fest, zwischen 0 und 1. Bukkit-Skala: 0.2 ist die normale Gehgeschwindigkeit und 0.1 die normale Fluggeschwindigkeit. Außerhalb wird der Standardwert wiederhergestellt. |
glide | Text | deny stoppt das Gleiten mit Elytren und das Umschalten des Flugs. allow und default bewirken nichts. |
join-location | Position | Spieler, die sich innerhalb der Region anmelden oder respawnen, werden an diese Position bewegt. |
Spielerzustand, Chat und Befehle
| Flag | Wert | Wirkung |
|---|---|---|
hunger | boolean | Ein Wert false stoppt den Hungerverlust. |
heal-amount, heal-min-health, heal-max-health | Zahl | Heilt Spieler in der Region jede Sekunde um heal-amount Lebenspunkte, zwischen minimaler und maximaler Gesundheit. Das Heilen pausiert nach jedem Schaden 5 Sekunden lang. |
item-durability | boolean | Ein Wert true verhindert, dass Werkzeuge, Waffen und Rüstung an Haltbarkeit verlieren. |
send-chat, receive-chat | boolean | Ein Wert false blockiert Nachrichten, die aus der Region gesendet oder innerhalb von ihr empfangen werden. |
chat-prefix, chat-suffix | Text | Fügt Text vor oder nach Chatnachrichten ein, die aus der Region gesendet werden. |
blocked-cmds, allowed-cmds | Liste | Befehlsnamen (ohne Schrägstrich), die blockiert werden oder immer erlaubt sind. * blockiert jeden Befehl. allowed-cmds hat Vorrang. |
worldedit | boolean | Ein Wert true blockiert WorldEdit-Befehle für Spieler in der Region. |
Von dieser Erweiterung nicht durchgesetzt
Die folgenden Flags können einer Region hinzugefügt werden, aber nichts in Protection wertet sie aus: passthrough, teleport, godmode, nether-portals, entry-min-level, entry-max-level, permit-completely, mobtrap-use, blocked-effects, heal-delay, biome (das Biom wird nicht verändert) und die RPG-Flags mana-regen, mana-drain, double-drop, grappling-hook, fishing, alchemy, enchanting-override, elytra-auto-switch, ground-item-glow, pistol, corruption, auction, backpack, wardrobe, profession, experience, gathering und resin.
keep-inventory, keep-exp und invincible haben auch für normale Spieler keine Wirkung: Sie wirken nur für Besitzer, Mitglieder und Spieler mit der Bypass-Berechtigung.
Befehle
Alle Befehle sind Unterbefehle von /typewriter (Alias /tw), zum Beispiel /typewriter protection list. Sie können nur von Spielern genutzt werden und erfordern typewriter.protection. Mit „admin“ markierte Befehle erfordern typewriter.protection.admin.
| Befehl | Beschreibung |
|---|---|
/typewriter protection list | Listet geladene Regionen auf, höchste Priorität zuerst. |
/typewriter protection edit <definition> | Beginnt, die Region im Spiel mit der Hotbar-Werkzeugleiste zu zeichnen. Bei einem globalen Artifact werden die Artifact-Werte sofort angewendet. |
/typewriter protection apply | Speichert die aktuelle Auswahl. |
/typewriter protection cancel | Bricht die aktuelle Auswahl ab. |
/typewriter protection remove <1-16> | Entfernt einen Punkt der aktuellen Auswahl. |
/typewriter protection import-we <definition> | Importiert deine WorldEdit-Auswahl als Punkte der Region. |
/typewriter protection info <region> | Zeigt Form, Priorität, Besitzer, Mitglieder und Flags einer Region. |
/typewriter protection flags <region> | Zeigt, welche Flags wirksam, geerbt, überschrieben oder durch Vererbung blockiert sind. |
/typewriter protection inspect | Schaltet eine Live-Ansicht der Regionen und Flags an deiner Position um, in der Actionbar und in Bossbars. |
/typewriter protection teleport <region> | Teleportiert zur Mitte einer Region (oder zum Weltspawn bei einer globalen Region). |
/typewriter protection wand | Gibt einen Stock namens Protection Wand. In diesem Release reagiert nichts darauf. |
/typewriter protection setflag <region> <flag> <value> (admin) | Ändert ein Flag im Speicher. |
/typewriter protection clearflag <region> <flag> (admin) | Löscht ein Flag im Speicher. |
/typewriter protection addowner|removeowner|addmember|removemember <region> <player> (admin) | Ändert Besitzer oder Mitglieder im Speicher. |
/typewriter protection delete <region> (admin) | Entfernt eine Region aus dem Speicher. |
/typewriter protection reload (admin) | Lädt Regionen aus den veröffentlichten Entries neu. |
/typewriter protection migrate-from-worldguard (admin) | Experimenteller Import der Quadergrenzen von WorldGuard-Regionen. Siehe die Seite zu Artifact-Identität und Migration. |
setflag, clearflag, addowner, removeowner, addmember, removemember und delete schreiben nicht in deine Entries. Sie ändern die geladene Kopie, und die Änderungen gehen bei einem Reload oder Neustart verloren. Die meisten Flags werden aus dem Regionsdefinition-Entry durchgesetzt, daher ändert ein setflag nicht, wie sich build, pvp oder die meisten anderen Flags verhalten. Bearbeite Flags im Web-Panel und veröffentliche.
Berechtigungen
| Berechtigung | Erlaubt |
|---|---|
typewriter.protection | Die /typewriter protection-Befehle, die nicht nur für Admins sind. |
typewriter.protection.admin | Die Admin-Befehle: Flags, Besitzer, Mitglieder, Löschen, Reload und WorldGuard-Migration. |
typewriter.protection.bypass | Ignoriert jedes Flag in jeder Region. |
Platzhalter
PlaceholderAPI-Platzhalter haben die Form %typewriter_regions:<path>%. Sie lesen die Regionen an der Spielerposition, nach Priorität sortiert; primary ist die erste.
| Platzhalter | Liefert |
|---|---|
%typewriter_regions:count% | Wie viele Regionen den Spieler enthalten. |
%typewriter_regions:list%, %typewriter_regions:list_names% | Die IDs oder die Namen dieser Regionen, durch Kommas getrennt. |
%typewriter_regions:stack% | Priorität und Name jeder Region, durch | getrennt. |
%typewriter_regions:has:<id1>,<id2>% | true, wenn der Spieler in einer der aufgeführten Regionen ist. |
%typewriter_regions:primary% | Der Name der Region mit der höchsten Priorität. Hänge :id, :name, :priority, :overlap_count, :parent, :parent_name, :owner_count, :member_count, :is_global, :depth oder :path für andere Felder an. |
%typewriter_regions:active:<n>% | Dieselben Felder für die n-te Region des Stapels, ab 1 gezählt, zum Beispiel %typewriter_regions:active:2:id%. |
%typewriter_regions:flag:<flag>% | Der Wert eines Flags in der primären Region. Hänge :state, :source oder :source_name an, um zu sehen, woher er stammt. |
%typewriter_regions:by_id:<region>:<field>% | Ein Feld einer bestimmten Region, zum Beispiel %typewriter_regions:by_id:spawn:priority%. |
%typewriter_regions:exists:<region>% | true, wenn die Region existiert. |
%typewriter_regions:nearest% | Die Region, deren minimale Ecke dem Spieler am nächsten liegt. Dieselben Felder sind verfügbar. |
%typewriter_regions:can_build%, %typewriter_regions:can_interact% | false, wenn die erste Region nach Priorität, die build (oder interact) setzt, es auf false gesetzt hat, sonst true. |
Migration zu Region
Protection erhält keine neuen Funktionen, plane daher den Wechsel zur offiziellen Region-Erweiterung von TypeWriter, dokumentiert unter docs.typewritermc.com. Diese Seite beschreibt Region nicht: Folge dessen eigener Dokumentation.
Protection enthält kein Werkzeug, um seine Regionen in Region umzuwandeln. Der allgemeine Ansatz:
- Liste deine Regionen mit
/typewriter protection listauf und notiere für jede Form, Priorität, Elternregion, Besitzer und Mitglieder sowie Flags (/typewriter protection info <region>). - Erstelle jede Region in der neuen Erweiterung neu und ordne jedes Flag der entsprechenden Einstellung dort zu. Einige Protection-Flags werden nicht durchgesetzt (siehe oben), du brauchst sie also möglicherweise nicht.
- Teste auf einer Kopie deines Servers mit Spielern, die weder Besitzer noch Mitglieder noch Bypass-Inhaber sind.
- Entferne die Protection-Entries und die JAR, sobald sich die neuen Regionen wie erwartet verhalten. Sichere zuvor deine TypeWriter-Seiten und -Assets.
Entries
9 Einträge, aus dem Quellcode der Erweiterung generiert.
Ereignisse2
- On Enter Protection RegionWhen a player enters a protection region
- On Exit Protection RegionWhen a player exits a protection region
Fakten1
- In Protection Region FactIf the player is in a protection region
Zielgruppen1
- Protection Region AudienceFilter players based on if they are in a protection region
Gruppen1
- Protection Region GroupAll players grouped by protection regions
Artefakte2
- Global Protection Region ArtifactPersistent data for a world-wide protection region
- Protection Region ArtifactPersistent data for a TypeWriter-managed protection region
Manifeste2
- Protection SettingsConfiguration for protection tooling
- Region DefinitionProtection region definition
Fehlerbehebung
Ein Flag bewirkt nichts. Prüfe das Flag unter Flags: Einige Keys werden nicht durchgesetzt. Prüfe außerdem, ob die Region gespeichert und veröffentlicht ist, ob der Spieler kein Besitzer, kein Mitglied und kein Inhaber von typewriter.protection.bypass ist und ob der Wert bei verbietenden Flags ein boolescher Wert false ist.
Die Region existiert, aber Spieler sind nicht darin. Die Form stammt aus dem Artifact. Eine Definition ohne Artifact oder ein Artifact, auf das du nie eine Auswahl angewendet hast, deckt nichts ab. Führe /typewriter protection edit <definition> aus und wende eine Auswahl an, und prüfe dann mit /typewriter protection info <region>. Alle Punkte müssen in derselben Welt liegen, und ein Quader benötigt 2 Punkte, ein Polygon 3.
Die Auswahl-Werkzeugleiste erscheint nicht. edit benötigt eine veröffentlichte Regionsdefinition, die mit einem Artifact verknüpft ist. Meldet die Nachricht, dass die Definition mit keinem Artifact verknüpft ist, verknüpfe eines. Bei einem globalen Artifact gibt es keine Werkzeugleiste: Setze worlds, minY und maxY am Artifact.
/typewriter protection import-we meldet keine Auswahl oder keinen Adapter. WorldEdit oder FastAsyncWorldEdit muss installiert sein, und du musst in der Welt, in der du stehst, eine Auswahl getroffen haben.
Eine setflag-Änderung verschwindet. Der Befehl ändert nur den Speicher. Trage das Flag in die Regionsdefinition ein und veröffentliche.
Eine WorldGuard-Migration hat keine Regionen erstellt. Die Migration erstellt keine Regionsdefinitionen, Flags, Besitzer oder Mitglieder: Sie behandelt nur die Quadergrenzen jeder Region und liest die WorldGuard-Regionen über die erste geladene Welt. Erstelle die Definitionen im Web-Panel.
Spieler werden von entry nicht teleportiert oder blockiert. Die Prüfung erfolgt, wenn sich ein Spieler zu einem anderen Block bewegt oder teleportiert. Ein Betreten durch ein Plugin, das den Spieler ohne Bewegungs- oder Teleport-Event bewegt, wird nicht bemerkt.
Verwandte Erweiterungen
- MythicMobs —
mob-spawninggilt auch für Mythic-Mobs.