From 1c612579d3fafcdc1765985736af223e54a0fcdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berke=20Ak=C3=A7en?= Date: Fri, 31 May 2024 09:58:19 +0300 Subject: [PATCH] Full support for MC 1.20.5+ (Paper) --- .../despical/oitc/events/GameItemEvents.java | 9 ++++---- .../java/me/despical/oitc/util/Utils.java | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 src/main/java/me/despical/oitc/util/Utils.java diff --git a/src/main/java/me/despical/oitc/events/GameItemEvents.java b/src/main/java/me/despical/oitc/events/GameItemEvents.java index 28f34c1..21420a8 100644 --- a/src/main/java/me/despical/oitc/events/GameItemEvents.java +++ b/src/main/java/me/despical/oitc/events/GameItemEvents.java @@ -7,6 +7,7 @@ import me.despical.oitc.arena.ArenaState; import me.despical.oitc.handlers.items.GameItem; import me.despical.oitc.user.User; +import me.despical.oitc.util.Utils; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; @@ -37,7 +38,7 @@ public void onLeaveItemClicked(final PlayerInteractEvent event) { final GameItem leaveItem = plugin.getGameItemManager().getGameItem("leave-item"); if (leaveItem == null) return; - if (!event.getItem().getItemMeta().equals(leaveItem.getItemStack().getItemMeta())) return; + if (!Utils.checkItemsEqual(event.getItem(), leaveItem.getItemStack())) return; final Player player = user.getPlayer(); @@ -82,10 +83,10 @@ public void onForceStartItemClicked(final PlayerInteractEvent event) { if (arena == null) return; if (event.getItem() == null) return; - final GameItem leaveItem = plugin.getGameItemManager().getGameItem("force-start-item"); + final GameItem forceStartItem = plugin.getGameItemManager().getGameItem("force-start-item"); - if (leaveItem == null) return; - if (!event.getItem().getItemMeta().equals(leaveItem.getItemStack().getItemMeta())) return; + if (forceStartItem == null) return; + if (!Utils.checkItemsEqual(event.getItem(), forceStartItem.getItemStack())) return; if (arena.getPlayers().size() < 2) { arena.broadcastMessage(chatManager.formatMessage(arena, "in_game.messages.lobby_messages.waiting_for_players")); diff --git a/src/main/java/me/despical/oitc/util/Utils.java b/src/main/java/me/despical/oitc/util/Utils.java new file mode 100644 index 0000000..e7af0de --- /dev/null +++ b/src/main/java/me/despical/oitc/util/Utils.java @@ -0,0 +1,22 @@ +package me.despical.oitc.util; + +import org.bukkit.inventory.ItemStack; + +/** + * @author Despical + *

+ * Created at 31.05.2024 + */ +public class Utils { + + private Utils() { + } + + public static boolean checkItemsEqual(ItemStack first, ItemStack second) { + if (first == null || second == null) return false; + if (first.getType() != second.getType()) return false; + if (first.getAmount() != second.getAmount()) return false; + if (!first.getItemMeta().getDisplayName().equals(second.getItemMeta().getDisplayName())) return false; + return first.getItemMeta().getLore() == null || second.getItemMeta().getLore() == null || first.getItemMeta().getLore().equals(second.getItemMeta().getLore()); + } +} \ No newline at end of file