From c1612a6d80a94dc978e5984136ef9e1c8e7506c7 Mon Sep 17 00:00:00 2001 From: skippyall <121978267+skippyall@users.noreply.github.com> Date: Thu, 31 Aug 2023 10:59:32 +0200 Subject: [PATCH] Allow offline Players --- .../benkralex/pvptoggle/ListListener.java | 3 +- .../java/benkralex/pvptoggle/PvpCommand.java | 28 ++++++++++--------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/ListListener.java b/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/ListListener.java index 8239c97..d9d614a 100644 --- a/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/ListListener.java +++ b/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/ListListener.java @@ -3,6 +3,7 @@ package benkralex.pvptoggle; import dev.jorel.commandapi.executors.CommandArguments; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -19,7 +20,7 @@ public class ListListener implements Listener { Player p = (Player) e.getWhoClicked(); if (item.getType() == Material.PLAYER_HEAD && e.isRightClick()) { - Player ptarget = (Player) ((SkullMeta) item.getItemMeta()).getOwningPlayer(); + OfflinePlayer ptarget = ((SkullMeta) item.getItemMeta()).getOwningPlayer(); if (invtitle.equals("Whitelist-Menu")) { PvpCommand.pvpList(p, ptarget, "whitelist", "Whitelist", 3); p.openInventory(InventoryMenu.pvpWhitelistMenu(p)); diff --git a/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java b/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java index 67cc7c3..79b0109 100644 --- a/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java +++ b/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java @@ -1,6 +1,7 @@ package benkralex.pvptoggle; import dev.jorel.commandapi.CommandAPICommand; +import dev.jorel.commandapi.arguments.OfflinePlayerArgument; import dev.jorel.commandapi.arguments.PlayerArgument; import dev.jorel.commandapi.executors.CommandArguments; import net.md_5.bungee.api.ChatColor; @@ -8,6 +9,7 @@ import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; +import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; @@ -44,16 +46,16 @@ 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, (Player) 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 PlayerArgument("Player")) + .withArguments(new OfflinePlayerArgument("Player")) .withHelp("Spieler zu Whitelist hinzufügen", "Du kannst damit Spieler zu deiner Whitelist hinzufügen.")) .withSubcommand(new CommandAPICommand("remove") - .executesPlayer((sender, args)->{pvpList(sender, (Player) args.get("Player"),"whitelist","Whitelist", REMOVE_ACTION);}) + .executesPlayer((sender, args)->{pvpList(sender, (OfflinePlayer) args.get("Player"),"whitelist","Whitelist", REMOVE_ACTION);}) .withPermission("pvp.whitelist") .withUsage("/pvp whitelist remove ") - .withArguments(new PlayerArgument("Player")) + .withArguments(new OfflinePlayerArgument("Player")) .withHelp("Spieler aus Whitelist entfernen", "Du kannst damit Spieler aus deiner Whitelist entfernen."))) .withSubcommand(new CommandAPICommand("blacklist") .executesPlayer((sender, args)->{pvpList(sender, null,"blacklist","Blacklist", SHOW_ACTION);}) @@ -61,16 +63,16 @@ public class PvpCommand { .withUsage("/pvp blacklist ") .withHelp("Blacklist anzeigen", "Damit kannst du dir die Blacklist anzeigen. Alle die in der Blacklist sind können dich nur zurückschlagen.") .withSubcommand(new CommandAPICommand("add") - .executesPlayer((sender, args)->{pvpList(sender, (Player) args.get("Player"),"blacklist","Blacklist", ADD_ACTION);}) + .executesPlayer((sender, args)->{pvpList(sender, (OfflinePlayer) args.get("Player"),"blacklist","Blacklist", ADD_ACTION);}) .withPermission("pvp.blacklist") .withUsage("/pvp blacklist add ") - .withArguments(new PlayerArgument("Player")) + .withArguments(new OfflinePlayerArgument("Player")) .withHelp("Spieler zu Blacklist hinzufügen", "Du kannst damit Spieler zu deiner Blacklist hinzufügen.")) .withSubcommand(new CommandAPICommand("remove") - .executesPlayer((sender, args)->{pvpList(sender, (Player) args.get("Player"),"blacklist","Blacklist", REMOVE_ACTION);}) + .executesPlayer((sender, args)->{pvpList(sender, (OfflinePlayer) args.get("Player"),"blacklist","Blacklist", REMOVE_ACTION);}) .withPermission("pvp.blacklist") .withUsage("/pvp blacklist remove ") - .withArguments(new PlayerArgument("Player")) + .withArguments(new OfflinePlayerArgument("Player")) .withHelp("Spieler aus Blacklist entfernen", "Du kannst damit Spieler aus deiner Blacklist entfernen."))) .withSubcommand(new CommandAPICommand("fight") .executesPlayer((sender, args)->{pvpFight(sender, args, CHALLENGE_ACTION);}) @@ -129,7 +131,7 @@ public class PvpCommand { } - public static void pvpList(Player sender, Player ptarget, String key,String listName, int action) { + public static void pvpList(Player sender, OfflinePlayer ptarget, String key, String listName, int action) { //PvP Whitelist Command PersistentDataContainer pdc = sender.getPersistentDataContainer(); PersistentDataContainer pdcList = pdc.getOrDefault(new NamespacedKey(Pvptoggle.pvptoggle,key),PersistentDataType.TAG_CONTAINER,pdc.getAdapterContext().newPersistentDataContainer()); @@ -148,18 +150,18 @@ 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.getDisplayName() + ChatColor.RED + " ist schon in deiner " + listName); + sender.sendMessage(ChatColor.RED + "Der Spieler " + ptarget.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.getDisplayName() + ChatColor.GREEN + " wurde zu deiner "+listName+" hinzugefügt"); + sender.sendMessage(ChatColor.GREEN + ptarget.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.getDisplayName() + ChatColor.RED + " ist nicht in deiner "+listName); + sender.sendMessage(ChatColor.RED + "Der Spieler " + ptarget.getName() + ChatColor.RED + " ist nicht in deiner "+listName); }else{ pdcList.remove(new NamespacedKey(Pvptoggle.pvptoggle,ptarget.getUniqueId().toString())); - sender.sendMessage(ChatColor.GREEN + ptarget.getDisplayName() + ChatColor.GREEN + " wurde aus deiner "+listName+" entfernt"); + sender.sendMessage(ChatColor.GREEN + ptarget.getName() + ChatColor.GREEN + " wurde aus deiner "+listName+" entfernt"); } } else { sender.sendMessage("Fehler");