From a7f7888b53b80fad7497ca79f5f880e30209f435 Mon Sep 17 00:00:00 2001 From: skippyall <121978267+skippyall@users.noreply.github.com> Date: Sat, 26 Aug 2023 21:40:52 +0200 Subject: [PATCH] Merge pvpWhitelist and pvpBlacklist pvpWhitelist and pvpBlacklist Methods were merged into pvpList Method for better maintanance --- .../java/benkralex/pvptoggle/PvpCommand.java | 173 ++++++------------ 1 file changed, 55 insertions(+), 118 deletions(-) diff --git a/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java b/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java index d185bf6..09c9f19 100644 --- a/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java +++ b/pvptogglepluginworkspace/src/main/java/benkralex/pvptoggle/PvpCommand.java @@ -14,75 +14,81 @@ import org.bukkit.persistence.PersistentDataType; import java.util.UUID; - public class PvpCommand { + private static final int SHOW_ACTION=1; + private static final int ADD_ACTION=2; + private static final int REMOVE_ACTION=3; + private static final int CHALLENGE_ACTION=0; + private static final int ACCEPT_ACTION=1; + private static final int DENY_ACTION=2; + public static void createPvpCommand() { //Create PVP-Command with Command-API new CommandAPICommand("pvp") - .executesPlayer((sender, args)->{pvpInv(sender, args);}) + .executesPlayer(PvpCommand::pvpInv) .withPermission("pvp.inv.op") .withUsage("/pvp") .withHelp("PvP Menu", "Du kannst damit ein Menu öffnen, in dem du alles verwalten kannst.") .withSubcommand(new CommandAPICommand("toggle") - .executesPlayer((sender, args)->{pvpToggle(sender, args);}) + .executesPlayer(PvpCommand::pvpToggle) .withPermission("pvp.toggle") .withUsage("/pvp toggle") .withHelp("PvP damage für sich an/auschalten.", "Du kannst damit an/ausschalten, ob du geschlagen werden kannst.")) .withSubcommand(new CommandAPICommand("ultra") - .executesPlayer((sender, args)->{pvpUltra(sender, args);}) + .executesPlayer(PvpCommand::pvpUltra) .withPermission("pvp.ultra") .withUsage("/pvp ultra") .withHelp("Schutz + Schutz gegen ausversehen angreifen", "Du kannst damit an/ausschalten, ob du geschlagen werden kannst und andere schlagen kannst.")) .withSubcommand(new CommandAPICommand("whitelist") - .executesPlayer((sender, args)->{pvpWhitelist(sender, args, 1);}) + .executesPlayer((sender, args)->{pvpList(sender, args,"whitelist","Whitelist", SHOW_ACTION);}) .withPermission("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.") .withSubcommand(new CommandAPICommand("add") - .executesPlayer((sender, args)->{pvpWhitelist(sender, args, 2);}) + .executesPlayer((sender, args)->{pvpList(sender, args,"whitelist","Whitelist", ADD_ACTION);}) .withPermission("pvp.whitelist") .withUsage("/pvp whitelist add ") .withArguments(new PlayerArgument("Player")) .withHelp("Spieler zu Whitelist hinzufügen", "Du kannst damit Spieler zu deiner Whitelist hinzufügen.")) .withSubcommand(new CommandAPICommand("remove") - .executesPlayer((sender, args)->{pvpWhitelist(sender, args, 3);}) + .executesPlayer((sender, args)->{pvpList(sender, args,"whitelist","Whitelist", REMOVE_ACTION);}) .withPermission("pvp.whitelist") .withUsage("/pvp whitelist remove ") .withArguments(new PlayerArgument("Player")) .withHelp("Spieler aus Whitelist entfernen", "Du kannst damit Spieler aus deiner Whitelist entfernen."))) .withSubcommand(new CommandAPICommand("blacklist") - .executesPlayer((sender, args)->{pvpBlacklist(sender, args, 1);}) + .executesPlayer((sender, args)->{pvpList(sender, args,"blacklist","Blacklist", SHOW_ACTION);}) .withPermission("pvp.blacklist") .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)->{pvpBlacklist(sender, args, 2);}) + .executesPlayer((sender, args)->{pvpList(sender, args,"blacklist","Blacklist", ADD_ACTION);}) .withPermission("pvp.blacklist") .withUsage("/pvp blacklist add ") .withArguments(new PlayerArgument("Player")) .withHelp("Spieler zu Blacklist hinzufügen", "Du kannst damit Spieler zu deiner Blacklist hinzufügen.")) .withSubcommand(new CommandAPICommand("remove") - .executesPlayer((sender, args)->{pvpBlacklist(sender, args, 3);}) + .executesPlayer((sender, args)->{pvpList(sender, args,"blacklist","Blacklist", REMOVE_ACTION);}) .withPermission("pvp.blacklist") .withUsage("/pvp blacklist remove ") .withArguments(new PlayerArgument("Player")) .withHelp("Spieler aus Blacklist entfernen", "Du kannst damit Spieler aus deiner Blacklist entfernen."))) - .withSubcommand(new CommandAPICommand("fight") - .executesPlayer((sender, args)->{pvpFight(sender, args, 0);}) - .withPermission("pvp.fight") - .withUsage("/pvp fight ") - .withArguments(new PlayerArgument("Player")) - .withHelp("Spieler zu einem Kampf herrausfordern", "Man kann sich schlagen bis einer stirbt, der der stirbt verliert nichts.") - .withSubcommand(new CommandAPICommand("accept") - .executesPlayer((sender, args)->{pvpFight(sender, args, 1);}) - .withPermission("pvp.fight") - .withUsage("/pvp fight accept") - .withHelp("Herrausforderung annehmen", "Letzte Herrausforderung annehmen")) - .withSubcommand(new CommandAPICommand("deny") - .executesPlayer((sender, args)->{pvpFight(sender, args, 2);}) - .withPermission("pvp.fight") - .withUsage("/pvp fight deny") - .withHelp("Herrausforderung ablehnen", "Letzte Herrausforderung ablehnen"))) + .withSubcommand(new CommandAPICommand("fight") + .executesPlayer((sender, args)->{pvpFight(sender, args, CHALLENGE_ACTION);}) + .withPermission("pvp.fight") + .withUsage("/pvp fight ") + .withArguments(new PlayerArgument("Player")) + .withHelp("Spieler zu einem Kampf herausfordern", "Man kann sich schlagen bis einer stirbt, der der stirbt verliert nichts.") + .withSubcommand(new CommandAPICommand("accept") + .executesPlayer((sender, args)->{pvpFight(sender, args, ACCEPT_ACTION);}) + .withPermission("pvp.fight") + .withUsage("/pvp fight accept") + .withHelp("Herausforderung annehmen", "Letzte Herrausforderung annehmen")) + .withSubcommand(new CommandAPICommand("deny") + .executesPlayer((sender, args)->{pvpFight(sender, args, DENY_ACTION);}) + .withPermission("pvp.fight") + .withUsage("/pvp fight deny") + .withHelp("Herausforderung ablehnen", "Letzte Herrausforderung ablehnen"))) .register(); } @@ -121,115 +127,46 @@ public class PvpCommand { } } - - - public static void pvpWhitelist(Player sender, CommandArguments args, int action) { + + public static void pvpList(Player sender, CommandArguments args, String key,String listName, int action) { //PvP Whitelist Command - Player pargs = (Player) args.get("Player"); PersistentDataContainer pdc = sender.getPersistentDataContainer(); - NamespacedKey whitelist = new NamespacedKey(Pvptoggle.pvptoggle, "whitelist"); + PersistentDataContainer pdcList = pdc.getOrDefault(new NamespacedKey(Pvptoggle.pvptoggle,key),PersistentDataType.TAG_CONTAINER,pdc.getAdapterContext().newPersistentDataContainer()); if (action == 1) { //anzeigen - if (pdc.has(whitelist, PersistentDataType.TAG_CONTAINER)) { - PersistentDataContainer pdcwhitelist = pdc.get(whitelist, PersistentDataType.TAG_CONTAINER); - if(pdcwhitelist != null) { - int i = 0; - for (NamespacedKey whitelistkey:pdcwhitelist.getKeys()) { - i++; - sender.sendMessage(ChatColor.BLUE + "" + i + ". " + ChatColor.DARK_BLUE + "" + Bukkit.getPlayer(UUID.fromString(pdcwhitelist.get(whitelistkey, PersistentDataType.STRING))).getDisplayName()); - } - } else { - sender.sendMessage("Deine Whitelist ist leer"); - } + if(!pdcList.isEmpty()){ + int i = 0; + for (NamespacedKey uuid:pdcList.getKeys()) { + i++; + sender.sendMessage(""+ChatColor.DARK_BLUE + i + ". " + ChatColor.BLUE +Bukkit.getPlayer(UUID.fromString(uuid.getKey())).getName()); + } } else { - sender.sendMessage("Deine Whitelist ist leer"); - } - sender.sendMessage(ChatColor.RED + "Die Whitelist funktioniert aktuell nicht"); + sender.sendMessage("Deine "+listName+ "ist leer"); + } } else if (action == 2) { //hinzufügen - if (!pdc.has(whitelist, PersistentDataType.TAG_CONTAINER)) { - //pdc erstellen + if (pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,((Player)args.get("Player")).getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) { + sender.sendMessage(ChatColor.RED + "Der Spieler" + args.get("Player") + "ist schon in deiner "+listName); + }else{ + pdcList.set(new NamespacedKey(Pvptoggle.pvptoggle,((Player)args.get("Player")).getUniqueId().toString()),PersistentDataType.TAG_CONTAINER,pdcList.getAdapterContext().newPersistentDataContainer()); + sender.sendMessage(ChatColor.GREEN + ((Player)args.get("Player")).getDisplayName() + "wurde zu deiner "+listName+" hinzugefügt"); } - PersistentDataContainer pdcwhitelist = pdc.get(whitelist, PersistentDataType.TAG_CONTAINER); - pdcwhitelist.set(new NamespacedKey(Pvptoggle.pvptoggle, pargs.getUniqueId().toString()), PersistentDataType.STRING, pargs.getUniqueId().toString()); - sender.sendMessage(ChatColor.GREEN + pargs.getDisplayName() + "wurde zu deiner Whitelist hinzugefügt"); - - sender.sendMessage(ChatColor.RED + "Die Whitelist funktioniert aktuell nicht"); } else if (action == 3) { //entfernen - if (!pdc.has(whitelist, PersistentDataType.TAG_CONTAINER)) { - sender.sendMessage(ChatColor.RED + "Der Spieler" + args.get("Player") + "ist nicht in deiner Whitelist"); - return; + if (!pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,((Player)args.get("Player")).getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) { + sender.sendMessage(ChatColor.RED + "Der Spieler" + args.get("Player") + "ist nicht in deiner "+listName); + }else{ + pdcList.remove(new NamespacedKey(Pvptoggle.pvptoggle,((Player)args.get("Player")).getUniqueId().toString())); + sender.sendMessage(ChatColor.GREEN + ((Player)args.get("Player")).getDisplayName() + "wurde aus deiner "+listName+" entfernt"); } - PersistentDataContainer whitelistpdc = pdc.get(whitelist, PersistentDataType.TAG_CONTAINER); - if (whitelistpdc.has(new NamespacedKey(Pvptoggle.pvptoggle, pargs.getUniqueId().toString()), PersistentDataType.STRING)) { - whitelistpdc.remove(new NamespacedKey(Pvptoggle.pvptoggle, pargs.getUniqueId().toString())); - sender.sendMessage(ChatColor.GREEN + pargs.getDisplayName() + "wurde aus deiner Whitelist entfernt"); - } else { - sender.sendMessage(ChatColor.RED + pargs.getDisplayName() + "ist nicht in deiner Whitelist"); - } - - sender.sendMessage(ChatColor.RED + "Die Whitelist funktioniert aktuell nicht"); } else { sender.sendMessage("Fehler"); } + pdc.set(new NamespacedKey(Pvptoggle.pvptoggle,key),PersistentDataType.TAG_CONTAINER,pdcList); } - - - public static void pvpBlacklist(Player sender, CommandArguments args, int action) { - //PvP Blacklist Command - Player pargs = (Player) args.get("Player"); - PersistentDataContainer pdc = sender.getPersistentDataContainer(); - NamespacedKey blacklist = new NamespacedKey(Pvptoggle.pvptoggle, "blacklist"); - if (action == 1) { - //anzeigen - if (pdc.has(blacklist, PersistentDataType.TAG_CONTAINER)) { - PersistentDataContainer pdcblacklist = pdc.get(blacklist, PersistentDataType.TAG_CONTAINER); - if(pdcblacklist != null) { - int i = 0; - for (NamespacedKey blacklistkey:pdcblacklist.getKeys()) { - i++; - sender.sendMessage(ChatColor.BLUE + "" + i + ". " + ChatColor.BLUE + "" + Bukkit.getPlayer(UUID.fromString(pdcblacklist.get(blacklistkey, PersistentDataType.STRING))).getDisplayName()); - } - } else { - sender.sendMessage("Deine Blacklist ist leer"); - } - } else { - sender.sendMessage("Deine Blacklist ist leer"); - } - sender.sendMessage(ChatColor.RED + "Die Blacklist funktioniert aktuell nicht"); - } else if (action == 2) { - //hinzufügen - if (!pdc.has(blacklist, PersistentDataType.TAG_CONTAINER)) { - //pdc erstellen - } - PersistentDataContainer pdcblacklist = pdc.get(blacklist, PersistentDataType.TAG_CONTAINER); - pdcblacklist.set(new NamespacedKey(Pvptoggle.pvptoggle, pargs.getUniqueId().toString()), PersistentDataType.STRING, pargs.getUniqueId().toString()); - sender.sendMessage(ChatColor.GREEN + pargs.getDisplayName() + "wurde zu deiner Blacklist hinzugefügt"); - - sender.sendMessage(ChatColor.RED + "Die Blacklist funktioniert aktuell nicht"); - } else if (action == 3) { - //entfernen - if (!pdc.has(blacklist, PersistentDataType.TAG_CONTAINER)) { - sender.sendMessage(ChatColor.RED + "Der Spieler" + args.get("Player") + "ist nicht in deiner Blacklist"); - return; - } - PersistentDataContainer blacklistpdc = pdc.get(blacklist, PersistentDataType.TAG_CONTAINER); - if (blacklistpdc.has(new NamespacedKey(Pvptoggle.pvptoggle, pargs.getUniqueId().toString()), PersistentDataType.STRING)) { - blacklistpdc.remove(new NamespacedKey(Pvptoggle.pvptoggle, pargs.getUniqueId().toString())); - sender.sendMessage(ChatColor.GREEN + pargs.getDisplayName() + "wurde aus deiner Blacklist entfernt"); - } else { - sender.sendMessage(ChatColor.RED + pargs.getDisplayName() + "ist nicht in deiner Blacklist"); - } - - sender.sendMessage(ChatColor.RED + "Die Blacklist funktioniert aktuell nicht"); - } else { - sender.sendMessage("Fehler"); - } - } - public static void pvpFight(Player sender, CommandArguments args, int action) { + public static void pvpFight(Player sender, CommandArguments args, int action) { //PvP Fight Command if (action == 0) { //Kampf herrausgefordert