Jump to content

Permissions Offline entfernen? Offlineplayer casten


Empfohlene Beiträge

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.");
							
						}

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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