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;
@@ -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");