• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spieler Ränge wegnehmen [Skript]

m4ts

Schafhirte
Registriert
26 Januar 2019
Beiträge
102
Diamanten
306
Hallo, ich lerne gerade Skripten und möchte mit dem Befehl /polizist [Name] Spielern den Polizisten Rang geben, wenn sie schon über diesen Verfügen
soll er ihnen mit dem Befehl /polizist [Name] weg genommen werden. Das habe ich bisher geschrieben um ihnen den Rang zugeben:
Code:
command /Polizist [<Text>]:

    permission: add.polizist
    permission message: Du besitzt nicht die nötigen Berechtigungen.
   
    trigger:
        if argument 1 is not set:
            message "/Polizist [Name]"
            stop
        else:
            make console execute command "/permission***:pex user %arg 1% group set Polizist"
            broadcast "%arg 1% wurde zum Polizisten!"
            stop

Wie ich ihnen diesen wieder wegnehmen kann, schaffe ich leider noch nicht umzusetzen. Wäre nett wenn mir da einer helfen kann.
 
Zuletzt bearbeitet:

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Es wäre deutlich einfacher, wenn du dem Polizisten eine eigene Permission gibst, dann kannst du prüfen ob der Spieler diese Permission hat, wenn das der Fall ist, dann nimmst du ihm den Rang weg, ansonsten gibst du ihm den Rang. Alle anderen Optionen werden von dir verlangen, dass du den Command Output von deinem Permissionplugin parst, das ist je nach Permissionplugin selbst über die Java API unmöglich.
 

SilberRegen

Workaholic
Registriert
23 März 2012
Beiträge
889
Alter
35
Diamanten
303
Minecraft
SilberRegen
Die Pex-Gruppe "Polizist" hat die permission "polizist.polizist".
Das Skript könnte etwa dieser Logik folgen:
----------------------------------------------------------------
  • ist arg-1 nicht gesetzt? [hast du bereits ✔ ]
    • Nachricht und Ende [✔]
  • ansonsten: [✔]
    • hat arg-1 die Permission "polizist.polizist"?
      • entferne für arg-1 die Gruppe Polizist
    • ansonsten:
      • setze für arg-1 die Gruppe Polizist
----------------------------------------------------------------

Ein paar Verfeinerungstipps:
Die Gruppe Polizist mit PEX nicht mit "set" sondern "add" hinzufügen. Damit behält der Spieler seine ursprüngliche Gruppe und kann später ohne Probleme mit "remove" der Polizistengruppe zurückgesetzt werden. Die Gruppe Polizist muss in PEX selber halt einen höheren Rang/Priorität/Gewicht bekommen.

Statt [<text>] das [<player>] Argument benutzen in der Befehlssyntax und "player-arg" statt "arg-1" referenzieren.
Damit überprüft Skript, ob der angegebene Spieler online ist und damit funktioniert der Befehl nur mit Spielern, die online sind.

Pex überprüft nämlich nicht ob die Spieler existieren und jede Falscheingabe würde dir einen nicht-existierenden Spieler in die Datenbank schreiben.
Pex unterstützt außerdem nicht die Permissionsabfrage von Offlinespielern, d.h. die Abfrage nach der Gruppe oder der Permission mit Skript würde nicht funktionieren und das Skript damit immer die Gruppe setzen, aber nie wegnehmen bei Offlinespielern.

Da kann man natürlich Workarounds basteln, damit es auch mit Offlinespielern geht, aber erstmal würde ich versuchen das mit den Onlinespielern zum laufen zu bekommen.
 

zNqzy

Minecrafter
Registriert
4 November 2018
Beiträge
18
Diamanten
300
command /Polizist [<player>]:
permission: add.polizist
permission message: Du besitzt nicht die nötigen Berechtigungen.
trigger:
if arg 1 is not set:
message "/Polizist [Name]"
stop
else:
make console execute command "/pex user %arg 1% group set Polizist"
broadcast "%arg 1% wurde zum Polizisten!"
stop trigger
 
Oben