• 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!

PlugIn Beim Join eines Spielers alle Permissions wegnehmen

Patrick2020

Minecrafter
Registriert
14 März 2020
Beiträge
13
Diamanten
300
Hey,
wie kann ich es machen das wenn ein Spieler joint der im array test steht alle permissions verliert?
Das array test wird mit den Spielernamen befüllt die in der config.yml stehen.
Gibt es eine methode die alle Permissions wegnimmt, oder muss ich jede Permission einzeln wegnehmen?
Es geht nur um die Permissions die man hat wenn man neu auf den server joint (also keine permissions die man durch op kriegt).

LG
Patrick2020
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Wenn ein Spieler keine Permissions haben soll, kannst du ihm die Permissions * auf false setzen.

Wenn es ums selber programmieren geht, und nicht um ein Perm-Plugin (ich hoffe nicht):

Für die Spigot-/Bukkit-API ist * jedoch keine gültige Permission, das implementieren die Permissions-Plugins selbst.
Du müsstest also tatsächlich alle Permissions einzeln heraussuchen (Bukkit.getPluginManager().getPermissions())) und negieren. Dazu kommen noch Permissions wie Minecraft.command, die der PluginManager nicht kennt sowie Permissions, die eventuell später hinzugefügt werden.

Wenn die Standard-Permissions beibehalten werden sollen, geht clearPermissions() natürlich auch.
 

Patrick2020

Minecrafter
Registriert
14 März 2020
Beiträge
13
Diamanten
300
Ich würde lieber mal gerne wissen, was genau du dadurch erreichen willst. Für mich klingt das nach einem XY-Problem, die Lösung deines eigentlichen Problems würde man wahrscheinlich auch anders besser hinkriegen.

Wodurch kriegt man die denn? Wenn das durch ein anderes Plugin passiert, wäre es natürlich besser, das betreffende Plugin daran zu hindern, also per API einen anderen Rang zu setzen oder die Permissions des Spielers ändern.

Falls es um die standardmäßigen Permissions geht (minecraft.command.*, bukkit.command.* usw.), so sind diese standardmäßig vorhanden und lassen sich nur über ein Permissions-Plugin, dessen API oder eben direkt über die Bukkit-Permissions-API negieren.
Genau es geht um die standart permissions die jeder hat beim ersten Join!
Ich will so eine Art Modus programmieren wo man nichts machen kann wenn man in diesem Array steht das mit den Namen einer Datei gefüllt wird. Gibt es eine Liste wo alle Permissions stehen (als Liste untereinander, ohne irgendwelche Beschreibung)?

Weil dann könnte ich die in eine txt oder yml kopieren und sie dann per for-Schleife einlesen und auf false setzen.

Code:
Scanner scanner = new Scanner(new File("liste.txt"));
for (int i = 0; i < anzahlDerPermissions; i++){
    if(scanner.hasNextLine()) {
       PermissionAttachment att = player.addAttachment(Main.getPlugin());
       att.setPermission(scanner. nextLine(), false);
    }
}

LG
Patrick2020
 

Patrick2020

Minecrafter
Registriert
14 März 2020
Beiträge
13
Diamanten
300
Eine solche fertige Liste gibt es glaube ich nicht, aber die offiziellen Befehlslisten (Bukkit, Spigot) enthalten alle Standard-Permissions. Die könnte man sich also alle rausschreiben.

Da kannst aber auch einfach die Funktionen nutzen, die jedes vernünftige Permissions-Plugin bietet und die damit negieren. Das muss dann nicht extra beim Joinen passieren, sondern für deine Standardgruppe kannst du dann einfach Negationen für bukkit.command.* und minecraft.command.* erstellen.

Was dein Codebeispiel angeht: Ich hoffe, dass das nur ein Beispiel ist - in der Praxis solltest du natürlich nur einmal so eine Datei laden und dann deine Liste daraus erstellen, nicht bei jedem Login erneut.
Danke,
habe es jetzt aber schon anders hinbekommen.

Natürlich war es nur ein beispiel das schnell auf dem Handy getippt worden ist. :)
 
Oben