fix OfflinePlayers

This commit is contained in:
skippyall
2023-08-31 11:36:01 +02:00
parent c1612a6d80
commit 5126395c77
2 changed files with 20 additions and 13 deletions
@@ -12,6 +12,7 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta; import org.bukkit.inventory.meta.SkullMeta;
import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType; import org.bukkit.persistence.PersistentDataType;
import org.bukkit.profile.PlayerProfile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -200,8 +201,10 @@ public class InventoryMenu {
for (NamespacedKey blacklistedPlayerUuid:pBlacklist.getKeys()) { for (NamespacedKey blacklistedPlayerUuid:pBlacklist.getKeys()) {
ItemStack item = new ItemStack(Material.PLAYER_HEAD); ItemStack item = new ItemStack(Material.PLAYER_HEAD);
SkullMeta m = (SkullMeta) item.getItemMeta(); SkullMeta m = (SkullMeta) item.getItemMeta();
m.setDisplayName(ChatColor.GREEN + Bukkit.getPlayer(UUID.fromString(blacklistedPlayerUuid.getKey())).getDisplayName()); OfflinePlayer target=Bukkit.getOfflinePlayer(UUID.fromString(blacklistedPlayerUuid.getKey()));
m.setOwningPlayer(Bukkit.getPlayer(UUID.fromString(blacklistedPlayerUuid.getKey()))); PlayerProfile profile=target.getPlayerProfile().update().join();
m.setDisplayName(ChatColor.GREEN + profile.getName());
m.setOwningPlayer(target);
List<String> lore = new ArrayList<>(); List<String> lore = new ArrayList<>();
lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " Spieler entfernen"); lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " Spieler entfernen");
m.setLore(lore); m.setLore(lore);
@@ -229,8 +232,10 @@ public class InventoryMenu {
for (NamespacedKey whitelistedPlayerUuid:pWhitelist.getKeys()) { for (NamespacedKey whitelistedPlayerUuid:pWhitelist.getKeys()) {
ItemStack item = new ItemStack(Material.PLAYER_HEAD); ItemStack item = new ItemStack(Material.PLAYER_HEAD);
SkullMeta m = (SkullMeta) item.getItemMeta(); SkullMeta m = (SkullMeta) item.getItemMeta();
m.setDisplayName(ChatColor.GREEN + Bukkit.getOfflinePlayer(UUID.fromString(whitelistedPlayerUuid.getKey())).getName()); OfflinePlayer target=Bukkit.getOfflinePlayer(UUID.fromString(whitelistedPlayerUuid.getKey()));
m.setOwningPlayer(Bukkit.getOfflinePlayer(UUID.fromString(whitelistedPlayerUuid.getKey()))); PlayerProfile profile=target.getPlayerProfile().update().join();
m.setDisplayName(ChatColor.GREEN + profile.getName());
m.setOwningPlayer(target);
List<String> lore = new ArrayList<>(); List<String> lore = new ArrayList<>();
lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " Spieler entfernen"); lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " Spieler entfernen");
m.setLore(lore); m.setLore(lore);
@@ -13,6 +13,7 @@ import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType; import org.bukkit.persistence.PersistentDataType;
import org.bukkit.profile.PlayerProfile;
import java.util.UUID; import java.util.UUID;
@@ -46,7 +47,7 @@ public class PvpCommand {
.withUsage("/pvp whitelist") .withUsage("/pvp whitelist")
.withHelp("Whitelist zeigen", "Damit kannst du dir die Whitelist anzeigen. Alle die in der Whitelist sind können dich immer schlagen.") .withHelp("Whitelist zeigen", "Damit kannst du dir die Whitelist anzeigen. Alle die in der Whitelist sind können dich immer schlagen.")
.withSubcommand(new CommandAPICommand("add") .withSubcommand(new CommandAPICommand("add")
.executesPlayer((sender, args)->{pvpList(sender, (OfflinePlayer) args.get("Player"),"whitelist","Whitelist", ADD_ACTION);}) .executesPlayer((sender, args)->{pvpList(sender, (OfflinePlayer)args.get("Player"),"whitelist","Whitelist", ADD_ACTION);})
.withPermission("pvp.whitelist") .withPermission("pvp.whitelist")
.withUsage("/pvp whitelist add <Player>") .withUsage("/pvp whitelist add <Player>")
.withArguments(new OfflinePlayerArgument("Player")) .withArguments(new OfflinePlayerArgument("Player"))
@@ -135,6 +136,7 @@ public class PvpCommand {
//PvP Whitelist Command //PvP Whitelist Command
PersistentDataContainer pdc = sender.getPersistentDataContainer(); PersistentDataContainer pdc = sender.getPersistentDataContainer();
PersistentDataContainer pdcList = pdc.getOrDefault(new NamespacedKey(Pvptoggle.pvptoggle,key),PersistentDataType.TAG_CONTAINER,pdc.getAdapterContext().newPersistentDataContainer()); PersistentDataContainer pdcList = pdc.getOrDefault(new NamespacedKey(Pvptoggle.pvptoggle,key),PersistentDataType.TAG_CONTAINER,pdc.getAdapterContext().newPersistentDataContainer());
PlayerProfile targetProfile=ptarget.getPlayerProfile().update().join();
if (action == 1) { if (action == 1) {
//anzeigen //anzeigen
if(!pdcList.isEmpty()){ if(!pdcList.isEmpty()){
@@ -149,19 +151,19 @@ public class PvpCommand {
} }
} else if (action == 2) { } else if (action == 2) {
//hinzufügen //hinzufügen
if (pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,ptarget.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) { if (pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) {
sender.sendMessage(ChatColor.RED + "Der Spieler " + ptarget.getName() + ChatColor.RED + " ist schon in deiner " + listName); sender.sendMessage(ChatColor.RED + "Der Spieler " + targetProfile.getName() + ChatColor.RED + " ist schon in deiner " + listName);
}else{ }else{
pdcList.set(new NamespacedKey(Pvptoggle.pvptoggle,ptarget.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER,pdcList.getAdapterContext().newPersistentDataContainer()); pdcList.set(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER,pdcList.getAdapterContext().newPersistentDataContainer());
sender.sendMessage(ChatColor.GREEN + ptarget.getName() + ChatColor.GREEN + " wurde zu deiner "+listName+" hinzugefügt"); sender.sendMessage(ChatColor.GREEN + targetProfile.getName() + ChatColor.GREEN + " wurde zu deiner "+listName+" hinzugefügt");
} }
} else if (action == 3) { } else if (action == 3) {
//entfernen //entfernen
if (!pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,ptarget.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) { if (!pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) {
sender.sendMessage(ChatColor.RED + "Der Spieler " + ptarget.getName() + ChatColor.RED + " ist nicht in deiner "+listName); sender.sendMessage(ChatColor.RED + "Der Spieler " + targetProfile.getName() + ChatColor.RED + " ist nicht in deiner "+listName);
}else{ }else{
pdcList.remove(new NamespacedKey(Pvptoggle.pvptoggle,ptarget.getUniqueId().toString())); pdcList.remove(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()));
sender.sendMessage(ChatColor.GREEN + ptarget.getName() + ChatColor.GREEN + " wurde aus deiner "+listName+" entfernt"); sender.sendMessage(ChatColor.GREEN + targetProfile.getName() + ChatColor.GREEN + " wurde aus deiner "+listName+" entfernt");
} }
} else { } else {
sender.sendMessage("Fehler"); sender.sendMessage("Fehler");