Bug fixes

This commit is contained in:
Benkralex
2023-08-26 08:15:48 +02:00
parent 4680e0442f
commit 7babcad82a
6 changed files with 130 additions and 93 deletions
@@ -7,20 +7,20 @@ import java.time.Instant;
public class Config {
privat FileConfiguration config = Pvptoggle.pvptoggle.getConfig();
private static FileConfiguration config = Pvptoggle.pvptoggle.getConfig();
public static void createConfig() {
config.options().copyDefaults(true);
config.options().copyDefaults(true);
config.addDefault("pvp-time-hit-back", 60);
config.addDefault("default-pvp-protection", true);
Pvptoggle.pvptoggle.saveConfig();
}
public static int getPvpTime() {
return config.getInt("pvp-time-hit-back");
return config.getInt("pvp-time-hit-back");
}
public static int getPvpProt() {
public static boolean getPvpProt() {
return config.getBoolean("default-pvp-protection");
}
@@ -1,43 +1,50 @@
package benkralex.pvptoggle;
import org.bukkit.NamespacedKey;
import benkralex.pvptoggle.InventoryMenu;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
public class InventoryListener implements Listener{
@EventHandler
public void onPvpMenuInteract(InventoryClickEvent e) {
Player p = e.getWhoClicked();
Inventory inv = e.getClickedInventory();
Player p = (Player) e.getWhoClicked();
Inventory inv = e.getClickedInventory();
String invtitle = e.getView().getTitle();
PersistentDataContainer pdc = p.getPersistentDataContainer();
NamespacedKey pvptoggle = new NamespacedKey(Pvptoggle.pvptoggle, "pvptoggle");
NamespacedKey ultra = new NamespacedKey(Pvptoggle.pvptoggle, "ultra");
if (invtitle.equals("PvP-Menu")) {
event.setCancelled(true);
if (event.getCurrentItem() != null) {
e.setCancelled(true);
if (e.getCurrentItem() != null) {
switch (e.getCurrentItem().getItemMeta().getDisplayName()) {
case "Inventar schließen":
p.closeInventory();
break;
case "Ultra an/aus schalten":
multra.setDisplayName("Ultra an/aus schalten");
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"));
p.sendMessage("PvP-Ultra ist für dich jetzt " + (pdc.get(pvptoggle, PersistentDataType.BOOLEAN)?"an":"aus"));
inv.setItem(12, InventoryMenu.getMenuItem(1, p));
} else {
pdc.set(ultra, PersistentDataContainer.BOOLEAN, true);
sender.sendMessage("PvP-Ultra ist für dich jetzt " + (pdc.get(pvptoggle, PersistentDataType.BOOLEAN)?"an":"aus"));
pdc.set(ultra, PersistentDataType.BOOLEAN, true);
p.sendMessage("PvP-Ultra ist für dich jetzt " + (pdc.get(pvptoggle, PersistentDataType.BOOLEAN)?"an":"aus"));
inv.setItem(12, InventoryMenu.getMenuItem(1, p));
}
break;
case "PvP-Schutz an/aus schalten":
mtoggle.setDisplayName("PvP-Schutz an/aus schalten");
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"));
p.sendMessage("Dein PvP-Schutz ist jetzt " + (pdc.get(pvptoggle, PersistentDataType.BOOLEAN)?"an":"aus"));
inv.setItem(10, InventoryMenu.getMenuItem(0, p));
} else {
pdc.set(pvptoggle, PersistentDataType.BOOLEAN, Config.getPvpProt());
sender.sendMessage("Dein PvP-Schutz ist jetzt " + (pdc.get(pvptoggle, "pvptoggle"), PersistentDataType.BOOLEAN)?"an":"aus"));
p.sendMessage("Dein PvP-Schutz ist jetzt " + (pdc.get(pvptoggle, PersistentDataType.BOOLEAN)?"an":"aus"));
inv.setItem(10, InventoryMenu.getMenuItem(0, p));
}
break;
@@ -55,7 +62,7 @@ public class InventoryListener implements Listener{
}
}
} else if (invtitle.equals("Whitelist-Menu")) {
if (event.getCurrentItem() != null) {
if (e.getCurrentItem() != null) {
switch (e.getCurrentItem().getItemMeta().getDisplayName()) {
case "Inventar schließen":
p.closeInventory();
@@ -67,7 +74,7 @@ public class InventoryListener implements Listener{
}
}
} else if (invtitle.equals("Blacklist-Menu")) {
if (event.getCurrentItem() != null) {
if (e.getCurrentItem() != null) {
switch (e.getCurrentItem().getItemMeta().getDisplayName()) {
case "Inventar schließen":
p.closeInventory();
@@ -79,7 +86,7 @@ public class InventoryListener implements Listener{
}
}
} else if (invtitle.equals("Operator-Menu")) {
if (event.getCurrentItem() != null) {
if (e.getCurrentItem() != null) {
switch (e.getCurrentItem().getItemMeta().getDisplayName()) {
case "Inventar schließen":
p.closeInventory();
@@ -90,21 +97,21 @@ public class InventoryListener implements Listener{
break;
case "Standard PvP-Schutz an/aus schalten":
Config.setPvpProt(!Config.getPvpProt());
inv.set(11, InventoryMenu.getMenuItem(8));
inv.setItem(11, InventoryMenu.getMenuItem(8, p));
break;
case "Zeit um zurückzuschlagen erhöhen":
if (e.isRightClick()) {
Config.setPvpTime(getPvpTime() + 1);
Config.setPvpTime(Config.getPvpTime() + 1);
} else if (e.isLeftClick()) {
Config.setPvpTime(getPvpTime() + 10);
Config.setPvpTime(Config.getPvpTime() + 10);
}
inv.setItem(15, InventoryMenu.getMenuItem(9));
inv.setItem(15, InventoryMenu.getMenuItem(9, p));
break;
case "Zeit um zurückzuschlagen erniedrigen":
if (e.isRightClick()) {
Config.setPvpTime(getPvpTime() - 1);
Config.setPvpTime(Config.getPvpTime() - 1);
} else if (e.isLeftClick()) {
Config.setPvpTime(getPvpTime() - 10);
Config.setPvpTime(Config.getPvpTime() - 10);
}
inv.setItem(15, InventoryMenu.getMenuItem(9, p));
break;
@@ -1,6 +1,20 @@
package benkralex.pvptoggle;
import benkralex.pvptoggle.Config;
import benkralex.pvptoggle.Pvptoggle;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataType;
import java.util.ArrayList;
import java.util.List;
public class InventoryMenu {
public static final int PVP_TOGGLE=0;
@@ -17,37 +31,41 @@ public class InventoryMenu {
public static final int PVP_TIME_MINUS=11;
public static ItemStack getMenuItem(int i, Player p) {
switch i {
List<String> lore = new ArrayList<String >();
switch (i) {
case 0:
ItemStack itoggle = new ItemStack(Material.IRON_SWORD);
ItemMeta mtoggle = itoggle.getItemMeta();
mtoggle.setDispalyName("PvP-Schutz an/aus schalten");
mtoggle.setDisplayName("PvP-Schutz an/aus schalten");
mtoggle.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
mtoggle.setLore(ChatColor.BLUE + (p.getPersistentDataContainer().get(new NamespacedKey(Pvptoggle.pvptoggle, "pvptoggle"), PersistentDataType.BOOLEAN)?"Aus":"An" +) " schalten");
String s = p.getPersistentDataContainer().get(new NamespacedKey(Pvptoggle.pvptoggle, "pvptoggle"), PersistentDataType.BOOLEAN)?"Aus":"An";
lore.add(ChatColor.BLUE + s + " schalten");
mtoggle.setLore(lore);
itoggle.setItemMeta(mtoggle);
return itoggle;
break;
case 1:
ItemStack iultra = new ItemStack(Material.DIAMOND_SWORD);
ItemMeta multra = iultra.getItemMeta();
multra.setDispalyName("Ultra an/aus schalten");
multra.setDisplayName("Ultra an/aus schalten");
multra.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
multra.setLore(ChatColor.BLUE + (p.getPersistentDataContainer().get(new NamespacedKey(Pvptoggle.pvptoggle, "pvpultra"), PersistentDataType.BOOLEAN)?"Aus":"An") + " schalten");
lore.add(ChatColor.BLUE + (p.getPersistentDataContainer().get(new NamespacedKey(Pvptoggle.pvptoggle, "pvpultra"), PersistentDataType.BOOLEAN)?"Aus":"An") + " schalten");
multra.setLore(lore);
iultra.setItemMeta(multra);
return iultra;
break;
case 2:
ItemStack iwhitelist = new ItemStack(Material.WHITE_CONCRET);
ItemStack iwhitelist = new ItemStack(Material.WHITE_CONCRETE);
ItemMeta mwhitelist = iwhitelist.getItemMeta();
mwhitelist.setDispalyName("Whitelist");
mwhitelist.setDisplayName("Whitelist");
mwhitelist.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
iwhitelist.setItemMeta(mwhitelist);
return iwhitelist;
break;
case 3:
ItemStack iblacklist = new ItemStack(Material.BLACK_CONCRET);
ItemStack iblacklist = new ItemStack(Material.BLACK_CONCRETE);
ItemMeta mblacklist = iblacklist.getItemMeta();
mblacklist.setDispalyName("Blacklist");
mblacklist.setDisplayName("Blacklist");
mblacklist.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
iblacklist.setItemMeta(mblacklist);
return iblacklist;
@@ -55,7 +73,7 @@ public class InventoryMenu {
case 4:
ItemStack iop = new ItemStack(Material.BEDROCK);
ItemMeta mop = iop.getItemMeta();
mop.setDispalyName("Menu für Operators");
mop.setDisplayName("Menu für Operators");
mop.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
iop.setItemMeta(mop);
/*if (p.hasPermission("pvp.inv.op")) {
@@ -66,7 +84,7 @@ public class InventoryMenu {
case 5:
ItemStack iclose = new ItemStack(Material.BARRIER);
ItemMeta mclose = iclose.getItemMeta();
mclose.setDispalyName("Inventar schließen");
mclose.setDisplayName("Inventar schließen");
mclose.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
iclose.setItemMeta(mclose);
//inv.setItem(8, getMenuItem(5));
@@ -75,14 +93,14 @@ public class InventoryMenu {
case 6:
ItemStack iback = new ItemStack(Material.HOPPER);
ItemMeta mback = iback.getItemMeta();
mback.setDispalyName("Zurück");
mback.setDisplayName("Zurück");
mback.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
iback.setItemMeta(mback);
//inv.setItem(26, getMenuItem(6));
return iback;
break;
case 7:
ItemStack ivoid = new ItemStack(Material.LIGHT_GRAY_STAIND_GLASS_PAIN);
ItemStack ivoid = new ItemStack(Material.LIGHT_GRAY_STAINED_GLASS_PANE);
ItemMeta mvoid = ivoid.getItemMeta();
mvoid.setDisplayName("");
mvoid.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
@@ -98,7 +116,8 @@ public class InventoryMenu {
ItemStack idefaultprot = new ItemStack(Material.GOLDEN_SWORD);
ItemMeta mdefaultprot = idefaultprot.getItemMeta();
mdefaultprot.setDisplayName("Standard PvP-Schutz an/aus schalten");
mdefaultprot.setLore(ChatColor.BLUE + (Config.getPvpProt()?"Aus":"An") + " schalten");
lore.add(ChatColor.BLUE + (Config.getPvpProt()?"Aus":"An") + " schalten");
mdefaultprot.setLore(lore);
mdefaultprot.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
idefaultprot.setItemMeta(mdefaultprot);
return idefaultprot;
@@ -107,7 +126,8 @@ public class InventoryMenu {
ItemStack ipvptime = new ItemStack(Material.CLOCK);
ItemMeta mpvptime = ipvptime.getItemMeta();
mpvptime.setDisplayName("Zeit um zurückzuschlagen");
mpvptime.setLore(ChatColor.BLUE + Config.getPvpTime() + " Sekunden um zurückzuschlagen");
lore.add(ChatColor.BLUE + "" + Config.getPvpTime() + " Sekunden um zurückzuschlagen");
mpvptime.setLore(lore);
mpvptime.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
ipvptime.setItemMeta(mpvptime);
return ipvptime;
@@ -117,7 +137,9 @@ public class InventoryMenu {
ItemMeta mpvptimeplus = ipvptimeplus.getItemMeta();
mpvptimeplus.setDisplayName("Zeit um zurückzuschlagen erhöhen");
mpvptimeplus.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
mpvptimeplus.setLore(ChatColor.BLUE + "Rechtsklick:" + ChatColor.GREEN + " +1\n" + ChatColor.BLUE + "Linksklick:" + ChatColor.GREEN + " +10");
lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.GREEN + " +1");
lore.add(ChatColor.BLUE + "Linksklick:" + ChatColor.GREEN + " +10");
mpvptimeplus.setLore(lore);
ipvptimeplus.setItemMeta(mpvptimeplus);
return ipvptimeplus;
break;
@@ -126,24 +148,29 @@ public class InventoryMenu {
ItemMeta mpvptimeminus = ipvptimeminus.getItemMeta();
mpvptimeminus.setDisplayName("Zeit um zurückzuschlagen verringern");
mpvptimeminus.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
mpvptimeminus.setLore(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " -1\n" + ChatColor.BLUE + "Linksklick:" + ChatColor.RED + " -10");
lore.add(ChatColor.BLUE + "Rechtsklick:" + ChatColor.RED + " -1");
lore.add(ChatColor.BLUE + "Linksklick:" + ChatColor.RED + " -10");
mpvptimeminus.setLore(lore);
ipvptimeminus.setItemMeta(mpvptimeminus);
return ipvptimeminus;
break;
default:
break;
}
return null;
}
public static Inventory pvpMenuFillEmpty(Inventory inv, Player p) {
for (int i = 0, i <= (inv.getSize-1), i++) {
if (inv.getItem(i) == Material.AIR) {
inv.set(i, getMenuItem(7, p));
for (int i = 0; i <= inv.getSize()-1; i++) {
if (inv.getItem(i).equals(Material.AIR)) {
inv.setItem(i, getMenuItem(7, p));
}
}
return inv;
}
public static Inventory pvpMenu(Player p) {
Inventory inv = new Bukkit.createInventory(null, 3*9, "PvP-Menu");
Inventory inv = Bukkit.createInventory(null, 3 * 9, "PvP-Menu");
inv.setItem(10, getMenuItem(0, p));
inv.setItem(12, getMenuItem(1, p));
@@ -159,7 +186,7 @@ public class InventoryMenu {
public static Inventory pvpBlacklistMenu(Player p) {
Inventory inv = new Bukkit.createInventory(null, 3*9, "Blacklist-Menu");
Inventory inv = Bukkit.createInventory(null, 3*9, "Blacklist-Menu");
inv.setItem(8, getMenuItem(5, p));
inv.setItem(26, getMenuItem(6, p));
@@ -168,7 +195,7 @@ public class InventoryMenu {
public static Inventory pvpWhitelistMenu(Player p) {
Inventory inv = new Bukkit.createInventory(null, 3*9, "Whitelist-Menu");
Inventory inv = Bukkit.createInventory(null, 3*9, "Whitelist-Menu");
inv.setItem(8, getMenuItem(5, p));
inv.setItem(26, getMenuItem(6, p));
@@ -177,7 +204,7 @@ public class InventoryMenu {
public static Inventory pvpOpSettingsMenu(Player p) {
Inventory inv = new Bukkit.createInventory(null, 3*9, "Operator-Menu");
Inventory inv = Bukkit.createInventory(null, 3*9, "Operator-Menu");
inv.setItem(8, getMenuItem(5, p));
inv.setItem(26, getMenuItem(6, p));
inv.setItem(11, getMenuItem(8, p));
@@ -2,12 +2,20 @@ package benkralex.pvptoggle;
import dev.jorel.commandapi.CommandAPI;
import dev.jorel.commandapi.CommandAPICommand;
import dev.jorel.commandapi.arguments.PlayerArgument;
import dev.jorel.commandapi.executors.CommandArguments;
import net.md_5.bungee.api.ChatColor;
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.entity.Player;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
import java.util.UUID;
public class PvpCommand {
public static void createPvpCommand() {
//Create PVP-Command with Command-API
@@ -60,7 +68,7 @@ public class PvpCommand {
.withUsage("/pvp blacklist remove <Player>")
.withArguments(new PlayerArgument("Player"))
.withHelp("Spieler aus Blacklist entfernen", "Du kannst damit Spieler aus deiner Blacklist entfernen.")))
.withSubcommand(new ConmmandAPICommand("fight")
.withSubcommand(new CommandAPICommand("fight")
.executesPlayer((sender, args)->{pvpFight(sender, args, 0);})
.withPermission("pvp.fight")
.withUsage("/pvp fight <Player>")
@@ -95,7 +103,7 @@ public class PvpCommand {
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"));
sender.sendMessage("Dein PvP-Schutz ist jetzt " + (pdc.get(pvptoggle, PersistentDataType.BOOLEAN)?"an":"aus"));
}
}
@@ -107,17 +115,18 @@ public class PvpCommand {
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"));
sender.sendMessage("PvP-Ultra ist für dich jetzt " + (pdc.get(ultra, 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"));
pdc.set(ultra, PersistentDataType.BOOLEAN, true);
sender.sendMessage("PvP-Ultra ist für dich jetzt " + (pdc.get(ultra, PersistentDataType.BOOLEAN)?"an":"aus"));
}
}
public static void pvpWhitelist(Player sender, CommandArguments args, Int action) {
public static void pvpWhitelist(Player sender, CommandArguments args, int action) {
//PvP Whitelist Command
Player pargs = (Player) args.get("Player");
PersistentDataContainer pdc = sender.getPersistentDataContainer();
NamespacedKey whitelist = new NamespacedKey(Pvptoggle.pvptoggle, "whitelist");
if (action == 1) {
@@ -128,7 +137,7 @@ public class PvpCommand {
int i = 0;
for (NamespacedKey whitelistkey:pdcwhitelist.getKeys()) {
i++;
sender.sendMessage(ChatColor.LIGHT_BLUE + i + ". " + ChatColor.BLUE + Bukkit.getPlayer(UUID.fromString(pdcwhitelist.get(whitelistkey, PersistentDataType.STRING))).getDisplayName());
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");
@@ -143,8 +152,8 @@ public class PvpCommand {
//pdc erstellen
}
PersistentDataContainer pdcwhitelist = pdc.get(whitelist, PersistentDataType.TAG_CONTAINER);
pdcwhitelist.add(new NamespacedKey(Pvptoggle.pvptoggle, args.get("Player").getUniqueId().toString()), PersistentDataType.STRING, args.get("Player").getUniqueId().toString()));
sender.sendMessage(ChatColor.LIGHT_GREEN + args.get("Player").getDisplayName() + "wurde zu deiner Whitelist hinzugefügt");
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) {
@@ -154,11 +163,11 @@ public class PvpCommand {
return;
}
PersistentDataContainer whitelistpdc = pdc.get(whitelist, PersistentDataType.TAG_CONTAINER);
if (whitelistpdc.has(new NamespacedKey(Pvptoggle.pvptoggle, args.get("Player").getUniqueId()))) {
whitelistpdc.remove(new NamespacedKey(Pvptoggle.pvptoggle, args.get("Player").getUniqueId().toString()), PersistentDataType.STRING);
sender.sendMessage(ChatColor.LIGHT_GREEN + args.get("Player").getDispalyName() + "wurde aus deiner Whitelist entfernt");
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 + args.get("Player").getDisplayName() + "ist nicht in deiner Whitelist");
sender.sendMessage(ChatColor.RED + pargs.getDisplayName() + "ist nicht in deiner Whitelist");
}
sender.sendMessage(ChatColor.RED + "Die Whitelist funktioniert aktuell nicht");
@@ -169,8 +178,9 @@ public class PvpCommand {
public static void pvpBlacklist(Player sender, CommandArguments args, Int action) {
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) {
@@ -181,7 +191,7 @@ public class PvpCommand {
int i = 0;
for (NamespacedKey blacklistkey:pdcblacklist.getKeys()) {
i++;
sender.sendMessage(ChatColor.LIGHT_BLUE + i + ". " + ChatColor.BLUE + Bukkit.getPlayer(UUID.fromString(pdcblacklist.get(blacklistkey, PersistentDataType.STRING))).getDisplayName());
sender.sendMessage(ChatColor.BLUE + "" + i + ". " + ChatColor.BLUE + "" + Bukkit.getPlayer(UUID.fromString(pdcblacklist.get(blacklistkey, PersistentDataType.STRING))).getDisplayName());
}
} else {
sender.sendMessage("Deine Blacklist ist leer");
@@ -195,23 +205,23 @@ public class PvpCommand {
if (!pdc.has(blacklist, PersistentDataType.TAG_CONTAINER)) {
//pdc erstellen
}
PersistentDataContainer pdcblacklist = pdc.get(blacklistlist, PersistentDataType.TAG_CONTAINER);
pdcblacklist.add(new NamespacedKey(Pvptoggle.pvptoggle, args.get("Player").getUniqueId().toString()), PersistentDataType.STRING, args.get("Player").getUniqueId().toString()));
sender.sendMessage(ChatColor.LIGHT_GREEN + args.get("Player").getDisplayName() + "wurde zu deiner Blacklist hinzugefügt");
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(blacklistlist, PersistentDataType.TAG_CONTAINER)) {
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, args.get("Player").getUniqueId()))) {
whitelistpdc.remove(new NamespacedKey(Pvptoggle.pvptoggle, args.get("Player").getUniqueId().toString()), PersistentDataType.STRING);
sender.sendMessage(ChatColor.LIGHT_GREEN + args.get("Player").getDispalyName() + "wurde aus deiner Blacklist entfernt");
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 + args.get("Player").getDisplayName() + "ist nicht in deiner Blacklist");
sender.sendMessage(ChatColor.RED + pargs.getDisplayName() + "ist nicht in deiner Blacklist");
}
sender.sendMessage(ChatColor.RED + "Die Blacklist funktioniert aktuell nicht");
@@ -220,17 +230,17 @@ public class PvpCommand {
}
}
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
Player pargs = args.get("Player");
TextComponent accept = new TextComponent(ChatColor.LIGHT_GREEN + "Annehmen");
Player pargs = (Player) args.get("Player");
TextComponent accept = new TextComponent(ChatColor.GREEN + "Annehmen");
TextComponent deny = new TextComponent(ChatColor.RED + "Ablehnen");
accept.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/pvp fight accept"));
deny.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/pvp fight deny"));
pargs.sendMessage("Du wurdest von " + sender.getDisplayName() + " zu einem Kampf herrausgefordert.");
pargs.sendMessage(accept + ChatColor.WHITE + " | " + deny);
pargs.sendMessage(accept + "" + ChatColor.WHITE + " | " + deny);
sender.sendMessage("Der Command funktioniert noch nicht");
} else if (action == 1) {
//Kampf angenommen
@@ -10,6 +10,7 @@ import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.persistence.PersistentDataType;
import org.bukkit.projectiles.ProjectileSource;
public class PvpEvent implements Listener {
@@ -50,10 +51,10 @@ public class PvpEvent implements Listener {
@EventHandler
public void playerJoinListener(PlayerJoinEvent event) {
if (!event.getplayer().getPersistentDataContainer().has(new NamespacedKey(Pvptoggle.pvptoggle, "pvptoggle"), PersistentDataType.BOOLEAN)) {
if (!event.getPlayer().getPersistentDataContainer().has(new NamespacedKey(Pvptoggle.pvptoggle, "pvptoggle"), PersistentDataType.BOOLEAN)) {
event.getPlayer().getPersistentDataContainer().set(new NamespacedKey(Pvptoggle.pvptoggle, "pvptoggle"), PersistentDataType.BOOLEAN, Config.getPvpProt());
} else {
event.getPlayer().sendMessage("Dein PvP-Schutz ist " + (pdc.get(new NamespacedKey(Pvptoggle.pvptoggle, "pvptoggle"), PersistentDataType.BOOLEAN)?"an":"aus"));
event.getPlayer().sendMessage("Dein PvP-Schutz ist " + (event.getPlayer().getPersistentDataContainer().get(new NamespacedKey(Pvptoggle.pvptoggle, "pvptoggle"), PersistentDataType.BOOLEAN)?"an":"aus"));
}
}
}
@@ -11,13 +11,15 @@ public class Util {
public static boolean canPvP(Player damager, Player victim){
PersistentDataContainer damagerPDC=damager.getPersistentDataContainer();
PersistentDataContainer victimPDC=victim.getPersistentDataContainer();
Boolean ultradamager;
Boolean ultravictim;
Boolean toggle = damagerPDC.get(new NamespacedKey(Pvptoggle.pvptoggle, "pvptoggle"),PersistentDataType.BOOLEAN);
if (victimPDC.has(new NamespacedKey(Pvptoggle.pvptoggle, "ultra"),PersistentDataType.BOOLEAN)) {
Boolean ultravictim = victimPDC.get(new NamespacedKey(Pvptoggle.pvptoggle, "ultra"),PersistentDataType.BOOLEAN);
} else {Boolean ultravictim = false;}
ultravictim = victimPDC.get(new NamespacedKey(Pvptoggle.pvptoggle, "ultra"),PersistentDataType.BOOLEAN);
} else {ultravictim = false;}
if (damagerPDC.has(new NamespacedKey(Pvptoggle.pvptoggle, "ultra"),PersistentDataType.BOOLEAN)) {
Boolean ultradamager = damagerPDC.get(new NamespacedKey(Pvptoggle.pvptoggle, "ultra"),PersistentDataType.BOOLEAN);
} else {Boolean ultradamager = false;}
ultradamager = damagerPDC.get(new NamespacedKey(Pvptoggle.pvptoggle, "ultra"),PersistentDataType.BOOLEAN);
} else {ultradamager = false;}
if(toggle!=null) {
return !toggle || checkPvPData(damager, victim) || !ultradamager || !ultravictim;
@@ -38,7 +40,7 @@ public class Util {
}
public static void delOldData(PersistentDataContainer pvpdamagers){
for(NamespacedKey damagerKey:pvpdamagers.getKeys()){
if(pvpdamagers.get(damagerKey,PersistentDataType.LONG)>= Instant.now().getEpochSecond() + Config.getpvptime()){
if(pvpdamagers.get(damagerKey,PersistentDataType.LONG)>= Instant.now().getEpochSecond() + Config.getPvpTime()){
pvpdamagers.remove(damagerKey);
}
}
@@ -54,14 +56,4 @@ public class Util {
damagersOfVictim.set(new NamespacedKey(Pvptoggle.pvptoggle, damagerUUID), PersistentDataType.LONG, Instant.now().getEpochSecond());
victimPDC.set(new NamespacedKey(Pvptoggle.pvptoggle,"pvpdamagers"), PersistentDataType.TAG_CONTAINER,damagersOfVictim);
}
public static void pdcTagContaineradd(Player p, NamespacedKey key, String s, Boolean value) {
PersistentDataContainer pdc = p.getPersistentDataContainer();
PersistentDataContainer pdctagcontainer = pdc.get(key, PersitentDataType.TAG_CONTAINER);
if(pdctagcontainer == null) {
pdc.tagcontainer = pdc.getAdapterContext().newPersistentDataContainer();
}
pdctagcontainer.set(new NamespacedKey(Pvptoggle.pvptoggle, s), PersistentDataType.BOOLEAN, value);
pdc.set(key,PersistentDataType.TAG_CONTAINER, pdctagcontainer);
}
}