Merge pvpWhitelist and pvpBlacklist

pvpWhitelist and pvpBlacklist Methods were merged into pvpList Method for better maintanance
This commit is contained in:
skippyall
2023-08-26 21:40:52 +02:00
parent 54177410a1
commit a7f7888b53
@@ -14,75 +14,81 @@ import org.bukkit.persistence.PersistentDataType;
import java.util.UUID; import java.util.UUID;
public class PvpCommand { 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() { public static void createPvpCommand() {
//Create PVP-Command with Command-API //Create PVP-Command with Command-API
new CommandAPICommand("pvp") new CommandAPICommand("pvp")
.executesPlayer((sender, args)->{pvpInv(sender, args);}) .executesPlayer(PvpCommand::pvpInv)
.withPermission("pvp.inv.op") .withPermission("pvp.inv.op")
.withUsage("/pvp") .withUsage("/pvp")
.withHelp("PvP Menu", "Du kannst damit ein Menu öffnen, in dem du alles verwalten kannst.") .withHelp("PvP Menu", "Du kannst damit ein Menu öffnen, in dem du alles verwalten kannst.")
.withSubcommand(new CommandAPICommand("toggle") .withSubcommand(new CommandAPICommand("toggle")
.executesPlayer((sender, args)->{pvpToggle(sender, args);}) .executesPlayer(PvpCommand::pvpToggle)
.withPermission("pvp.toggle") .withPermission("pvp.toggle")
.withUsage("/pvp toggle") .withUsage("/pvp toggle")
.withHelp("PvP damage für sich an/auschalten.", "Du kannst damit an/ausschalten, ob du geschlagen werden kannst.")) .withHelp("PvP damage für sich an/auschalten.", "Du kannst damit an/ausschalten, ob du geschlagen werden kannst."))
.withSubcommand(new CommandAPICommand("ultra") .withSubcommand(new CommandAPICommand("ultra")
.executesPlayer((sender, args)->{pvpUltra(sender, args);}) .executesPlayer(PvpCommand::pvpUltra)
.withPermission("pvp.ultra") .withPermission("pvp.ultra")
.withUsage("/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.")) .withHelp("Schutz + Schutz gegen ausversehen angreifen", "Du kannst damit an/ausschalten, ob du geschlagen werden kannst und andere schlagen kannst."))
.withSubcommand(new CommandAPICommand("whitelist") .withSubcommand(new CommandAPICommand("whitelist")
.executesPlayer((sender, args)->{pvpWhitelist(sender, args, 1);}) .executesPlayer((sender, args)->{pvpList(sender, args,"whitelist","Whitelist", SHOW_ACTION);})
.withPermission("pvp.whitelist") .withPermission("pvp.whitelist")
.withUsage("/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.") .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") .withSubcommand(new CommandAPICommand("add")
.executesPlayer((sender, args)->{pvpWhitelist(sender, args, 2);}) .executesPlayer((sender, args)->{pvpList(sender, args,"whitelist","Whitelist", ADD_ACTION);})
.withPermission("pvp.whitelist") .withPermission("pvp.whitelist")
.withUsage("/pvp whitelist add <Player>") .withUsage("/pvp whitelist add <Player>")
.withArguments(new PlayerArgument("Player")) .withArguments(new PlayerArgument("Player"))
.withHelp("Spieler zu Whitelist hinzufügen", "Du kannst damit Spieler zu deiner Whitelist hinzufügen.")) .withHelp("Spieler zu Whitelist hinzufügen", "Du kannst damit Spieler zu deiner Whitelist hinzufügen."))
.withSubcommand(new CommandAPICommand("remove") .withSubcommand(new CommandAPICommand("remove")
.executesPlayer((sender, args)->{pvpWhitelist(sender, args, 3);}) .executesPlayer((sender, args)->{pvpList(sender, args,"whitelist","Whitelist", REMOVE_ACTION);})
.withPermission("pvp.whitelist") .withPermission("pvp.whitelist")
.withUsage("/pvp whitelist remove <Player>") .withUsage("/pvp whitelist remove <Player>")
.withArguments(new PlayerArgument("Player")) .withArguments(new PlayerArgument("Player"))
.withHelp("Spieler aus Whitelist entfernen", "Du kannst damit Spieler aus deiner Whitelist entfernen."))) .withHelp("Spieler aus Whitelist entfernen", "Du kannst damit Spieler aus deiner Whitelist entfernen.")))
.withSubcommand(new CommandAPICommand("blacklist") .withSubcommand(new CommandAPICommand("blacklist")
.executesPlayer((sender, args)->{pvpBlacklist(sender, args, 1);}) .executesPlayer((sender, args)->{pvpList(sender, args,"blacklist","Blacklist", SHOW_ACTION);})
.withPermission("pvp.blacklist") .withPermission("pvp.blacklist")
.withUsage("/pvp blacklist <Player>") .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.") .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") .withSubcommand(new CommandAPICommand("add")
.executesPlayer((sender, args)->{pvpBlacklist(sender, args, 2);}) .executesPlayer((sender, args)->{pvpList(sender, args,"blacklist","Blacklist", ADD_ACTION);})
.withPermission("pvp.blacklist") .withPermission("pvp.blacklist")
.withUsage("/pvp blacklist add <Player>") .withUsage("/pvp blacklist add <Player>")
.withArguments(new PlayerArgument("Player")) .withArguments(new PlayerArgument("Player"))
.withHelp("Spieler zu Blacklist hinzufügen", "Du kannst damit Spieler zu deiner Blacklist hinzufügen.")) .withHelp("Spieler zu Blacklist hinzufügen", "Du kannst damit Spieler zu deiner Blacklist hinzufügen."))
.withSubcommand(new CommandAPICommand("remove") .withSubcommand(new CommandAPICommand("remove")
.executesPlayer((sender, args)->{pvpBlacklist(sender, args, 3);}) .executesPlayer((sender, args)->{pvpList(sender, args,"blacklist","Blacklist", REMOVE_ACTION);})
.withPermission("pvp.blacklist") .withPermission("pvp.blacklist")
.withUsage("/pvp blacklist remove <Player>") .withUsage("/pvp blacklist remove <Player>")
.withArguments(new PlayerArgument("Player")) .withArguments(new PlayerArgument("Player"))
.withHelp("Spieler aus Blacklist entfernen", "Du kannst damit Spieler aus deiner Blacklist entfernen."))) .withHelp("Spieler aus Blacklist entfernen", "Du kannst damit Spieler aus deiner Blacklist entfernen.")))
.withSubcommand(new CommandAPICommand("fight") .withSubcommand(new CommandAPICommand("fight")
.executesPlayer((sender, args)->{pvpFight(sender, args, 0);}) .executesPlayer((sender, args)->{pvpFight(sender, args, CHALLENGE_ACTION);})
.withPermission("pvp.fight") .withPermission("pvp.fight")
.withUsage("/pvp fight <Player>") .withUsage("/pvp fight <Player>")
.withArguments(new PlayerArgument("Player")) .withArguments(new PlayerArgument("Player"))
.withHelp("Spieler zu einem Kampf herrausfordern", "Man kann sich schlagen bis einer stirbt, der der stirbt verliert nichts.") .withHelp("Spieler zu einem Kampf herausfordern", "Man kann sich schlagen bis einer stirbt, der der stirbt verliert nichts.")
.withSubcommand(new CommandAPICommand("accept") .withSubcommand(new CommandAPICommand("accept")
.executesPlayer((sender, args)->{pvpFight(sender, args, 1);}) .executesPlayer((sender, args)->{pvpFight(sender, args, ACCEPT_ACTION);})
.withPermission("pvp.fight") .withPermission("pvp.fight")
.withUsage("/pvp fight accept") .withUsage("/pvp fight accept")
.withHelp("Herrausforderung annehmen", "Letzte Herrausforderung annehmen")) .withHelp("Herausforderung annehmen", "Letzte Herrausforderung annehmen"))
.withSubcommand(new CommandAPICommand("deny") .withSubcommand(new CommandAPICommand("deny")
.executesPlayer((sender, args)->{pvpFight(sender, args, 2);}) .executesPlayer((sender, args)->{pvpFight(sender, args, DENY_ACTION);})
.withPermission("pvp.fight") .withPermission("pvp.fight")
.withUsage("/pvp fight deny") .withUsage("/pvp fight deny")
.withHelp("Herrausforderung ablehnen", "Letzte Herrausforderung ablehnen"))) .withHelp("Herausforderung ablehnen", "Letzte Herrausforderung ablehnen")))
.register(); .register();
} }
@@ -122,113 +128,44 @@ public class PvpCommand {
} }
public static void pvpList(Player sender, CommandArguments args, String key,String listName, int action) {
public static void pvpWhitelist(Player sender, CommandArguments args, int action) {
//PvP Whitelist Command //PvP Whitelist Command
Player pargs = (Player) args.get("Player");
PersistentDataContainer pdc = sender.getPersistentDataContainer(); 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) { if (action == 1) {
//anzeigen //anzeigen
if (pdc.has(whitelist, PersistentDataType.TAG_CONTAINER)) { if(!pdcList.isEmpty()){
PersistentDataContainer pdcwhitelist = pdc.get(whitelist, PersistentDataType.TAG_CONTAINER);
if(pdcwhitelist != null) {
int i = 0; int i = 0;
for (NamespacedKey whitelistkey:pdcwhitelist.getKeys()) { for (NamespacedKey uuid:pdcList.getKeys()) {
i++; i++;
sender.sendMessage(ChatColor.BLUE + "" + i + ". " + ChatColor.DARK_BLUE + "" + Bukkit.getPlayer(UUID.fromString(pdcwhitelist.get(whitelistkey, PersistentDataType.STRING))).getDisplayName()); sender.sendMessage(""+ChatColor.DARK_BLUE + i + ". " + ChatColor.BLUE +Bukkit.getPlayer(UUID.fromString(uuid.getKey())).getName());
} }
} else { } else {
sender.sendMessage("Deine Whitelist ist leer"); sender.sendMessage("Deine "+listName+ "ist leer");
} }
} else {
sender.sendMessage("Deine Whitelist ist leer");
}
sender.sendMessage(ChatColor.RED + "Die Whitelist funktioniert aktuell nicht");
} else if (action == 2) { } else if (action == 2) {
//hinzufügen //hinzufügen
if (!pdc.has(whitelist, PersistentDataType.TAG_CONTAINER)) { if (pdcList.has(new NamespacedKey(Pvptoggle.pvptoggle,((Player)args.get("Player")).getUniqueId().toString()),PersistentDataType.TAG_CONTAINER)) {
//pdc erstellen 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) { } else if (action == 3) {
//entfernen //entfernen
if (!pdc.has(whitelist, PersistentDataType.TAG_CONTAINER)) { 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 Whitelist"); sender.sendMessage(ChatColor.RED + "Der Spieler" + args.get("Player") + "ist nicht in deiner "+listName);
return; }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 { } else {
sender.sendMessage("Fehler"); 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 //PvP Fight Command
if (action == 0) { if (action == 0) {