From 134089f0d3591942aa1a6d1d932868e1bc952972 Mon Sep 17 00:00:00 2001 From: BlitzOffline <52609756+BlitzOffline@users.noreply.github.com> Date: Sat, 9 May 2026 15:21:38 +0300 Subject: [PATCH 1/2] Fix MMOITems lore duplication issue --- .gitignore | 13 +++++++++---- .../deluxemenus/hooks/MMOItemsHook.java | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index a73dd02a..445e96a2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,9 @@ -.gradle -.idea -build -test-server/ \ No newline at end of file +.gradle/ +.idea/ +.vscode/ + +build/ +test-server/ + +.claude/ +CLAUDE.md \ No newline at end of file diff --git a/src/main/java/com/extendedclip/deluxemenus/hooks/MMOItemsHook.java b/src/main/java/com/extendedclip/deluxemenus/hooks/MMOItemsHook.java index ba570781..fad24825 100644 --- a/src/main/java/com/extendedclip/deluxemenus/hooks/MMOItemsHook.java +++ b/src/main/java/com/extendedclip/deluxemenus/hooks/MMOItemsHook.java @@ -57,7 +57,7 @@ public ItemStack getItem(@NotNull final String... arguments) { cache.put(arguments[0], item); - return item; + return item.clone(); }).get(); } catch (InterruptedException | ExecutionException e) { plugin.debug(DebugLevel.HIGHEST, Level.SEVERE, "Error getting MMOItem synchronously."); From ec65faefd367acb11a3a57bc952f4edb595a0472 Mon Sep 17 00:00:00 2001 From: BlitzOffline <52609756+BlitzOffline@users.noreply.github.com> Date: Sat, 9 May 2026 17:16:07 +0300 Subject: [PATCH 2/2] Don't schedule menu command registration --- .../menu/command/RegistrableMenuCommand.java | 60 ++++++++++--------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/extendedclip/deluxemenus/menu/command/RegistrableMenuCommand.java b/src/main/java/com/extendedclip/deluxemenus/menu/command/RegistrableMenuCommand.java index 8a98c02a..d53eb165 100644 --- a/src/main/java/com/extendedclip/deluxemenus/menu/command/RegistrableMenuCommand.java +++ b/src/main/java/com/extendedclip/deluxemenus/menu/command/RegistrableMenuCommand.java @@ -2,7 +2,6 @@ import com.extendedclip.deluxemenus.DeluxeMenus; import com.extendedclip.deluxemenus.menu.Menu; -import com.extendedclip.deluxemenus.scheduler.scheduling.schedulers.TaskScheduler; import com.extendedclip.deluxemenus.utils.DebugLevel; import com.extendedclip.deluxemenus.utils.StringUtils; import me.clip.placeholderapi.util.Msg; @@ -27,7 +26,6 @@ public class RegistrableMenuCommand extends Command { private static CommandMap commandMap = null; private final DeluxeMenus plugin; - private final TaskScheduler scheduler; private Menu menu; private boolean registered = false; @@ -37,7 +35,6 @@ public RegistrableMenuCommand(final @NotNull DeluxeMenus plugin, final @NotNull Menu menu) { super(menu.options().commands().isEmpty() ? menu.options().name() : menu.options().commands().get(0)); this.plugin = plugin; - this.scheduler = plugin.getScheduler(); this.menu = menu; if (menu.options().commands().size() > 1) { @@ -89,36 +86,41 @@ public boolean execute(final @NotNull CommandSender sender, final @NotNull Strin } public void register() { - scheduler.runTask(() -> { - if (registered) { - throw new IllegalStateException("This command was already registered!"); - } + if (registered) { + throw new IllegalStateException("This command was already registered!"); + } - registered = true; - - if (commandMap == null) { - try { - final Field f = Bukkit.getServer().getClass().getDeclaredField("commandMap"); - f.setAccessible(true); - commandMap = (CommandMap) f.get(Bukkit.getServer()); - } catch (final @NotNull Exception exception) { - plugin.printStacktrace( - "Something went wrong while trying to register command: " + this.getName(), - exception - ); - return; - } - } + registered = true; - boolean registered = commandMap.register(FALLBACK_PREFIX, this); - if (registered) { - plugin.debug( - DebugLevel.LOW, - Level.INFO, - "Registered command: " + this.getName() + " for menu: " + menu.options().name() + if (commandMap == null) { + try { + final Field f = Bukkit.getServer().getClass().getDeclaredField("commandMap"); + f.setAccessible(true); + commandMap = (CommandMap) f.get(Bukkit.getServer()); + } catch (final @NotNull Exception exception) { + plugin.printStacktrace( + "Something went wrong while trying to register command: " + this.getName(), + exception ); + return; } - }); + } + + boolean registered = commandMap.register(FALLBACK_PREFIX, this); + if (registered) { + plugin.debug( + DebugLevel.LOW, + Level.INFO, + "Registered command: " + this.getName() + " for menu: " + menu.options().name() + ); + } else { + plugin.debug( + DebugLevel.HIGHEST, + Level.WARNING, + "Failed to register command: " + this.getName() + " for menu: " + menu.options().name() + + ". A command with that name already exists. Use /deluxemenus:" + this.getName() + " instead." + ); + } } public void unregister() {