From 5b1ed644d1de81475c35485c418ad8ccc67b5561 Mon Sep 17 00:00:00 2001 From: zOnlyKroks Date: Sun, 3 May 2026 12:52:23 +0200 Subject: [PATCH 1/3] [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); From 32de0077dea4264afd65006ed6b00264e8205c62 Mon Sep 17 00:00:00 2001 From: zOnlyKroks Date: Sun, 3 May 2026 14:15:59 +0200 Subject: [PATCH 2/3] [fightsystem]: Rework blacklist to whitelist --- .../de/steamwar/fightsystem/listener/PersonalKitCreator.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) 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 54adf273..e0b446d5 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/PersonalKitCreator.java @@ -98,10 +98,7 @@ public class PersonalKitCreator implements Listener { return; 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) { + if(type != InventoryType.PLAYER && type != InventoryType.CREATIVE) { backup.close(); } } From 79fa09e39b2758032f33408267e626be6f0cf178 Mon Sep 17 00:00:00 2001 From: zOnlyKroks Date: Mon, 4 May 2026 18:27:28 +0200 Subject: [PATCH 3/3] Chaos zufrieden stellen --- .../utils/ReflectionWrapper21.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/FightSystem/FightSystem_21/src/de/steamwar/fightsystem/utils/ReflectionWrapper21.java b/FightSystem/FightSystem_21/src/de/steamwar/fightsystem/utils/ReflectionWrapper21.java index ea8b2d7f..8e38938e 100644 --- a/FightSystem/FightSystem_21/src/de/steamwar/fightsystem/utils/ReflectionWrapper21.java +++ b/FightSystem/FightSystem_21/src/de/steamwar/fightsystem/utils/ReflectionWrapper21.java @@ -38,6 +38,27 @@ public class ReflectionWrapper21 implements ReflectionWrapper { FORBIDDEN_TYPES.add(DataComponentTypes.BLOCKS_ATTACKS); FORBIDDEN_TYPES.add(DataComponentTypes.BUNDLE_CONTENTS); FORBIDDEN_TYPES.add(DataComponentTypes.CUSTOM_MODEL_DATA); + + FORBIDDEN_TYPES.add(DataComponentTypes.ATTRIBUTE_MODIFIERS); + FORBIDDEN_TYPES.add(DataComponentTypes.TOOL); + FORBIDDEN_TYPES.add(DataComponentTypes.WEAPON); + FORBIDDEN_TYPES.add(DataComponentTypes.FOOD); + FORBIDDEN_TYPES.add(DataComponentTypes.CONSUMABLE); + FORBIDDEN_TYPES.add(DataComponentTypes.POTION_CONTENTS); + FORBIDDEN_TYPES.add(DataComponentTypes.STORED_ENCHANTMENTS); + FORBIDDEN_TYPES.add(DataComponentTypes.CAN_BREAK); + FORBIDDEN_TYPES.add(DataComponentTypes.CAN_PLACE_ON); + FORBIDDEN_TYPES.add(DataComponentTypes.MAX_DAMAGE); + FORBIDDEN_TYPES.add(DataComponentTypes.USE_REMAINDER); + FORBIDDEN_TYPES.add(DataComponentTypes.USE_COOLDOWN); + FORBIDDEN_TYPES.add(DataComponentTypes.SUSPICIOUS_STEW_EFFECTS); + FORBIDDEN_TYPES.add(DataComponentTypes.CHARGED_PROJECTILES); + FORBIDDEN_TYPES.add(DataComponentTypes.INTANGIBLE_PROJECTILE); + FORBIDDEN_TYPES.add(DataComponentTypes.FIREWORKS); + FORBIDDEN_TYPES.add(DataComponentTypes.FIREWORK_EXPLOSION); + FORBIDDEN_TYPES.add(DataComponentTypes.EQUIPPABLE); + FORBIDDEN_TYPES.add(DataComponentTypes.REPAIR_COST); + FORBIDDEN_TYPES.add(DataComponentTypes.ENCHANTABLE); } @Override