diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/dimensionScheduler/DimensionScheduleCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/dimensionScheduler/DimensionScheduleCommand.java index 6024200..6cc1077 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/dimensionScheduler/DimensionScheduleCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/dimensionScheduler/DimensionScheduleCommand.java @@ -15,6 +15,11 @@ class DimensionScheduleCommand extends ApplianceCommand { super("dimensionSchedule"); } + @Override + public @NotNull String permission() { + return "spawn.command.dimensionschedule"; + } + @Override protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if(!sender.isOp()) throw new Error("Dieser Befehl ist nur für die Konsole und OPs verfügbar."); diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/dimensionScheduler/README.md b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/dimensionScheduler/README.md index ea4e9f6..903bd2d 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/dimensionScheduler/README.md +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/dimensionScheduler/README.md @@ -114,7 +114,11 @@ geöffneten Nether, einen fehlenden Termin oder einen vergangenen Termin. Inform `/endPrevent preventEnd`, `/endPrevent allowEnd` und `/endPrevent onlyInnerEnd` bleiben bestehen. `/endPrevent` ohne Argument zeigt den Zustand. `/netherPrevent preventNether` sperrt den Nether, `/netherPrevent allowNether` öffnet ihn und `/netherPrevent` ohne Argument zeigt seinen Zustand. -Beide Verwaltungsbefehle sind einschließlich Tabvervollständigung auf Konsole und OPs beschränkt. +Beide Verwaltungsbefehle sowie `/dimensionSchedule` und `/netherIgniter` besitzen registrierte +Command-Berechtigungen mit `default: op`. Für normale Spieler erscheinen auch die Befehlsnamen +und ihre `spawn:`-Varianten nicht in der Autovervollständigung. Die OP-Prüfungen bei der +Ausführung bleiben zusätzlich erhalten; `/netherIgniter` erfordert außerdem einen Spieler im Kreativmodus. +Nach Installation dieser Änderung den Server neu starten; `/dimensionSchedule reload` lädt nur die Termin-YAML. Status und Bestätigungen sind auf Deutsch in End-Grün beziehungsweise Nether-Rot formuliert; ungültige Argumente zeigen die Verwendung statt einer Erfolgsmeldung. Commands und laufende zeitgesteuerte Übergänge verwenden `EndPrevent.setEndState()`. diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java index 39944ac..65b5279 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java @@ -20,6 +20,11 @@ class EndPreventCommand extends ApplianceCommand { super("endPrevent"); } + @Override + public @NotNull String permission() { + return "spawn.command.endprevent"; + } + @Override protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if(!sender.isOp()) throw new Error("Dieser Befehl ist nur für die Konsole und OPs verfügbar."); diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/netherAccess/NetherIgniterCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/netherAccess/NetherIgniterCommand.java index d1c8cde..7db305b 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/netherAccess/NetherIgniterCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/netherAccess/NetherIgniterCommand.java @@ -15,6 +15,11 @@ class NetherIgniterCommand extends ApplianceCommand { super("netherIgniter", DimensionScheduleText.message("Fehler: ", DimensionScheduleText.NETHER_RED)); } + @Override + public @NotNull String permission() { + return "spawn.command.netherigniter"; + } + @Override protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if(!(sender instanceof Player player)) throw new Error("Dieser Befehl kann nur von Spielern ausgeführt werden."); diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/netherAccess/NetherPreventCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/netherAccess/NetherPreventCommand.java index e245583..d75bfbe 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/netherAccess/NetherPreventCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/netherAccess/NetherPreventCommand.java @@ -19,6 +19,11 @@ class NetherPreventCommand extends ApplianceCommand { super("netherPrevent", DimensionScheduleText.message("Fehler: ", DimensionScheduleText.NETHER_RED)); } + @Override + public @NotNull String permission() { + return "spawn.command.netherprevent"; + } + @Override protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if(!sender.isOp()) throw new Error("Dieser Befehl ist nur für die Konsole und OPs verfügbar."); diff --git a/core/src/main/resources/plugin.yml b/core/src/main/resources/plugin.yml index 40e86e9..e02d642 100644 --- a/core/src/main/resources/plugin.yml +++ b/core/src/main/resources/plugin.yml @@ -9,4 +9,18 @@ prefix: mhsl-spawn author: MineTec contributors: [olischma, 28Pupsi28] -website: https://mhsl.eu/gitea/CraftAttack/spawn \ No newline at end of file +website: https://mhsl.eu/gitea/CraftAttack/spawn + +permissions: + spawn.command.dimensionschedule: + description: Öffnungszeiten, Texte und Effekte neu einlesen + default: op + spawn.command.endprevent: + description: End-Zugang verwalten + default: op + spawn.command.netherprevent: + description: Nether-Zugang verwalten + default: op + spawn.command.netherigniter: + description: Portalfeuerzeug im Kreativmodus erhalten + default: op