177 lines
8.9 KiB
Java
177 lines
8.9 KiB
Java
package benkralex.pvptoggle;
|
|
|
|
import dev.jorel.commandapi.CommandAPI;
|
|
import dev.jorel.commandapi.CommandAPICommand;
|
|
import dev.jorel.commandapi.executors.CommandArguments;
|
|
import org.bukkit.NamespacedKey;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.persistence.PersistentDataContainer;
|
|
import org.bukkit.persistence.PersistentDataType;
|
|
|
|
public class PvpCommand {
|
|
public static void createPvpCommand() {
|
|
//Create PVP-Command with Command-API
|
|
new CommandAPICommand("pvp")
|
|
.executesPlayer((sender, args)->{pvpInv(sender, args);})
|
|
.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);})
|
|
.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);})
|
|
.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);})
|
|
.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);})
|
|
.withPermission("pvp.whitelist")
|
|
.withUsage("/pvp whitelist add <Player>")
|
|
.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);})
|
|
.withPermission("pvp.whitelist")
|
|
.withUsage("/pvp whitelist remove <Player>")
|
|
.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);})
|
|
.withPermission("pvp.blacklist")
|
|
.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)->{pvpBlacklist(sender, args, 2);})
|
|
.withPermission("pvp.blacklist")
|
|
.withUsage("/pvp blacklist add <Player>")
|
|
.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);})
|
|
.withPermission("pvp.blacklist")
|
|
.withUsage("/pvp blacklist remove <Player>")
|
|
.withArguments(new PlayerArgument("Player"))
|
|
.withHelp("Spieler aus Blacklist entfernen", "Du kannst damit Spieler aus deiner Blacklist entfernen.")))
|
|
.register();
|
|
}
|
|
|
|
|
|
|
|
public static void pvpInv(Player sender, CommandArguments args) {
|
|
sender.openInventory(InventoryMenu.pvpMenu(sender));
|
|
}
|
|
|
|
|
|
|
|
public static void pvpToggle(Player sender, CommandArguments args) {
|
|
NamespacedKey pvptoggle = new NamespacedKey(Pvptoggle.pvptoggle, "pvptoggle");
|
|
PersistentDataContainer pdc = sender.getPersistentDataContainer();
|
|
if (pdc.has(pvptoggle, PersistentDataType.BOOLEAN)) {
|
|
pdc.set(pvptoggle, PersistentDataType.BOOLEAN, !pdc.get(pvptoggle, PersistentDataType.BOOLEAN));
|
|
sender.sendMessage("Dein PvP-Schutz ist jetzt " + (pdc.get(pvptoggle, PersistentDataType.BOOLEAN)?"an":"aus"));
|
|
} else {
|
|
pdc.set(pvptoggle, PersistentDataType.BOOLEAN, Config.getPvpProt());
|
|
sender.sendMessage("Dein PvP-Schutz ist jetzt " + (pdc.get(pvptoggle, "pvptoggle"), PersistentDataType.BOOLEAN)?"an":"aus"));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public static void pvpUltra(Player sender, CommandArguments args) {
|
|
//PvP Ultra Command
|
|
NamespacedKey ultra = new NamespacedKey(Pvptoggle.pvptoggle, "ultra");
|
|
PersistentDataContainer pdc = sender.getPersistentDataContainer();
|
|
if (pdc.has(ultra, PersistentDataType.BOOLEAN)) {
|
|
pdc.set(ultra, PersistentDataType.BOOLEAN, !pdc.get(ultra, PersistentDataType.BOOLEAN));
|
|
sender.sendMessage("PvP-Ultra ist für dich jetzt " + (pdc.get(pvptoggle, PersistentDataType.BOOLEAN)?"an":"aus"));
|
|
} else {
|
|
pdc.set(ultra, PersistentDataContainer.BOOLEAN, true);
|
|
sender.sendMessage("PvP-Ultra ist für dich jetzt " + (pdc.get(pvptoggle, PersistentDataType.BOOLEAN)?"an":"aus"));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public static void pvpWhitelist(Player sender, CommandArguments args, Int action) {
|
|
//PvP Whitelist Command
|
|
PersistentDataContainer pdc = sender.getPersistentDataContainer();
|
|
NamespacedKey whitelist = new NamespacedKey(Pvptoggle.pvptoggle, "whitelist");
|
|
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()) {
|
|
sender.sendMessage(ChatColor.LIGHT_GREEN + i + ". " + ChatColor.GREEN + pdcwhitelist.get(whitelistkey, PersistentDataType.STRING));
|
|
}
|
|
} else {
|
|
sender.sendMessage("Deine Whitelist ist leer");
|
|
}
|
|
} else {
|
|
sender.sendMessage("Deine Whitelist ist leer");
|
|
}
|
|
//sender.sendMessage("Du kannst dir die Whitelist nicht anzeigen");
|
|
} else if (action == 2) {
|
|
//hinzufügen
|
|
if (pdc.has(whitelist, PersistentDataType.TAG_CONTAINER)) {
|
|
PersistentDataContainer pdcwhitelist = pdc.get(whitelist, PersistentDataType.TAG_CONTAINER);
|
|
|
|
}
|
|
sender.sendMessage("Du kannst " + args.get("Player") + " nicht zur der Whitelist hinzufügen");
|
|
} else if (action == 3) {
|
|
//entfernen
|
|
/*if (pdc.has(whitelist, PersistentDataType.TAG_CONTAINER)) {
|
|
|
|
} else {
|
|
|
|
}*/
|
|
if (args[0] instanceof player) {
|
|
Util.pdcTagContaineradd(sender, whitelist, args[0], true);
|
|
} else {
|
|
sender.sendMessage("'" + args.get("Player").getName() + "' ist kein Spieler")
|
|
}
|
|
sender.sendMessage("Du kannst " + args.get("Player").getName() + " nicht aus der Whitelist entfernen");
|
|
} else {
|
|
sender.sendMessage("Fehler");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public static void pvpBlacklist(Player sender, CommandArguments args, Int action) {
|
|
//PvP Blacklist Command
|
|
PersistentDataContainer pdc = sender.getPersistentDataContainer();
|
|
NamespacedKey blacklist = new NamespacedKey(Pvptoggle.pvptoggle, "blacklist");
|
|
if (action == 1) {
|
|
//anzeigen
|
|
if (pdc.has(blacklist, PersistentDataType.TAG_CONTAINER)) {
|
|
//
|
|
}
|
|
sender.sendMessage("Du kannst dir die Blacklist nicht anzeigen");
|
|
} else if (action == 2) {
|
|
//hinzufügen
|
|
if (pdc.has(blacklist, PersistentDataType.TAG_CONTAINER)) {
|
|
//
|
|
}
|
|
sender.sendMessage("Du kannst " + args.get("Player").getName() + " nicht zur der Blacklist hinzufügen");
|
|
} else if (action == 3) {
|
|
//entfernen
|
|
if (pdc.has(blacklist, PersistentDataType.TAG_CONTAINER)) {
|
|
//
|
|
}
|
|
sender.sendMessage("Du kannst " + args.get("Player").getName() + " nicht aus der Blacklist entfernen");
|
|
} else {
|
|
sender.sendMessage("Fehler");
|
|
}
|
|
}
|
|
}
|