Add command permissions for dimension scheduling and Nether access management

This commit is contained in:
besiece committed 2026-11-08 23:27:46 +01:00
1 parent c36b0a02fa
commit a202565341
6 files changed
+40 -2

No files matched your search

@@ -15,6 +15,11 @@ class DimensionScheduleCommand extends ApplianceCommand<DimensionScheduler> {
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.");
@@ -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()`.
@@ -20,6 +20,11 @@ class EndPreventCommand extends ApplianceCommand<EndPrevent> {
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.");
@@ -15,6 +15,11 @@ class NetherIgniterCommand extends ApplianceCommand<NetherAccess> {
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.");
@@ -19,6 +19,11 @@ class NetherPreventCommand extends ApplianceCommand<NetherAccess> {
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.");
+15 -1
View File
@@ -9,4 +9,18 @@ prefix: mhsl-spawn
author: MineTec
contributors: [olischma, 28Pupsi28]
website: https://mhsl.eu/gitea/CraftAttack/spawn
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