From 5b1ed644d1de81475c35485c418ad8ccc67b5561 Mon Sep 17 00:00:00 2001 From: zOnlyKroks Date: Sun, 3 May 2026 12:52:23 +0200 Subject: [PATCH] [fightsystem]: Fix broken kit system --- .../utils/FlatteningWrapper21.java | 6 +--- .../listener/PersonalKitCreator.java | 36 +++++++------------ 2 files changed, 13 insertions(+), 29 deletions(-) diff --git a/FightSystem/FightSystem_21/src/de/steamwar/fightsystem/utils/FlatteningWrapper21.java b/FightSystem/FightSystem_21/src/de/steamwar/fightsystem/utils/FlatteningWrapper21.java index 70dad919..ad535a6c 100644 --- a/FightSystem/FightSystem_21/src/de/steamwar/fightsystem/utils/FlatteningWrapper21.java +++ b/FightSystem/FightSystem_21/src/de/steamwar/fightsystem/utils/FlatteningWrapper21.java @@ -24,10 +24,6 @@ import org.bukkit.inventory.ItemStack; public class FlatteningWrapper21 extends FlatteningWrapper14 { @Override public boolean hasAttributeModifier(ItemStack stack) { - if (!stack.getDataTypes().isEmpty()) { - return true; - } - - return super.hasAttributeModifier(stack); + return stack.hasItemMeta() && stack.getItemMeta() != null && stack.getItemMeta().hasAttributeModifiers(); } } diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java index 422e2a94..54adf273 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java @@ -35,10 +35,7 @@ import org.bukkit.entity.HumanEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryAction; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; +import org.bukkit.event.inventory.*; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.ItemStack; @@ -81,25 +78,8 @@ public class PersonalKitCreator implements Listener { if(!openKitCreators.containsKey(e.getWhoClicked())) return; - Player player = (Player) e.getWhoClicked(); - //Deny bad items if(Kit.isBadItem(e.getCursor())) e.setCancelled(true); - - /* Should the inventory reset? */ - if(e.getAction() != InventoryAction.PLACE_ALL) - return; - - ItemStack[] items = e.getWhoClicked().getInventory().getContents(); - for(int i = 0; i < items.length; i++){ - ItemStack stack = items[i]; - if(stack != null && i != e.getSlot()) - return; - } - - FightPlayer fightPlayer = Fight.getFightPlayer(player); - assert fightPlayer != null; - Bukkit.getScheduler().runTaskLater(FightSystem.getPlugin(), () -> fightPlayer.getKit().loadToPlayer(player), 1); } @EventHandler @@ -117,7 +97,13 @@ public class PersonalKitCreator implements Listener { if(backup == null) return; - backup.close(); + InventoryType type = e.getInventory().getType(); + if(type == InventoryType.CHEST || type == InventoryType.DISPENSER || + type == InventoryType.FURNACE || type == InventoryType.HOPPER || + type == InventoryType.DROPPER || type == InventoryType.BARREL || + type == InventoryType.BREWING || type == InventoryType.ENCHANTING) { + backup.close(); + } } @EventHandler @@ -126,7 +112,7 @@ public class PersonalKitCreator implements Listener { if(backup == null) return; - backup.close(); + Bukkit.getScheduler().runTaskLater(FightSystem.getPlugin(), backup::close, 1); } @EventHandler @@ -151,9 +137,11 @@ public class PersonalKitCreator implements Listener { } private void close(){ - openKitCreators.remove(player); Kit kit1 = new Kit(kit.getName(), player); kit1.removeBadItems(); + + + openKitCreators.remove(player); kit1.toPersonalKit(kit); backup.loadToPlayer(player); player.setGameMode(GameMode.SURVIVAL);