Minecraft Skript permission überprüfen?
Hallo. Ich arbeite gerade an einem skript für Minecraft. Also ein Support Skript.
Wenn man also /support <nachricht> macht, dann soll diese Nachricht an alle gehen, die eine bestimmte permission haben. Aber wie kann ich das Skript überprüfen lassen, ob ein Spieler diese Permissin hat und somit die Nachricht empfangen darf?
Ich hoffe mir kann hier jemand helfen.
Danke im Vorraus
Das wird doch wohl hoffentlich in der Dokumentation vom Spieler-Objekt stehen, oder etwa nicht? Ne Info, mit welchem "Framework" du das machst, wäre auch hilfreich.
ich bin halt ein anfänger. Mache das erst seit ein paar tagen, ich habe zwar schon einiges geschafft, aber das ist neu für mich. Nutze VisualStudioCode und sonst ka was du meinst
Ich merks. Bitte die Doku lesen, oder ggf. mal den Code hier posten oder mehr Infos, damit man dir hier eher helfen kann.
ich schicke gleich den code. Ich habe noch etwas geändert
2 Antworten
Du wirst wahrscheinlich ein Spigot Plugin für den Befehl entwickeln.
Mit einem Plugin kannst du alle Online Spieler abrufen.
Bukkit.getServer().getOnlinePlayers()
Damit bekommst du eine Liste von Player Objekten. Mit .isOp() könntest du die OP Rechte prüfen.
Falls du eine eigene "Berechtigung" anlegen möchtest, würde ich im Server eine Liste an Player IDs anlegen. Alle IDs in der Liste, haben dann diese Berechtigung.
Als Java Objekt würde sich ein HashSet anbieten. Dort speicherst du dann alle IDs ab.
Bedenke, damit die Veränderungen der Liste/HashSet ein Neustart des Servers überleben, musst du es extern speichern.
Nochmal für alle. Ich habe jetzt den Code getestet und es geht alles. Aber das Problem: Ich habe nur eine Permission, die zum schreiben UND empfangen. Wie kann ich machen, dass man eine Perm zum schreiben braucht und nochmal eine um die nachricht zu erhalten?
Code:
options:
p: &c&l[&e&lSupport&c&l]
command /support [<text>]:
aliases: /sp
permission: support.send
permission message: "{@p}: &cDafür hast du keine Rechte!"
trigger:
if arg 1 is not set:
send "&c/support <nachricht>" to player
if arg 1 is set:
loop all players:
if loop-player has permission "support.get":
send "{@p}: &e%player's display name%&7: %arg-1%" to loop-player
Ich weiß nicht ob das geht..
Ne Datenbank habe ich, aber keine Ahnung von Java. Habe halt auch erst vor kurzem mit Skripten angefangen.. Also hatte ich Ahnung hättest du mir geholfen, aber ich habe kein Plan davon :(
Das sollte klappen. In das Feld "XY" einfach die Permission eintragen die man dafür benötigt.
Jup, aber ich habe gemerkt dass ich einen Fehler hatte. Der Code den ich gepostet habe funktioniert. Dennoch danke für deine Hilfe