Jump to content

Empfohlene Beiträge

Geschrieben

Heyy, undzwar möchte ich ein PermissionsSystem basierend auf PermissionsEX erstellen, aber scheitere daran, die Permissions bei einem offline Spieler zu entfernen, da dieser gar nicht "erkannt" wird. Ich hoffe jemand kann mir weiterhelfen :)

"(...)Bukkit.getOfflinePlayer(args[0])" wird zudem in Eclipse gelb unterstrichen, allerdings keine "Hilfe" angeboten.

Player target = Bukkit.getPlayer(args[0]);
						
						if(target.isOnline()) {
							
						
								
								p.sendMessage(Prefixes.team + "§7" + target.getName() + " §7ist nun nichtmehr im Team.");
								target.sendMessage(Prefixes.team + "§7Du bist nun nichtmehr im Server-Team.");
								PermissionsEx.getUser(target).removePermission("d.admin");
								PermissionsEx.getUser(target).removePermission("d.mod");
								PermissionsEx.getUser(target).removePermission("d.support");
								
						
							
							
							
						} else {
							OfflinePlayer offlinetarget = Bukkit.getOfflinePlayer(args[0]);
							
							PermissionsEx.getUser(offlinetarget.getPlayer()).removePermission("d.admin");
							PermissionsEx.getUser(offlinetarget.getPlayer()).removePermission("d.mod");
							PermissionsEx.getUser(offlinetarget.getPlayer()).removePermission("d.support");
							p.sendMessage(Prefixes.team + "§f" + offlinetarget.getName() +  "§7 wurden offline alle Teamrechte entzogen.");
							
						}

 

Geschrieben

Kann dir ein paar Denkanstöße geben.

Als erstes solltest du PermissionsEx.getUser.. auslagern in z.B.

PermissionUser user = PermissionsEx.getUser(offlineTarget);
user.removePermission("*");

Dann solltest du prüfen ob der User bestimmte Rechte noch hat. Im Zweifel ihn auf den Default zurücksetzen. 

Try, Catch und den Fehler loggen. Welcher ist es denn überhaupt?

Gelb ist nur ein Hinweis, die Methode getOfflinePlayer ist schwierig, weil der Spieler seinen Namen ja ändern könnte und du ihm die Rechte dann noch immer nicht entfernt hast. Du würdest aber ein success erhalten weil die UUID in deinem Code immer vom Mojang Server kommt. Du müsstest den Server fragen ob der User bekannt ist und die UUID von dort erhalten. 

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B