Allow offline Players

This commit is contained in:
skippyall
2023-08-31 10:59:32 +02:00
parent 8708c0db24
commit c1612a6d80
2 changed files with 17 additions and 14 deletions
@@ -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));
@@ -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 <Player>")
.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 <Player>")
.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 <Player>")
.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 <Player>")
.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 <Player>")
.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");