diff --git a/environmentex/src/main/java/de/hessj/environmentex/App.java b/environmentex/src/main/java/de/hessj/environmentex/App.java index cbff7a2..9dce0ef 100755 --- a/environmentex/src/main/java/de/hessj/environmentex/App.java +++ b/environmentex/src/main/java/de/hessj/environmentex/App.java @@ -10,8 +10,6 @@ import net.kyori.adventure.text.Component; import net.md_5.bungee.api.ChatColor; import org.bukkit.NamespacedKey; import org.bukkit.World; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; @@ -24,8 +22,6 @@ import org.bukkit.inventory.RecipeChoice.MaterialChoice; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.components.CustomModelDataComponent; import org.bukkit.persistence.PersistentDataType; -import java.io.File; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -471,6 +467,7 @@ public class App extends JavaPlugin { pM.registerEvents(new EntityMuter(), this); pM.registerEvents(new BetterHoes(), this); pM.registerEvents(new ChestEx(), this); + pM.registerEvents(new Backpacks(), this); getCommand("test").setExecutor(new EnvironmentExCommands()); getCommand("y").setExecutor(new EnvironmentExCommands()); getCommand("n").setExecutor(new EnvironmentExCommands()); diff --git a/environmentex/src/main/java/de/hessj/environmentex/Backpacks.java b/environmentex/src/main/java/de/hessj/environmentex/Backpacks.java new file mode 100644 index 0000000..4735051 --- /dev/null +++ b/environmentex/src/main/java/de/hessj/environmentex/Backpacks.java @@ -0,0 +1,707 @@ +package de.hessj.environmentex; + +import java.io.IOException; +import java.util.HashMap; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.block.data.type.Fence; +import org.bukkit.block.data.type.Stairs; +import org.bukkit.entity.Item; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; +import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.inventory.ClickType; +import org.bukkit.event.inventory.FurnaceBurnEvent; +import org.bukkit.event.inventory.InventoryAction; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryDragEvent; +import org.bukkit.event.inventory.InventoryOpenEvent; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.PlayerAttemptPickupItemEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.persistence.PersistentDataType; + +import de.hessj.helper.Helper; +import net.kyori.adventure.text.Component; + +public class Backpacks implements Listener{ +public static HashMap hm = new HashMap(); + public static HashMap hm2 = new HashMap(); + public static HashMap hm3 = new HashMap(); + public static HashMap hm4 = new HashMap(); + + @EventHandler + public void onItemCollect(PlayerAttemptPickupItemEvent e) throws IOException { + + if (e.getPlayer().getInventory().firstEmpty() == -1 && e.getRemaining() > 0) { + Item itm = e.getItem(); + + if (itm.getItemStack().getType() == Material.BARRIER && e.getItem().getItemStack().hasItemMeta()) { + + if (itm.getItemStack().getItemMeta().getPersistentDataContainer().has(App.main.nsk, + PersistentDataType.STRING) + && (itm.getItemStack().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk, PersistentDataType.STRING).equals("R3S_kleiner_Rucksack")) + || (itm.getItemStack().getItemMeta().getPersistentDataContainer().has(App.main.nsk2, + PersistentDataType.STRING) + && itm.getItemStack().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk2, PersistentDataType.STRING).equals("R3S_Rucksack")) + || (itm.getItemStack().getItemMeta().getPersistentDataContainer().has(App.main.nsk3, + PersistentDataType.STRING) + && itm.getItemStack().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk3, PersistentDataType.STRING).equals("R3S_großer_Rucksack")) + || (itm.getItemStack().getItemMeta().getPersistentDataContainer().has(App.main.nsk4, + PersistentDataType.STRING) + && itm.getItemStack().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk4, PersistentDataType.STRING) + .equals("R3S_riesiger_Rucksack"))) { + + e.setCancelled(true); + return; + + } + } + + if (e.getPlayer().getInventory().contains(App.main.backPack)) { + checkBackpack(1, e.getPlayer(), itm.getItemStack()); + } + if (e.getPlayer().getInventory().contains(App.main.backPack2)) { + checkBackpack(2, e.getPlayer(), itm.getItemStack()); + } + if (e.getPlayer().getInventory().contains(App.main.backPack3)) { + checkBackpack(3, e.getPlayer(), itm.getItemStack()); + } + if (e.getPlayer().getInventory().contains(App.main.backPack4)) { + checkBackpack(4, e.getPlayer(), itm.getItemStack()); + } + } + + } + + public void checkBackpack(int size, Player p, ItemStack i) throws IOException { + + Boolean freespace = false; + Inventory inv = Bukkit.createInventory(null, 9, Component.translatable("new")); + + if (size == 1) { + inv = Bukkit.createInventory(null, 9, Component.translatable("tempBackpack")); + ItemStack[] is; + is = Helper.itemStackArrayFromBase64( + App.main.getConfig().getString(p.getUniqueId() + ".backpack.contents.leatherbackpack")); + inv.setContents(is); + } else if (size == 2) { + inv = Bukkit.createInventory(null, 18, Component.translatable("tempBackpack2")); + ItemStack[] is; + is = Helper.itemStackArrayFromBase64( + App.main.getConfig().getString(p.getUniqueId() + ".backpack.contents.ironbackpack")); + inv.setContents(is); + } else if (size == 3) { + inv = Bukkit.createInventory(null, 27, Component.translatable("tempBackpack3")); + ItemStack[] is; + is = Helper.itemStackArrayFromBase64( + App.main.getConfig().getString(p.getUniqueId() + ".backpack.contents.goldbackpack")); + inv.setContents(is); + } else if (size == 4) { + inv = Bukkit.createInventory(null, 36, Component.translatable("tempBackpack4")); + ItemStack[] is; + is = Helper.itemStackArrayFromBase64( + App.main.getConfig().getString(p.getUniqueId() + ".backpack.contents.diamondbackpack")); + inv.setContents(is); + } + + for (ItemStack is : inv.getContents()) { + if (is != null) { + if (is.isSimilar(i)) { + int iscount = is.getAmount(); + int itemcount = i.getAmount(); + if (is.getAmount() == is.getMaxStackSize()) { + // nix tun + } else { + if (iscount + itemcount > is.getMaxStackSize()) { + + is.setAmount(is.getMaxStackSize()); + + i.subtract(is.getMaxStackSize() - (itemcount + iscount - is.getMaxStackSize())); + + // PLAYSOUND + Bukkit.getServer().getWorlds().get(0).playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, + 0.25F, 1.8F); + + } else { + is.setAmount(iscount + itemcount); + i.setAmount(0); + // PLAYSOUND + Bukkit.getServer().getWorlds().get(0).playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, + 0.25F, 1.8F); + } + } + } + } else { + freespace = true; + } + + } + + if (freespace) { + inv.setItem(inv.firstEmpty(), i); + i.setAmount(0); + // PLAYSOUND + Bukkit.getServer().getWorlds().get(0).playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 0.25F, 1.8F); + } + + if (size == 1) { + App.main.getConfig().set(p.getUniqueId() + ".backpack.contents.leatherbackpack", + Helper.itemStackArrayToBase64(inv.getContents())); + } else if (size == 2) { + App.main.getConfig().set(p.getUniqueId() + ".backpack.contents.ironbackpack", + Helper.itemStackArrayToBase64(inv.getContents())); + } else if (size == 3) { + App.main.getConfig().set(p.getUniqueId() + ".backpack.contents.goldbackpack", + Helper.itemStackArrayToBase64(inv.getContents())); + } else if (size == 4) { + App.main.getConfig().set(p.getUniqueId() + ".backpack.contents.diamondbackpack", + Helper.itemStackArrayToBase64(inv.getContents())); + } + App.main.saveConfig(); + } + + @EventHandler + public void onBackpackUse(PlayerInteractEvent e) { + if (e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.LEFT_CLICK_BLOCK) { + return; + } + if (e.getPlayer().getInventory().getItemInOffHand() != null + && e.getPlayer().getInventory().getItemInOffHand().getItemMeta() != null) { + if (e.getPlayer().getInventory().getItemInOffHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk, PersistentDataType.STRING) + || e.getPlayer().getInventory().getItemInOffHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk2, PersistentDataType.STRING) + || e.getPlayer().getInventory().getItemInOffHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk3, PersistentDataType.STRING) + || e.getPlayer().getInventory().getItemInOffHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk4, PersistentDataType.STRING)) { + e.setCancelled(true); + return; + } + } + // ItemStack is = e.getPlayer().getInventory().getItemInOffHand(); + if (e.getPlayer().getInventory().getItemInMainHand() != null + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta() != null) { + if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk, PersistentDataType.STRING) + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk, PersistentDataType.STRING).toString().equals("R3S_kleiner_Rucksack")) { + if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK + && (!App.helper.isInteractable(e.getClickedBlock())) + || e.getClickedBlock() != null && (App.helper.isInteractable(e.getClickedBlock()) + && (e.getClickedBlock().getBlockData() != null + && (e.getClickedBlock().getBlockData() instanceof Stairs + || e.getClickedBlock().getBlockData() instanceof Fence))))) { + // inv = Bukkit.createInventory(null, 9, Component.translatable("Kleiner + // Rucksack")); + hm.put(e.getPlayer(), Bukkit.createInventory(null, 9, Component.translatable("Kleiner Rucksack"))); + // e.getPlayer().openInventory(inv); + + e.setCancelled(true); + + e.getPlayer().openInventory(hm.get(e.getPlayer())); + + /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { + @Override + public void run() { + App.main.log(is.toString()); + //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); + } + }, 10L);*/ + + } + } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk2, PersistentDataType.STRING) + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk2, PersistentDataType.STRING).toString().equals("R3S_Rucksack")) { + if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK + && (!App.helper.isInteractable(e.getClickedBlock())) + || (App.helper.isInteractable(e.getClickedBlock()) + && (e.getClickedBlock().getBlockData() != null + && (e.getClickedBlock().getBlockData() instanceof Stairs + || e.getClickedBlock().getBlockData() instanceof Fence))))) { // inv2 = + // Bukkit.createInventory(null, + // 18, + // Component.translatable("Rucksack")); + hm2.put(e.getPlayer(), Bukkit.createInventory(null, 18, Component.translatable("Rucksack"))); + // e.getPlayer().openInventory(inv2); + e.setCancelled(true); + e.getPlayer().openInventory(hm2.get(e.getPlayer())); + /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { + @Override + public void run() { + App.main.log(is.toString()); + //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); + } + }, 10L);*/ + } + } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk3, PersistentDataType.STRING) + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk3, PersistentDataType.STRING).toString().equals("R3S_großer_Rucksack")) { + if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK + && (!App.helper.isInteractable(e.getClickedBlock())) + || (App.helper.isInteractable(e.getClickedBlock()) + && (e.getClickedBlock().getBlockData() != null + && (e.getClickedBlock().getBlockData() instanceof Stairs + || e.getClickedBlock().getBlockData() instanceof Fence))))) { // inv3 = + // Bukkit.createInventory(null, + // 27, + // Component.translatable("Großer + // Rucksack")); + hm3.put(e.getPlayer(), Bukkit.createInventory(null, 27, Component.translatable("Großer Rucksack"))); + // e.getPlayer().openInventory(inv3); + e.setCancelled(true); + e.getPlayer().openInventory(hm3.get(e.getPlayer())); + /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { + @Override + public void run() { + App.main.log(is.toString()); + //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); + } + }, 10L);*/ + } + } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk4, PersistentDataType.STRING) + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk4, PersistentDataType.STRING).toString().equals("R3S_riesiger_Rucksack")) { + if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK + && (!App.helper.isInteractable(e.getClickedBlock())) + || (App.helper.isInteractable(e.getClickedBlock()) + && (e.getClickedBlock().getBlockData() != null + && (e.getClickedBlock().getBlockData() instanceof Stairs + || e.getClickedBlock().getBlockData() instanceof Fence))))) { // inv4 = + // Bukkit.createInventory(null, + // 36, + // Component.translatable("Riesiger + // Rucksack")); + hm4.put(e.getPlayer(), + Bukkit.createInventory(null, 36, Component.translatable("Riesiger Rucksack"))); + e.setCancelled(true); + e.getPlayer().openInventory(hm4.get(e.getPlayer())); + // e.getPlayer().openInventory(inv4); + /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { + @Override + public void run() { + App.main.log(is.toString()); + //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); + } + }, 10L);*/ + } + } + } + + } + @EventHandler + public void onBackpackClose(InventoryCloseEvent e) { + if (e.getInventory() == hm.get(e.getPlayer())) { + if (!App.main.getConfig().contains(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack")) { + App.main.getConfig().createSection(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack"); + } + App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack", + Helper.itemStackArrayToBase64(e.getInventory().getContents())); + App.main.saveConfig(); + } else if (e.getInventory() == hm2.get(e.getPlayer())) { + if (!App.main.getConfig().contains(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack")) { + App.main.getConfig().createSection(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack"); + } + App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack", + Helper.itemStackArrayToBase64(e.getInventory().getContents())); + App.main.saveConfig(); + } else if (e.getInventory() == hm3.get(e.getPlayer())) { + if (!App.main.getConfig().contains(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack")) { + App.main.getConfig().createSection(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack"); + } + App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack", + Helper.itemStackArrayToBase64(e.getInventory().getContents())); + App.main.saveConfig(); + } else if (e.getInventory() == hm4.get(e.getPlayer())) { + if (!App.main.getConfig().contains(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack")) { + App.main.getConfig().createSection(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack"); + } + App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack", + Helper.itemStackArrayToBase64(e.getInventory().getContents())); + App.main.saveConfig(); + } + } + + @EventHandler + public void onDeath(PlayerDeathEvent e) throws IllegalArgumentException, IOException { + e.deathMessage(null); + for (ItemStack is : e.getPlayer().getInventory().getContents()) { + if (is == null || !is.hasItemMeta() || is.getItemMeta().getPersistentDataContainer() == null) { + // return; + } + + else { + if (is.getItemMeta().getPersistentDataContainer().has(App.main.nsk, PersistentDataType.STRING)) { + if (App.main.getConfig() + .contains(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack")) { + Inventory inv = Bukkit.createInventory(null, 9, + Component.translatable("Kleiner Rucksack DEAD")); + inv.setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() + .getString(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack"))); + for (ItemStack bis : inv.getContents()) { + if (bis != null) { + e.getPlayer().getWorld().dropItem(e.getPlayer().getLocation(), bis); + } + + } + + App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack", + Helper.itemStackArrayToBase64(new ItemStack[] {})); + + App.main.saveConfig(); + } + } else if (is.getItemMeta().getPersistentDataContainer().has(App.main.nsk2, + PersistentDataType.STRING)) { + if (App.main.getConfig() + .contains(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack")) { + Inventory inv = Bukkit.createInventory(null, 18, Component.translatable("Rucksack DEAD")); + inv.setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() + .getString(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack"))); + for (ItemStack bis : inv.getContents()) { + if (bis != null) { + e.getPlayer().getWorld().dropItem(e.getPlayer().getLocation(), bis); + } + + } + App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack", + Helper.itemStackArrayToBase64(new ItemStack[] {})); + App.main.saveConfig(); + } + } else if (is.getItemMeta().getPersistentDataContainer().has(App.main.nsk3, + PersistentDataType.STRING)) { + if (App.main.getConfig() + .contains(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack")) { + Inventory inv = Bukkit.createInventory(null, 27, + Component.translatable("Großer Rucksack DEAD")); + inv.setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() + .getString(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack"))); + for (ItemStack bis : inv.getContents()) { + if (bis != null) { + e.getPlayer().getWorld().dropItem(e.getPlayer().getLocation(), bis); + } + + } + App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack", + Helper.itemStackArrayToBase64(new ItemStack[] {})); + App.main.saveConfig(); + } + } else if (is.getItemMeta().getPersistentDataContainer().has(App.main.nsk4, + PersistentDataType.STRING)) { + if (App.main.getConfig() + .contains(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack")) { + Inventory inv = Bukkit.createInventory(null, 36, + Component.translatable("Riesiger Rucksack DEAD")); + inv.setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() + .getString(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack"))); + for (ItemStack bis : inv.getContents()) { + if (bis != null) { + e.getPlayer().getWorld().dropItem(e.getPlayer().getLocation(), bis); + } + + } + App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack", + Helper.itemStackArrayToBase64(new ItemStack[] {})); + App.main.saveConfig(); + } + } + } + } + } + + @EventHandler + public void onBackpackOpen(InventoryOpenEvent e) throws IOException { + try { + if (e.getView().title().equals(Component.translatable("Kleiner Rucksack")) + || e.getView().title().equals(Component.translatable("Rucksack")) + || e.getView().title().equals(Component.translatable("Großer Rucksack")) + || e.getView().title().equals(Component.translatable("Riesiger Rucksack"))) { + if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk, PersistentDataType.STRING) + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk, PersistentDataType.STRING).toString() + .equals("R3S_kleiner_Rucksack")) { + if (App.main.getConfig() + .contains(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack")) { + e.getInventory().setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() + .getString(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack"))); + } + } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk2, PersistentDataType.STRING) + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk2, PersistentDataType.STRING).toString().equals("R3S_Rucksack")) { + if (App.main.getConfig() + .contains(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack")) { + e.getInventory().setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() + .getString(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack"))); + } + } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk3, PersistentDataType.STRING) + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk3, PersistentDataType.STRING).toString() + .equals("R3S_großer_Rucksack")) { + if (App.main.getConfig() + .contains(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack")) { + e.getInventory().setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() + .getString(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack"))); + } + } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .has(App.main.nsk4, PersistentDataType.STRING) + && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() + .get(App.main.nsk4, PersistentDataType.STRING).toString() + .equals("R3S_riesiger_Rucksack")) { + if (App.main.getConfig() + .contains(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack")) { + e.getInventory().setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() + .getString(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack"))); + } + } + } + } catch (Exception ex) { + } + } + @EventHandler + public void onInvMove(InventoryDragEvent e) { + if (e.getInventory() != null && e.getInventory().getType() == InventoryType.CHEST) { + if (e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Kleiner Rucksack")) + || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Rucksack")) + || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Großer Rucksack")) + || e.getWhoClicked().getOpenInventory().title() + .equals(Component.translatable("Riesiger Rucksack"))) { + + for (Object s : e.getRawSlots()) { + if ((int) s > e.getWhoClicked().getOpenInventory().getTopInventory().getSize()) { + + return; + } + } + + if (e.getOldCursor() != null) { + if (e.getOldCursor().equals(App.main.backPack) || e.getOldCursor().equals(App.main.backPack2) + || e.getOldCursor().equals(App.main.backPack3) + || e.getOldCursor().equals(App.main.backPack4)) { + e.setCancelled(true); + } + } + } + + } + + } + @EventHandler + public void onInvMove(InventoryClickEvent e) { + if (e.getClickedInventory() != null && e.getClickedInventory().getType() == InventoryType.CHEST) { + if (e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Kleiner Rucksack")) + || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Rucksack")) + || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Großer Rucksack")) + || e.getWhoClicked().getOpenInventory().title() + .equals(Component.translatable("Riesiger Rucksack"))) { + + if (/* + * e.getAction() == InventoryAction.HOTBAR_MOVE_AND_READD + * || + */e.getAction() == InventoryAction.HOTBAR_SWAP) { + + if (e.getHotbarButton() != -1) {// evtl auch schauen ob titel, da es sonst auch nicht in truhe + // gepackt werden kann, evtl aber auch schon oben gekläört + + if (e.getView().getBottomInventory().getItem(e.getHotbarButton()) != null && (e.getView() + .getBottomInventory().getItem(e.getHotbarButton()).equals(App.main.backPack) + || e.getView().getBottomInventory().getItem(e.getHotbarButton()) + .equals(App.main.backPack2) + || e.getView().getBottomInventory().getItem(e.getHotbarButton()) + .equals(App.main.backPack3) + || e.getView().getBottomInventory().getItem(e.getHotbarButton()) + .equals(App.main.backPack4))) { + e.setCancelled(true); + return; + } + + } + + if (e.getHotbarButton() != -1 + && e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) != null) { + if (e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) + .equals(App.main.backPack) + || e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) + .equals(App.main.backPack2) + || e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) + .equals(App.main.backPack3) + || e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) + .equals(App.main.backPack4)) { + e.setCancelled(true); + return; + } + } else { + if (e.getWhoClicked().getInventory().getItemInOffHand() != null && (e.getWhoClicked() + .getInventory().getItemInOffHand().equals(App.main.backPack) + || e.getWhoClicked().getInventory().getItemInOffHand().equals(App.main.backPack2) + || e.getWhoClicked().getInventory().getItemInOffHand().equals(App.main.backPack3) + || e.getWhoClicked().getInventory().getItemInOffHand().equals(App.main.backPack4))) { + ItemStack bpIs = e.getWhoClicked().getInventory().getItemInOffHand(); + e.setCancelled(true); + e.getWhoClicked().getInventory().setItemInOffHand(bpIs); + } + } + + } + if (e.getCursor() != null) { + if (e.getCursor().equals(App.main.backPack) || e.getCursor().equals(App.main.backPack2) + || e.getCursor().equals(App.main.backPack3) || e.getCursor().equals(App.main.backPack4)) { + e.setCancelled(true); + } + } + + } + } + + if (e.isShiftClick()) { + if (e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Kleiner Rucksack")) + || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Rucksack")) + || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Großer Rucksack")) + || e.getWhoClicked().getOpenInventory().title() + .equals(Component.translatable("Riesiger Rucksack"))) { + if (e.getClickedInventory() != null && e.getClickedInventory().getItem(e.getSlot()) != null) { + if (e.getClickedInventory() != null && e.getClickedInventory().getItem(e.getSlot()) != null) { + if (e.getClickedInventory().getItem(e.getSlot()).getItemMeta() + .getPersistentDataContainer() != null) { + if (e.getClickedInventory().getItem(e.getSlot()).getItemMeta().getPersistentDataContainer() + .get(App.main.nsk, PersistentDataType.STRING) != null + && e.getClickedInventory().getItem(e.getSlot()).getItemMeta() + .getPersistentDataContainer().get(App.main.nsk, PersistentDataType.STRING) + .toString().equals("R3S_kleiner_Rucksack") + || e.getClickedInventory().getItem(e.getSlot()).getItemMeta() + .getPersistentDataContainer() + .get(App.main.nsk2, PersistentDataType.STRING) != null + && e.getClickedInventory().getItem(e.getSlot()).getItemMeta() + .getPersistentDataContainer() + .get(App.main.nsk2, PersistentDataType.STRING).toString() + .equals("R3S_Rucksack") + || e.getClickedInventory().getItem(e.getSlot()).getItemMeta() + .getPersistentDataContainer() + .get(App.main.nsk3, PersistentDataType.STRING) != null + && e.getClickedInventory().getItem(e.getSlot()).getItemMeta() + .getPersistentDataContainer() + .get(App.main.nsk3, PersistentDataType.STRING).toString() + .equals("R3S_großer_Rucksack") + || e.getClickedInventory().getItem(e.getSlot()).getItemMeta() + .getPersistentDataContainer() + .get(App.main.nsk4, PersistentDataType.STRING) != null + && e.getClickedInventory().getItem(e.getSlot()).getItemMeta() + .getPersistentDataContainer() + .get(App.main.nsk4, PersistentDataType.STRING).toString() + .equals("R3S_riesiger_Rucksack")) { + e.setCancelled(true); + } + } + } + } + } + } + } + @EventHandler + public void craftBlocker(PrepareItemCraftEvent evt) { + + if (evt.getRecipe() != null && evt.getRecipe().getResult() != null) { + if (!evt.getRecipe().getResult().equals(App.main.backPack) + && !evt.getRecipe().getResult().equals(App.main.backPack2) + && !evt.getRecipe().getResult().equals(App.main.backPack3) + && !evt.getRecipe().getResult().equals(App.main.backPack4)) { + if (evt.getInventory().containsAtLeast(App.main.backPack, 1) + || evt.getInventory().containsAtLeast(App.main.backPack2, 1) + || evt.getInventory().containsAtLeast(App.main.backPack3, 1) + || evt.getInventory().containsAtLeast(App.main.backPack4, 1)) { + evt.getInventory().setResult(null); + } + } + + } + } + + @EventHandler + public void ovenBlocker(FurnaceBurnEvent e) { + + if (e.getFuel() != null && e.getFuel().equals(App.main.backPack) || e.getFuel().equals(App.main.backPack2) + || e.getFuel().equals(App.main.backPack3) || e.getFuel().equals(App.main.backPack4)) { + e.setCancelled(true); + } + } + @EventHandler + public void clearInventroy(InventoryClickEvent e) { + if (e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Kleiner Rucksack")) + || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Rucksack")) + || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Großer Rucksack")) + || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Riesiger Rucksack"))) { + + if (e.getClick() == ClickType.DOUBLE_CLICK) { + if (e.getClickedInventory().getType().equals(InventoryType.PLAYER)) { + + int i = 0; + for (ItemStack is : e.getWhoClicked().getOpenInventory().getTopInventory().getStorageContents()) { + if (e.getWhoClicked().getInventory().firstEmpty() == -1) { + return; + } + if (is != null) { + e.getWhoClicked().getInventory().addItem(is); + e.getWhoClicked().getOpenInventory().getTopInventory().setItem(i, null); + } + i++; + } + + } else { + // WENN IHC OPEN KLICKE ALLES VON INV NACH OPEN + + int i = 0; + for (ItemStack is : e.getWhoClicked().getInventory().getStorageContents()) { + if (e.getWhoClicked().getOpenInventory().getTopInventory().firstEmpty() == -1) { + return; + } + + if (is != null) { + + if (is.getItemMeta() != null && is.getItemMeta().getPersistentDataContainer() != null) { + + if (is.getItemMeta().getPersistentDataContainer().has(App.main.nsk, + PersistentDataType.STRING) + || is.getItemMeta().getPersistentDataContainer().has(App.main.nsk2, + PersistentDataType.STRING) + || is.getItemMeta().getPersistentDataContainer().has(App.main.nsk3, + PersistentDataType.STRING) + || is.getItemMeta().getPersistentDataContainer().has(App.main.nsk4, + PersistentDataType.STRING) + || (e.getWhoClicked().getOpenInventory().getTopInventory().getType() + .equals(InventoryType.SHULKER_BOX) + && is.getType().toString().contains("SHULKER_BOX"))) { + + } else { + e.getWhoClicked().getOpenInventory().getTopInventory().addItem(is); + e.getWhoClicked().getInventory().setItem(i, null); + } + + } + + } + i++; + } + + } + } + return; + } + } +} \ No newline at end of file diff --git a/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExCommands.java b/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExCommands.java index e54caf8..cdc1b87 100755 --- a/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExCommands.java +++ b/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExCommands.java @@ -1,6 +1,5 @@ package de.hessj.environmentex; -import java.io.File; import java.io.IOException; import java.util.Arrays; import java.util.HashMap; @@ -19,8 +18,6 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.event.Listener; @@ -35,12 +32,11 @@ public class EnvironmentExCommands implements CommandExecutor, Listener { public static final Map playerTasks = new HashMap<>(); public static HashMap bossBars = new HashMap<>(); int taskId; - -public boolean isPlayerOnlineByName(String name) { - Player player = Bukkit.getPlayer(name); - return player != null && player.isOnline(); -} + public boolean isPlayerOnlineByName(String name) { + Player player = Bukkit.getPlayer(name); + return player != null && player.isOnline(); + } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { @@ -72,31 +68,23 @@ public boolean isPlayerOnlineByName(String name) { } if (label.equalsIgnoreCase("ignorevote")) { + if (args.length != 1) { + return false; + } + Player p = (Player) sender; - - -if(args.length != 1){ -return false; -} -Player p = (Player) sender; - - - - if(!args[0].equalsIgnoreCase("false") && !args[0].equalsIgnoreCase("true")) { - p.sendMessage(helper.R3SMessage(Type.ERROR, + if (!args[0].equalsIgnoreCase("false") && !args[0].equalsIgnoreCase("true")) { + p.sendMessage(helper.R3SMessage(Type.ERROR, "Benutzung: /ignorevote ")); return true; - } - - LoginListener.customConfig.set("players." + p.getUniqueId() + ".ignorevote", Boolean.parseBoolean(args[0])); - LoginListener.saveCustomYml(LoginListener.customConfig, LoginListener.customYml); + } + LoginListener.customConfig.set("players." + p.getUniqueId() + ".ignorevote", + Boolean.parseBoolean(args[0])); + LoginListener.saveCustomYml(LoginListener.customConfig, LoginListener.customYml); } - - - if (label.equalsIgnoreCase("pin")) { Player p = (Player) sender; UUID playerId = p.getUniqueId(); @@ -117,22 +105,17 @@ Player p = (Player) sender; p.sendMessage(helper.R3SMessage(Type.ERROR, "Benutzung: /pin share ")); return true; } - if(isPlayerOnlineByName(args[2].toString()) == false) { + if (isPlayerOnlineByName(args[2].toString()) == false) { p.sendMessage(helper.R3SMessage(Type.ERROR, "Dieser Spieler ist nicht online!")); return true; } - if(Bukkit.getPlayer(args[2].toString()).getUniqueId().equals(p.getUniqueId())){ - p.sendMessage(helper.R3SMessage(Type.ERROR, "Du kannst deine Pins nicht an dich selbst teilen!")); + if (Bukkit.getPlayer(args[2].toString()).getUniqueId().equals(p.getUniqueId())) { + p.sendMessage( + helper.R3SMessage(Type.ERROR, "Du kannst deine Pins nicht an dich selbst teilen!")); return true; } try { - - - - - - int pinId1 = Integer.parseInt(args[1]); String pinName1 = PinFeature.pinConfig.getString(playerId + "." + pinId1 + ".name"); String locationString1 = PinFeature.pinConfig.getString(playerId + "." + pinId1 + ".loc"); @@ -147,57 +130,44 @@ Player p = (Player) sender; String[] locParts = locationString1.split(", "); App.main.log("World: " + locParts[0]); + /* + * ALSO CHECK IF PIN WITH NAME + LOC EXISTS + * // **Nimmt den gesamten Text nach "/pin set" als Namen** + * String pinName = String.join(" ", Arrays.copyOfRange(args, 1, args.length)); + * Location playerLocation = p.getLocation(); + * + * // **Kleinste verfügbare ID suchen** + * int nextId = 1; + * ConfigurationSection playerSection = PinFeature.pinConfig + * .getConfigurationSection(playerId.toString()); + * if (playerSection != null) { + * Set existingIds = playerSection.getKeys(false).stream() + * .map(Integer::parseInt) + * .collect(Collectors.toSet()); + * + * while (existingIds.contains(nextId)) { + * nextId++; + * } + * } + * + * pins.put(pinName, playerLocation); + * String locationString = playerLocation.getWorld().getName() + ", " + + * playerLocation.getBlockX() + ", " + + * playerLocation.getBlockY() + ", " + + * playerLocation.getBlockZ(); + * + * PinFeature.pinConfig.set(playerId + "." + nextId + ".name", pinName); + * PinFeature.pinConfig.set(playerId + "." + nextId + ".loc", locationString); + * savePins(); + */ -/* -ALSO CHECK IF PIN WITH NAME + LOC EXISTS - // **Nimmt den gesamten Text nach "/pin set" als Namen** - String pinName = String.join(" ", Arrays.copyOfRange(args, 1, args.length)); - Location playerLocation = p.getLocation(); - - // **Kleinste verfügbare ID suchen** - int nextId = 1; - ConfigurationSection playerSection = PinFeature.pinConfig - .getConfigurationSection(playerId.toString()); - if (playerSection != null) { - Set existingIds = playerSection.getKeys(false).stream() - .map(Integer::parseInt) - .collect(Collectors.toSet()); - - while (existingIds.contains(nextId)) { - nextId++; - } - } - - pins.put(pinName, playerLocation); - String locationString = playerLocation.getWorld().getName() + ", " + - playerLocation.getBlockX() + ", " + - playerLocation.getBlockY() + ", " + - playerLocation.getBlockZ(); - - PinFeature.pinConfig.set(playerId + "." + nextId + ".name", pinName); - PinFeature.pinConfig.set(playerId + "." + nextId + ".loc", locationString); - savePins(); - */ - - - - - - - - - - - - - - - Bukkit.getPlayer(args[2].toString()).sendMessage(helper.R3SMessage(Type.SUCCESS, "Du hast den Pin '" + pinName1 + "' von " + p.getName() + " erhalten!")); - p.sendMessage(helper.R3SMessage(Type.SUCCESS, "Du hast den Pin '" + pinName1 + "' an " + args[2].toString() + " geteilt!")); + Bukkit.getPlayer(args[2].toString()).sendMessage(helper.R3SMessage(Type.SUCCESS, + "Du hast den Pin '" + pinName1 + "' von " + p.getName() + " erhalten!")); + p.sendMessage(helper.R3SMessage(Type.SUCCESS, + "Du hast den Pin '" + pinName1 + "' an " + args[2].toString() + " geteilt!")); } catch (NumberFormatException e) { p.sendMessage(helper.R3SMessage(Type.ERROR, "Ungültige Pin-ID.")); } - break; case "set": @@ -304,12 +274,6 @@ ALSO CHECK IF PIN WITH NAME + LOC EXISTS try { - - - - - - int pinId1 = Integer.parseInt(args[1]); String pinName1 = PinFeature.pinConfig.getString(playerId + "." + pinId1 + ".name"); String locationString1 = PinFeature.pinConfig.getString(playerId + "." + pinId1 + ".loc"); @@ -326,60 +290,42 @@ ALSO CHECK IF PIN WITH NAME + LOC EXISTS int y = Integer.parseInt(locParts[2]); int z = Integer.parseInt(locParts[3]); - if(!p.getLocation().getWorld().getName().toString().equals(worldName.toString())) { - p.sendMessage(helper.R3SMessage(Type.ERROR, "Du kannst nur Pins aus deiner aktuellen Welt folgen.")); + if (!p.getLocation().getWorld().getName().toString().equals(worldName.toString())) { + p.sendMessage(helper.R3SMessage(Type.ERROR, + "Du kannst nur Pins aus deiner aktuellen Welt folgen.")); return true; } -p.sendMessage(helper.R3SMessage(Type.SUCCESS, "Du folgst nun dem Pin '" + pinName1 + "'")); + p.sendMessage(helper.R3SMessage(Type.SUCCESS, "Du folgst nun dem Pin '" + pinName1 + "'")); - UUID uuid = p.getUniqueId(); + UUID uuid = p.getUniqueId(); -if (playerTasks.containsKey(uuid)) { - BukkitTask existingTask = playerTasks.remove(uuid); // remove from map - existingTask.cancel(); // cancel the repeating task - } - - BukkitTask task = Bukkit.getScheduler().runTaskTimer(App.main, () -> { - int cur_x = (int) p.getLocation().getBlockX(); - int cur_y = (int) p.getLocation().getBlockY(); - int cur_z = (int) p.getLocation().getBlockZ(); - - - // BossBar erstellen/aktualisieren - BossBar bossBar = Bukkit.createBossBar("Entfernung: " + (cur_x-x) + ", " + (cur_y-y) + ", " + (cur_z-z), - BarColor.WHITE, BarStyle.SOLID); - bossBar.setProgress(0.0); - - if (bossBars.containsKey(p.getUniqueId())) { - bossBars.get(p.getUniqueId()).removeAll(); - bossBars.remove(p.getUniqueId()); + if (playerTasks.containsKey(uuid)) { + BukkitTask existingTask = playerTasks.remove(uuid); // remove from map + existingTask.cancel(); // cancel the repeating task } - bossBar.addPlayer(p); - bossBars.put(p.getUniqueId(), bossBar); - - - }, 0L, 5L); - - playerTasks.put(uuid, task); - - - - - - - - - - - - - + BukkitTask task = Bukkit.getScheduler().runTaskTimer(App.main, () -> { + int cur_x = (int) p.getLocation().getBlockX(); + int cur_y = (int) p.getLocation().getBlockY(); + int cur_z = (int) p.getLocation().getBlockZ(); + // BossBar erstellen/aktualisieren + BossBar bossBar = Bukkit.createBossBar( + "Entfernung: " + (cur_x - x) + ", " + (cur_y - y) + ", " + (cur_z - z), + BarColor.WHITE, BarStyle.SOLID); + bossBar.setProgress(0.0); + if (bossBars.containsKey(p.getUniqueId())) { + bossBars.get(p.getUniqueId()).removeAll(); + bossBars.remove(p.getUniqueId()); + } + bossBar.addPlayer(p); + bossBars.put(p.getUniqueId(), bossBar); + }, 0L, 5L); + playerTasks.put(uuid, task); } catch (NumberFormatException e) { p.sendMessage(helper.R3SMessage(Type.ERROR, "Kein Pin mit dieser ID gefunden.")); @@ -395,8 +341,8 @@ if (playerTasks.containsKey(uuid)) { if (task != null) { task.cancel(); p.sendMessage(helper.R3SMessage(Type.ERROR, "Du folgst nun keinem Pin mehr.")); - } - + } + } break; diff --git a/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExListeners.java b/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExListeners.java index 3ecd1df..f453336 100755 --- a/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExListeners.java +++ b/environmentex/src/main/java/de/hessj/environmentex/EnvironmentExListeners.java @@ -1,10 +1,8 @@ package de.hessj.environmentex; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; -import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Random; @@ -18,44 +16,19 @@ import org.bukkit.Statistic; import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.block.data.type.Fence; import org.bukkit.block.data.type.Leaves; -import org.bukkit.block.data.type.Stairs; -import org.bukkit.entity.Axolotl; import org.bukkit.entity.EntityType; -import org.bukkit.entity.Fish; -import org.bukkit.entity.Item; import org.bukkit.entity.Player; -import org.bukkit.entity.Squid; import org.bukkit.entity.WanderingTrader; -import org.bukkit.entity.memory.MemoryKey; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.Event.Result; -import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.LeavesDecayEvent; import org.bukkit.event.entity.EntityDeathEvent; -import org.bukkit.event.entity.EntityTargetLivingEntityEvent; -import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.inventory.ClickType; -import org.bukkit.event.inventory.FurnaceBurnEvent; -import org.bukkit.event.inventory.InventoryAction; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryDragEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; -import org.bukkit.event.inventory.InventoryType; -import org.bukkit.event.inventory.PrepareItemCraftEvent; -import org.bukkit.event.player.PlayerAttemptPickupItemEvent; import org.bukkit.event.player.PlayerBedEnterEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.MerchantRecipe; -import org.bukkit.persistence.PersistentDataType; -import net.kyori.adventure.text.Component; -import de.hessj.helper.Helper; import de.hessj.helper.Helper.*; public class EnvironmentExListeners implements Listener { @@ -365,619 +338,6 @@ if(LoginListener.customConfig.getBoolean("players." + p.getUniqueId() + ".ignore BlockFace.DOWN); } - public static HashMap hm = new HashMap(); - public static HashMap hm2 = new HashMap(); - public static HashMap hm3 = new HashMap(); - public static HashMap hm4 = new HashMap(); - - @EventHandler - public void onItemCollect(PlayerAttemptPickupItemEvent e) throws IOException { - - if (e.getPlayer().getInventory().firstEmpty() == -1 && e.getRemaining() > 0) { - Item itm = e.getItem(); - - if (itm.getItemStack().getType() == Material.BARRIER && e.getItem().getItemStack().hasItemMeta()) { - - if (itm.getItemStack().getItemMeta().getPersistentDataContainer().has(App.main.nsk, - PersistentDataType.STRING) - && (itm.getItemStack().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk, PersistentDataType.STRING).equals("R3S_kleiner_Rucksack")) - || (itm.getItemStack().getItemMeta().getPersistentDataContainer().has(App.main.nsk2, - PersistentDataType.STRING) - && itm.getItemStack().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk2, PersistentDataType.STRING).equals("R3S_Rucksack")) - || (itm.getItemStack().getItemMeta().getPersistentDataContainer().has(App.main.nsk3, - PersistentDataType.STRING) - && itm.getItemStack().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk3, PersistentDataType.STRING).equals("R3S_großer_Rucksack")) - || (itm.getItemStack().getItemMeta().getPersistentDataContainer().has(App.main.nsk4, - PersistentDataType.STRING) - && itm.getItemStack().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk4, PersistentDataType.STRING) - .equals("R3S_riesiger_Rucksack"))) { - - e.setCancelled(true); - return; - - } - } - - if (e.getPlayer().getInventory().contains(App.main.backPack)) { - checkBackpack(1, e.getPlayer(), itm.getItemStack()); - } - if (e.getPlayer().getInventory().contains(App.main.backPack2)) { - checkBackpack(2, e.getPlayer(), itm.getItemStack()); - } - if (e.getPlayer().getInventory().contains(App.main.backPack3)) { - checkBackpack(3, e.getPlayer(), itm.getItemStack()); - } - if (e.getPlayer().getInventory().contains(App.main.backPack4)) { - checkBackpack(4, e.getPlayer(), itm.getItemStack()); - } - } - - } - - public void checkBackpack(int size, Player p, ItemStack i) throws IOException { - - Boolean freespace = false; - Inventory inv = Bukkit.createInventory(null, 9, Component.translatable("new")); - - if (size == 1) { - inv = Bukkit.createInventory(null, 9, Component.translatable("tempBackpack")); - ItemStack[] is; - is = Helper.itemStackArrayFromBase64( - App.main.getConfig().getString(p.getUniqueId() + ".backpack.contents.leatherbackpack")); - inv.setContents(is); - } else if (size == 2) { - inv = Bukkit.createInventory(null, 18, Component.translatable("tempBackpack2")); - ItemStack[] is; - is = Helper.itemStackArrayFromBase64( - App.main.getConfig().getString(p.getUniqueId() + ".backpack.contents.ironbackpack")); - inv.setContents(is); - } else if (size == 3) { - inv = Bukkit.createInventory(null, 27, Component.translatable("tempBackpack3")); - ItemStack[] is; - is = Helper.itemStackArrayFromBase64( - App.main.getConfig().getString(p.getUniqueId() + ".backpack.contents.goldbackpack")); - inv.setContents(is); - } else if (size == 4) { - inv = Bukkit.createInventory(null, 36, Component.translatable("tempBackpack4")); - ItemStack[] is; - is = Helper.itemStackArrayFromBase64( - App.main.getConfig().getString(p.getUniqueId() + ".backpack.contents.diamondbackpack")); - inv.setContents(is); - } - - for (ItemStack is : inv.getContents()) { - if (is != null) { - if (is.isSimilar(i)) { - int iscount = is.getAmount(); - int itemcount = i.getAmount(); - if (is.getAmount() == is.getMaxStackSize()) { - // nix tun - } else { - if (iscount + itemcount > is.getMaxStackSize()) { - - is.setAmount(is.getMaxStackSize()); - - i.subtract(is.getMaxStackSize() - (itemcount + iscount - is.getMaxStackSize())); - - // PLAYSOUND - Bukkit.getServer().getWorlds().get(0).playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, - 0.25F, 1.8F); - - } else { - is.setAmount(iscount + itemcount); - i.setAmount(0); - // PLAYSOUND - Bukkit.getServer().getWorlds().get(0).playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, - 0.25F, 1.8F); - } - } - } - } else { - freespace = true; - } - - } - - if (freespace) { - inv.setItem(inv.firstEmpty(), i); - i.setAmount(0); - // PLAYSOUND - Bukkit.getServer().getWorlds().get(0).playSound(p.getLocation(), Sound.ENTITY_ITEM_PICKUP, 0.25F, 1.8F); - } - - if (size == 1) { - App.main.getConfig().set(p.getUniqueId() + ".backpack.contents.leatherbackpack", - Helper.itemStackArrayToBase64(inv.getContents())); - } else if (size == 2) { - App.main.getConfig().set(p.getUniqueId() + ".backpack.contents.ironbackpack", - Helper.itemStackArrayToBase64(inv.getContents())); - } else if (size == 3) { - App.main.getConfig().set(p.getUniqueId() + ".backpack.contents.goldbackpack", - Helper.itemStackArrayToBase64(inv.getContents())); - } else if (size == 4) { - App.main.getConfig().set(p.getUniqueId() + ".backpack.contents.diamondbackpack", - Helper.itemStackArrayToBase64(inv.getContents())); - } - App.main.saveConfig(); - } - - @EventHandler - public void onBackpackUse(PlayerInteractEvent e) { - if (e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.LEFT_CLICK_BLOCK) { - return; - } - if (e.getPlayer().getInventory().getItemInOffHand() != null - && e.getPlayer().getInventory().getItemInOffHand().getItemMeta() != null) { - if (e.getPlayer().getInventory().getItemInOffHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk, PersistentDataType.STRING) - || e.getPlayer().getInventory().getItemInOffHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk2, PersistentDataType.STRING) - || e.getPlayer().getInventory().getItemInOffHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk3, PersistentDataType.STRING) - || e.getPlayer().getInventory().getItemInOffHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk4, PersistentDataType.STRING)) { - e.setCancelled(true); - return; - } - } - // ItemStack is = e.getPlayer().getInventory().getItemInOffHand(); - if (e.getPlayer().getInventory().getItemInMainHand() != null - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta() != null) { - if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk, PersistentDataType.STRING) - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk, PersistentDataType.STRING).toString().equals("R3S_kleiner_Rucksack")) { - if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK - && (!App.helper.isInteractable(e.getClickedBlock())) - || e.getClickedBlock() != null && (App.helper.isInteractable(e.getClickedBlock()) - && (e.getClickedBlock().getBlockData() != null - && (e.getClickedBlock().getBlockData() instanceof Stairs - || e.getClickedBlock().getBlockData() instanceof Fence))))) { - // inv = Bukkit.createInventory(null, 9, Component.translatable("Kleiner - // Rucksack")); - hm.put(e.getPlayer(), Bukkit.createInventory(null, 9, Component.translatable("Kleiner Rucksack"))); - // e.getPlayer().openInventory(inv); - - e.setCancelled(true); - - e.getPlayer().openInventory(hm.get(e.getPlayer())); - - /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { - @Override - public void run() { - App.main.log(is.toString()); - //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); - } - }, 10L);*/ - - } - } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk2, PersistentDataType.STRING) - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk2, PersistentDataType.STRING).toString().equals("R3S_Rucksack")) { - if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK - && (!App.helper.isInteractable(e.getClickedBlock())) - || (App.helper.isInteractable(e.getClickedBlock()) - && (e.getClickedBlock().getBlockData() != null - && (e.getClickedBlock().getBlockData() instanceof Stairs - || e.getClickedBlock().getBlockData() instanceof Fence))))) { // inv2 = - // Bukkit.createInventory(null, - // 18, - // Component.translatable("Rucksack")); - hm2.put(e.getPlayer(), Bukkit.createInventory(null, 18, Component.translatable("Rucksack"))); - // e.getPlayer().openInventory(inv2); - e.setCancelled(true); - e.getPlayer().openInventory(hm2.get(e.getPlayer())); - /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { - @Override - public void run() { - App.main.log(is.toString()); - //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); - } - }, 10L);*/ - } - } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk3, PersistentDataType.STRING) - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk3, PersistentDataType.STRING).toString().equals("R3S_großer_Rucksack")) { - if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK - && (!App.helper.isInteractable(e.getClickedBlock())) - || (App.helper.isInteractable(e.getClickedBlock()) - && (e.getClickedBlock().getBlockData() != null - && (e.getClickedBlock().getBlockData() instanceof Stairs - || e.getClickedBlock().getBlockData() instanceof Fence))))) { // inv3 = - // Bukkit.createInventory(null, - // 27, - // Component.translatable("Großer - // Rucksack")); - hm3.put(e.getPlayer(), Bukkit.createInventory(null, 27, Component.translatable("Großer Rucksack"))); - // e.getPlayer().openInventory(inv3); - e.setCancelled(true); - e.getPlayer().openInventory(hm3.get(e.getPlayer())); - /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { - @Override - public void run() { - App.main.log(is.toString()); - //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); - } - }, 10L);*/ - } - } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk4, PersistentDataType.STRING) - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk4, PersistentDataType.STRING).toString().equals("R3S_riesiger_Rucksack")) { - if (e.getAction() == Action.RIGHT_CLICK_AIR || (e.getAction() == Action.RIGHT_CLICK_BLOCK - && (!App.helper.isInteractable(e.getClickedBlock())) - || (App.helper.isInteractable(e.getClickedBlock()) - && (e.getClickedBlock().getBlockData() != null - && (e.getClickedBlock().getBlockData() instanceof Stairs - || e.getClickedBlock().getBlockData() instanceof Fence))))) { // inv4 = - // Bukkit.createInventory(null, - // 36, - // Component.translatable("Riesiger - // Rucksack")); - hm4.put(e.getPlayer(), - Bukkit.createInventory(null, 36, Component.translatable("Riesiger Rucksack"))); - e.setCancelled(true); - e.getPlayer().openInventory(hm4.get(e.getPlayer())); - // e.getPlayer().openInventory(inv4); - /*Bukkit.getScheduler().scheduleSyncDelayedTask(App.main, new Runnable() { - @Override - public void run() { - App.main.log(is.toString()); - //e.getPlayer().getInventory().setItemInOffHand(new ItemStack(Material.ACACIA_BOAT)); - } - }, 10L);*/ - } - } - } - - } - - @EventHandler - public void onBackpackClose(InventoryCloseEvent e) { - if (e.getInventory() == hm.get(e.getPlayer())) { - if (!App.main.getConfig().contains(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack")) { - App.main.getConfig().createSection(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack"); - } - App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack", - Helper.itemStackArrayToBase64(e.getInventory().getContents())); - App.main.saveConfig(); - } else if (e.getInventory() == hm2.get(e.getPlayer())) { - if (!App.main.getConfig().contains(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack")) { - App.main.getConfig().createSection(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack"); - } - App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack", - Helper.itemStackArrayToBase64(e.getInventory().getContents())); - App.main.saveConfig(); - } else if (e.getInventory() == hm3.get(e.getPlayer())) { - if (!App.main.getConfig().contains(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack")) { - App.main.getConfig().createSection(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack"); - } - App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack", - Helper.itemStackArrayToBase64(e.getInventory().getContents())); - App.main.saveConfig(); - } else if (e.getInventory() == hm4.get(e.getPlayer())) { - if (!App.main.getConfig().contains(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack")) { - App.main.getConfig().createSection(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack"); - } - App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack", - Helper.itemStackArrayToBase64(e.getInventory().getContents())); - App.main.saveConfig(); - } - } - - @EventHandler - public void onDeath(PlayerDeathEvent e) throws IllegalArgumentException, IOException { - e.deathMessage(null); - for (ItemStack is : e.getPlayer().getInventory().getContents()) { - if (is == null || !is.hasItemMeta() || is.getItemMeta().getPersistentDataContainer() == null) { - // return; - } - - else { - if (is.getItemMeta().getPersistentDataContainer().has(App.main.nsk, PersistentDataType.STRING)) { - if (App.main.getConfig() - .contains(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack")) { - Inventory inv = Bukkit.createInventory(null, 9, - Component.translatable("Kleiner Rucksack DEAD")); - inv.setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() - .getString(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack"))); - for (ItemStack bis : inv.getContents()) { - if (bis != null) { - e.getPlayer().getWorld().dropItem(e.getPlayer().getLocation(), bis); - } - - } - - App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack", - Helper.itemStackArrayToBase64(new ItemStack[] {})); - - App.main.saveConfig(); - } - } else if (is.getItemMeta().getPersistentDataContainer().has(App.main.nsk2, - PersistentDataType.STRING)) { - if (App.main.getConfig() - .contains(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack")) { - Inventory inv = Bukkit.createInventory(null, 18, Component.translatable("Rucksack DEAD")); - inv.setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() - .getString(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack"))); - for (ItemStack bis : inv.getContents()) { - if (bis != null) { - e.getPlayer().getWorld().dropItem(e.getPlayer().getLocation(), bis); - } - - } - App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack", - Helper.itemStackArrayToBase64(new ItemStack[] {})); - App.main.saveConfig(); - } - } else if (is.getItemMeta().getPersistentDataContainer().has(App.main.nsk3, - PersistentDataType.STRING)) { - if (App.main.getConfig() - .contains(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack")) { - Inventory inv = Bukkit.createInventory(null, 27, - Component.translatable("Großer Rucksack DEAD")); - inv.setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() - .getString(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack"))); - for (ItemStack bis : inv.getContents()) { - if (bis != null) { - e.getPlayer().getWorld().dropItem(e.getPlayer().getLocation(), bis); - } - - } - App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack", - Helper.itemStackArrayToBase64(new ItemStack[] {})); - App.main.saveConfig(); - } - } else if (is.getItemMeta().getPersistentDataContainer().has(App.main.nsk4, - PersistentDataType.STRING)) { - if (App.main.getConfig() - .contains(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack")) { - Inventory inv = Bukkit.createInventory(null, 36, - Component.translatable("Riesiger Rucksack DEAD")); - inv.setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() - .getString(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack"))); - for (ItemStack bis : inv.getContents()) { - if (bis != null) { - e.getPlayer().getWorld().dropItem(e.getPlayer().getLocation(), bis); - } - - } - App.main.getConfig().set(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack", - Helper.itemStackArrayToBase64(new ItemStack[] {})); - App.main.saveConfig(); - } - } - } - } - } - - @EventHandler - public void onBackpackOpen(InventoryOpenEvent e) throws IOException { - try { - if (e.getView().title().equals(Component.translatable("Kleiner Rucksack")) - || e.getView().title().equals(Component.translatable("Rucksack")) - || e.getView().title().equals(Component.translatable("Großer Rucksack")) - || e.getView().title().equals(Component.translatable("Riesiger Rucksack"))) { - if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk, PersistentDataType.STRING) - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk, PersistentDataType.STRING).toString() - .equals("R3S_kleiner_Rucksack")) { - if (App.main.getConfig() - .contains(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack")) { - e.getInventory().setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() - .getString(e.getPlayer().getUniqueId() + ".backpack.contents.leatherbackpack"))); - } - } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk2, PersistentDataType.STRING) - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk2, PersistentDataType.STRING).toString().equals("R3S_Rucksack")) { - if (App.main.getConfig() - .contains(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack")) { - e.getInventory().setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() - .getString(e.getPlayer().getUniqueId() + ".backpack.contents.ironbackpack"))); - } - } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk3, PersistentDataType.STRING) - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk3, PersistentDataType.STRING).toString() - .equals("R3S_großer_Rucksack")) { - if (App.main.getConfig() - .contains(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack")) { - e.getInventory().setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() - .getString(e.getPlayer().getUniqueId() + ".backpack.contents.goldbackpack"))); - } - } else if (e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .has(App.main.nsk4, PersistentDataType.STRING) - && e.getPlayer().getInventory().getItemInMainHand().getItemMeta().getPersistentDataContainer() - .get(App.main.nsk4, PersistentDataType.STRING).toString() - .equals("R3S_riesiger_Rucksack")) { - if (App.main.getConfig() - .contains(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack")) { - e.getInventory().setContents(Helper.itemStackArrayFromBase64(App.main.getConfig() - .getString(e.getPlayer().getUniqueId() + ".backpack.contents.diamondbackpack"))); - } - } - } - } catch (Exception ex) { - } - } - - @EventHandler - public void onInvMove(InventoryDragEvent e) { - if (e.getInventory() != null && e.getInventory().getType() == InventoryType.CHEST) { - if (e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Kleiner Rucksack")) - || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Rucksack")) - || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Großer Rucksack")) - || e.getWhoClicked().getOpenInventory().title() - .equals(Component.translatable("Riesiger Rucksack"))) { - - for (Object s : e.getRawSlots()) { - if ((int) s > e.getWhoClicked().getOpenInventory().getTopInventory().getSize()) { - - return; - } - } - - if (e.getOldCursor() != null) { - if (e.getOldCursor().equals(App.main.backPack) || e.getOldCursor().equals(App.main.backPack2) - || e.getOldCursor().equals(App.main.backPack3) - || e.getOldCursor().equals(App.main.backPack4)) { - e.setCancelled(true); - } - } - } - - } - - } - - @EventHandler - public void onInvMove(InventoryClickEvent e) { - if (e.getClickedInventory() != null && e.getClickedInventory().getType() == InventoryType.CHEST) { - if (e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Kleiner Rucksack")) - || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Rucksack")) - || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Großer Rucksack")) - || e.getWhoClicked().getOpenInventory().title() - .equals(Component.translatable("Riesiger Rucksack"))) { - - if (/* - * e.getAction() == InventoryAction.HOTBAR_MOVE_AND_READD - * || - */e.getAction() == InventoryAction.HOTBAR_SWAP) { - - if (e.getHotbarButton() != -1) {// evtl auch schauen ob titel, da es sonst auch nicht in truhe - // gepackt werden kann, evtl aber auch schon oben gekläört - - if (e.getView().getBottomInventory().getItem(e.getHotbarButton()) != null && (e.getView() - .getBottomInventory().getItem(e.getHotbarButton()).equals(App.main.backPack) - || e.getView().getBottomInventory().getItem(e.getHotbarButton()) - .equals(App.main.backPack2) - || e.getView().getBottomInventory().getItem(e.getHotbarButton()) - .equals(App.main.backPack3) - || e.getView().getBottomInventory().getItem(e.getHotbarButton()) - .equals(App.main.backPack4))) { - e.setCancelled(true); - return; - } - - } - - if (e.getHotbarButton() != -1 - && e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) != null) { - if (e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) - .equals(App.main.backPack) - || e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) - .equals(App.main.backPack2) - || e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) - .equals(App.main.backPack3) - || e.getWhoClicked().getInventory().getItem(e.getHotbarButton()) - .equals(App.main.backPack4)) { - e.setCancelled(true); - return; - } - } else { - if (e.getWhoClicked().getInventory().getItemInOffHand() != null && (e.getWhoClicked() - .getInventory().getItemInOffHand().equals(App.main.backPack) - || e.getWhoClicked().getInventory().getItemInOffHand().equals(App.main.backPack2) - || e.getWhoClicked().getInventory().getItemInOffHand().equals(App.main.backPack3) - || e.getWhoClicked().getInventory().getItemInOffHand().equals(App.main.backPack4))) { - ItemStack bpIs = e.getWhoClicked().getInventory().getItemInOffHand(); - e.setCancelled(true); - e.getWhoClicked().getInventory().setItemInOffHand(bpIs); - } - } - - } - if (e.getCursor() != null) { - if (e.getCursor().equals(App.main.backPack) || e.getCursor().equals(App.main.backPack2) - || e.getCursor().equals(App.main.backPack3) || e.getCursor().equals(App.main.backPack4)) { - e.setCancelled(true); - } - } - - } - } - - if (e.isShiftClick()) { - if (e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Kleiner Rucksack")) - || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Rucksack")) - || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Großer Rucksack")) - || e.getWhoClicked().getOpenInventory().title() - .equals(Component.translatable("Riesiger Rucksack"))) { - if (e.getClickedInventory() != null && e.getClickedInventory().getItem(e.getSlot()) != null) { - if (e.getClickedInventory() != null && e.getClickedInventory().getItem(e.getSlot()) != null) { - if (e.getClickedInventory().getItem(e.getSlot()).getItemMeta() - .getPersistentDataContainer() != null) { - if (e.getClickedInventory().getItem(e.getSlot()).getItemMeta().getPersistentDataContainer() - .get(App.main.nsk, PersistentDataType.STRING) != null - && e.getClickedInventory().getItem(e.getSlot()).getItemMeta() - .getPersistentDataContainer().get(App.main.nsk, PersistentDataType.STRING) - .toString().equals("R3S_kleiner_Rucksack") - || e.getClickedInventory().getItem(e.getSlot()).getItemMeta() - .getPersistentDataContainer() - .get(App.main.nsk2, PersistentDataType.STRING) != null - && e.getClickedInventory().getItem(e.getSlot()).getItemMeta() - .getPersistentDataContainer() - .get(App.main.nsk2, PersistentDataType.STRING).toString() - .equals("R3S_Rucksack") - || e.getClickedInventory().getItem(e.getSlot()).getItemMeta() - .getPersistentDataContainer() - .get(App.main.nsk3, PersistentDataType.STRING) != null - && e.getClickedInventory().getItem(e.getSlot()).getItemMeta() - .getPersistentDataContainer() - .get(App.main.nsk3, PersistentDataType.STRING).toString() - .equals("R3S_großer_Rucksack") - || e.getClickedInventory().getItem(e.getSlot()).getItemMeta() - .getPersistentDataContainer() - .get(App.main.nsk4, PersistentDataType.STRING) != null - && e.getClickedInventory().getItem(e.getSlot()).getItemMeta() - .getPersistentDataContainer() - .get(App.main.nsk4, PersistentDataType.STRING).toString() - .equals("R3S_riesiger_Rucksack")) { - e.setCancelled(true); - } - } - } - } - } - } - } - - @EventHandler - public void craftBlocker(PrepareItemCraftEvent evt) { - - if (evt.getRecipe() != null && evt.getRecipe().getResult() != null) { - if (!evt.getRecipe().getResult().equals(App.main.backPack) - && !evt.getRecipe().getResult().equals(App.main.backPack2) - && !evt.getRecipe().getResult().equals(App.main.backPack3) - && !evt.getRecipe().getResult().equals(App.main.backPack4)) { - if (evt.getInventory().containsAtLeast(App.main.backPack, 1) - || evt.getInventory().containsAtLeast(App.main.backPack2, 1) - || evt.getInventory().containsAtLeast(App.main.backPack3, 1) - || evt.getInventory().containsAtLeast(App.main.backPack4, 1)) { - evt.getInventory().setResult(null); - } - } - - } - } - - @EventHandler - public void ovenBlocker(FurnaceBurnEvent e) { - - if (e.getFuel() != null && e.getFuel().equals(App.main.backPack) || e.getFuel().equals(App.main.backPack2) - || e.getFuel().equals(App.main.backPack3) || e.getFuel().equals(App.main.backPack4)) { - e.setCancelled(true); - } - } - @EventHandler public void onTraderDeath(EntityDeathEvent event) { if (event.getEntityType() == EntityType.WANDERING_TRADER) { @@ -1001,101 +361,5 @@ if(LoginListener.customConfig.getBoolean("players." + p.getUniqueId() + ".ignore } } - @EventHandler - public void copperNerf(BlockBreakEvent e) { - if (e.getPlayer().getInventory().getItemInMainHand() == null - || (e.getBlock().getType().equals(Material.COPPER_ORE) == false - && e.getBlock().getType().equals(Material.DEEPSLATE_COPPER_ORE) == false)) { - return; - } - if (e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.STONE_PICKAXE) || - e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.IRON_PICKAXE) || - e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.GOLDEN_PICKAXE) || - e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.DIAMOND_PICKAXE) || - e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.NETHERITE_PICKAXE)) { - e.setCancelled(true); - Location loc = e.getBlock().getLocation(); - e.getBlock().breakNaturally(new ItemStack(Material.AIR)); - Bukkit.getWorlds().get(0).dropItem(loc, new ItemStack(Material.RAW_COPPER, 1)); - - } - } - - @EventHandler - public void axoNerf(EntityTargetLivingEntityEvent e) { - if (e.getEntity() instanceof org.bukkit.entity.Axolotl - && (e.getTarget() instanceof Fish || e.getTarget() instanceof Squid)) { - e.setTarget(null); - Axolotl ax = (Axolotl) e.getEntity(); - MemoryKey mk = MemoryKey.HAS_HUNTING_COOLDOWN; - ax.setMemory(mk, true); - return; - } - - } - - @EventHandler - public void clearInventroy(InventoryClickEvent e) { - if (e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Kleiner Rucksack")) - || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Rucksack")) - || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Großer Rucksack")) - || e.getWhoClicked().getOpenInventory().title().equals(Component.translatable("Riesiger Rucksack"))) { - - if (e.getClick() == ClickType.DOUBLE_CLICK) { - if (e.getClickedInventory().getType().equals(InventoryType.PLAYER)) { - - int i = 0; - for (ItemStack is : e.getWhoClicked().getOpenInventory().getTopInventory().getStorageContents()) { - if (e.getWhoClicked().getInventory().firstEmpty() == -1) { - return; - } - if (is != null) { - e.getWhoClicked().getInventory().addItem(is); - e.getWhoClicked().getOpenInventory().getTopInventory().setItem(i, null); - } - i++; - } - - } else { - // WENN IHC OPEN KLICKE ALLES VON INV NACH OPEN - - int i = 0; - for (ItemStack is : e.getWhoClicked().getInventory().getStorageContents()) { - if (e.getWhoClicked().getOpenInventory().getTopInventory().firstEmpty() == -1) { - return; - } - - if (is != null) { - - if (is.getItemMeta() != null && is.getItemMeta().getPersistentDataContainer() != null) { - - if (is.getItemMeta().getPersistentDataContainer().has(App.main.nsk, - PersistentDataType.STRING) - || is.getItemMeta().getPersistentDataContainer().has(App.main.nsk2, - PersistentDataType.STRING) - || is.getItemMeta().getPersistentDataContainer().has(App.main.nsk3, - PersistentDataType.STRING) - || is.getItemMeta().getPersistentDataContainer().has(App.main.nsk4, - PersistentDataType.STRING) - || (e.getWhoClicked().getOpenInventory().getTopInventory().getType() - .equals(InventoryType.SHULKER_BOX) - && is.getType().toString().contains("SHULKER_BOX"))) { - - } else { - e.getWhoClicked().getOpenInventory().getTopInventory().addItem(is); - e.getWhoClicked().getInventory().setItem(i, null); - } - - } - - } - i++; - } - - } - } - return; - } - } }