From 5126395c7704e19f1e14c18f7fcbf76913299fc1 Mon Sep 17 00:00:00 2001 From: skippyall <121978267+skippyall@users.noreply.github.com> Date: Thu, 31 Aug 2023 11:36:01 +0200 Subject: [PATCH] fix OfflinePlayers --- .../benkralex/pvptoggle/InventoryMenu.java | 13 ++++++++---- .../java/benkralex/pvptoggle/PvpCommand.java | 20 ++++++++++--------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/InventoryMenu.java b/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/InventoryMenu.java index 0566b25..f040f0d 100644 --- a/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/InventoryMenu.java +++ b/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/InventoryMenu.java @@ -12,6 +12,7 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.SkullMeta; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; +import org.bukkit.profile.PlayerProfile; import java.util.ArrayList; import java.util.List; @@ -200,8 +201,10 @@ public class InventoryMenu { for (NamespacedKey blacklistedPlayerUuid:pBlacklist.getKeys()) { ItemStack item = new ItemStack(Material.PLAYER_HEAD); SkullMeta m = (SkullMeta) item.getItemMeta(); - m.setDisplayName(ChatColor.GREEN + Bukkit.getPlayer(UUID.fromString(blacklistedPlayerUuid.getKey())).getDisplayName()); - m.setOwningPlayer(Bukkit.getPlayer(UUID.fromString(blacklistedPlayerUuid.getKey()))); + OfflinePlayer target=Bukkit.getOfflinePlayer(UUID.fromString(blacklistedPlayerUuid.getKey())); + PlayerProfile profile=target.getPlayerProfile().update().join(); + m.setDisplayName(ChatColor.GREEN + profile.getName()); + m.setOwningPlayer(target); List lore = new ArrayList<>(); lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " Spieler entfernen"); m.setLore(lore); @@ -229,8 +232,10 @@ public class InventoryMenu { for (NamespacedKey whitelistedPlayerUuid:pWhitelist.getKeys()) { ItemStack item = new ItemStack(Material.PLAYER_HEAD); SkullMeta m = (SkullMeta) item.getItemMeta(); - m.setDisplayName(ChatColor.GREEN + Bukkit.getOfflinePlayer(UUID.fromString(whitelistedPlayerUuid.getKey())).getName()); - m.setOwningPlayer(Bukkit.getOfflinePlayer(UUID.fromString(whitelistedPlayerUuid.getKey()))); + OfflinePlayer target=Bukkit.getOfflinePlayer(UUID.fromString(whitelistedPlayerUuid.getKey())); + PlayerProfile profile=target.getPlayerProfile().update().join(); + m.setDisplayName(ChatColor.GREEN + profile.getName()); + m.setOwningPlayer(target); List lore = new ArrayList<>(); lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " Spieler entfernen"); m.setLore(lore); diff --git a/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java b/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java index 79b0109..8b6ee54 100644 --- a/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java +++ b/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java @@ -13,6 +13,7 @@ import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; +import org.bukkit.profile.PlayerProfile; import java.util.UUID; @@ -46,7 +47,7 @@ public class PvpCommand { .withUsage("/pvp whitelist") .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") - .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") .withUsage("/pvp whitelist add ") .withArguments(new OfflinePlayerArgument("Player")) @@ -135,6 +136,7 @@ public class PvpCommand { //PvP Whitelist Command PersistentDataContainer pdc = sender.getPersistentDataContainer(); PersistentDataContainer pdcList = pdc.getOrDefault(new NamespacedKey(Pvptoggle.pvptoggle,key),PersistentDataType.TAG_CONTAINER,pdc.getAdapterContext().newPersistentDataContainer()); + PlayerProfile targetProfile=ptarget.getPlayerProfile().update().join(); if (action == 1) { //anzeigen if(!pdcList.isEmpty()){ @@ -149,19 +151,19 @@ public class PvpCommand { } } else if (action == 2) { //hinzufügen - if (pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,ptarget.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) { - sender.sendMessage(ChatColor.RED + "Der Spieler " + ptarget.getName() + ChatColor.RED + " ist schon in deiner " + listName); + if (pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) { + sender.sendMessage(ChatColor.RED + "Der Spieler " + targetProfile.getName() + ChatColor.RED + " ist schon in deiner " + listName); }else{ - pdcList.set(new NamespacedKey(Pvptoggle.pvptoggle,ptarget.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER,pdcList.getAdapterContext().newPersistentDataContainer()); - sender.sendMessage(ChatColor.GREEN + ptarget.getName() + ChatColor.GREEN + " wurde zu deiner "+listName+" hinzugefügt"); + pdcList.set(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER,pdcList.getAdapterContext().newPersistentDataContainer()); + sender.sendMessage(ChatColor.GREEN + targetProfile.getName() + ChatColor.GREEN + " wurde zu deiner "+listName+" hinzugefügt"); } } else if (action == 3) { //entfernen - if (!pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,ptarget.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) { - sender.sendMessage(ChatColor.RED + "Der Spieler " + ptarget.getName() + ChatColor.RED + " ist nicht in deiner "+listName); + if (!pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) { + sender.sendMessage(ChatColor.RED + "Der Spieler " + targetProfile.getName() + ChatColor.RED + " ist nicht in deiner "+listName); }else{ - pdcList.remove(new NamespacedKey(Pvptoggle.pvptoggle,ptarget.getUniqueId().toString())); - sender.sendMessage(ChatColor.GREEN + ptarget.getName() + ChatColor.GREEN + " wurde aus deiner "+listName+" entfernt"); + pdcList.remove(new NamespacedKey(Pvptoggle.pvptoggle,targetProfile.getUniqueId().toString())); + sender.sendMessage(ChatColor.GREEN + targetProfile.getName() + ChatColor.GREEN + " wurde aus deiner "+listName+" entfernt"); } } else { sender.sendMessage("Fehler");