moved backpacks to own class
All checks were successful
Gitea Actions Demo / Build-Gradle (push) Successful in 2m21s

This commit is contained in:
Your Name
2025-07-29 01:41:12 +02:00
parent d1eb737578
commit 36f27143a0
4 changed files with 787 additions and 873 deletions

View File

@@ -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());

View File

@@ -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<Player, Inventory> hm = new HashMap<Player, Inventory>();
public static HashMap<Player, Inventory> hm2 = new HashMap<Player, Inventory>();
public static HashMap<Player, Inventory> hm3 = new HashMap<Player, Inventory>();
public static HashMap<Player, Inventory> hm4 = new HashMap<Player, Inventory>();
@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;
}
}
}

View File

@@ -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;
@@ -36,11 +33,10 @@ public class EnvironmentExCommands implements CommandExecutor, Listener {
public static HashMap<UUID, BossBar> bossBars = new HashMap<>();
int taskId;
public boolean isPlayerOnlineByName(String name) {
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")) {
if (!args[0].equalsIgnoreCase("false") && !args[0].equalsIgnoreCase("true")) {
p.sendMessage(helper.R3SMessage(Type.ERROR,
"Benutzung: /ignorevote <true | false>"));
return true;
}
LoginListener.customConfig.set("players." + p.getUniqueId() + ".ignorevote", Boolean.parseBoolean(args[0]));
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 <id> <onlineplayer>"));
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,58 +130,45 @@ 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<Integer> 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<Integer> 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":
if (args.length < 2) {
@@ -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,16 +290,17 @@ 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();
if (playerTasks.containsKey(uuid)) {
if (playerTasks.containsKey(uuid)) {
BukkitTask existingTask = playerTasks.remove(uuid); // remove from map
existingTask.cancel(); // cancel the repeating task
}
@@ -345,9 +310,9 @@ if (playerTasks.containsKey(uuid)) {
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),
BossBar bossBar = Bukkit.createBossBar(
"Entfernung: " + (cur_x - x) + ", " + (cur_y - y) + ", " + (cur_z - z),
BarColor.WHITE, BarStyle.SOLID);
bossBar.setProgress(0.0);
@@ -358,29 +323,10 @@ if (playerTasks.containsKey(uuid)) {
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."));
}

View File

@@ -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<Player, Inventory> hm = new HashMap<Player, Inventory>();
public static HashMap<Player, Inventory> hm2 = new HashMap<Player, Inventory>();
public static HashMap<Player, Inventory> hm3 = new HashMap<Player, Inventory>();
public static HashMap<Player, Inventory> hm4 = new HashMap<Player, Inventory>();
@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<Boolean> 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;
}
}
}