Minecraft Skript permission überprüfen?

RouteUS66  30.07.2022, 20:45

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.

lolomatrix617 
Beitragsersteller
 30.07.2022, 20:52

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

RouteUS66  30.07.2022, 22:22

Ich merks. Bitte die Doku lesen, oder ggf. mal den Code hier posten oder mehr Infos, damit man dir hier eher helfen kann.

lolomatrix617 
Beitragsersteller
 31.07.2022, 10:39

ich schicke gleich den code. Ich habe noch etwas geändert

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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.


lolomatrix617 
Beitragsersteller
 31.07.2022, 10:46

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..

lolomatrix617 
Beitragsersteller
 31.07.2022, 08:18

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.

Bild zum Beitrag

 - (Minecraft, skript)

lolomatrix617 
Beitragsersteller
 04.08.2022, 07:49

Jup, aber ich habe gemerkt dass ich einen Fehler hatte. Der Code den ich gepostet habe funktioniert. Dennoch danke für deine Hilfe