From 68f412114d4fe23b637e9433c5c1da59132db404 Mon Sep 17 00:00:00 2001 From: zzz <3212910002@qq.com> Date: Fri, 18 Jul 2025 23:53:58 +0800 Subject: [PATCH 1/2] fixing some stuff --- .gitignore | 1 + .../su/nightexpress/coinsengine/tops/TopManager.java | 9 ++++++++- .../su/nightexpress/coinsengine/user/UserBalance.java | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index bba7b53..8dbe9f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /target/ /.idea/ +/CoinsEngine.iml diff --git a/src/main/java/su/nightexpress/coinsengine/tops/TopManager.java b/src/main/java/su/nightexpress/coinsengine/tops/TopManager.java index 9f03721..9f1de87 100644 --- a/src/main/java/su/nightexpress/coinsengine/tops/TopManager.java +++ b/src/main/java/su/nightexpress/coinsengine/tops/TopManager.java @@ -34,7 +34,14 @@ public TopManager(@NotNull CoinsEnginePlugin plugin) { @Override protected void onLoad() { if (Config.TOPS_USE_GUI.get()) { - this.topMenu = this.addMenu(new TopMenu(this.plugin, this), Config.DIR_MENU, "leaderboard.yml"); + try { + // checking whether symbol MenuType has existence because it is an Experimental class + // or just adapt each menu windows for each version like MythicMobs? + Class menuTypeClass = Class.forName("org.bukkit.inventory.MenuType"); + this.topMenu = this.addMenu(new TopMenu(this.plugin, this), Config.DIR_MENU, "leaderboard.yml"); + } catch (ClassNotFoundException e) { + this.plugin.error("Couldn't enabling top menu because your server's Minecraft version is not supported."); + } } this.addListener(new TopsListener(this.plugin, this)); diff --git a/src/main/java/su/nightexpress/coinsengine/user/UserBalance.java b/src/main/java/su/nightexpress/coinsengine/user/UserBalance.java index dbb09ed..db9e750 100644 --- a/src/main/java/su/nightexpress/coinsengine/user/UserBalance.java +++ b/src/main/java/su/nightexpress/coinsengine/user/UserBalance.java @@ -4,8 +4,8 @@ import su.nightexpress.coinsengine.api.CoinsEngineAPI; import su.nightexpress.coinsengine.api.currency.Currency; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Consumer; public class UserBalance { @@ -13,7 +13,7 @@ public class UserBalance { private final Map balanceMap; public UserBalance() { - this(new HashMap<>()); + this(new ConcurrentHashMap<>()); } public UserBalance(@NotNull Map balanceMap) { From 7954227a34f0a9bf9c839aeb41994c0dbd692fb6 Mon Sep 17 00:00:00 2001 From: zzz <3212910002@qq.com> Date: Sun, 20 Jul 2025 00:08:03 +0800 Subject: [PATCH 2/2] update --- .../java/su/nightexpress/coinsengine/tops/TopManager.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/su/nightexpress/coinsengine/tops/TopManager.java b/src/main/java/su/nightexpress/coinsengine/tops/TopManager.java index 9f1de87..6f17900 100644 --- a/src/main/java/su/nightexpress/coinsengine/tops/TopManager.java +++ b/src/main/java/su/nightexpress/coinsengine/tops/TopManager.java @@ -15,6 +15,7 @@ import su.nightexpress.nightcore.manager.AbstractManager; import su.nightexpress.nightcore.util.Lists; import su.nightexpress.nightcore.util.NumberUtil; +import su.nightexpress.nightcore.util.Version; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -34,12 +35,9 @@ public TopManager(@NotNull CoinsEnginePlugin plugin) { @Override protected void onLoad() { if (Config.TOPS_USE_GUI.get()) { - try { - // checking whether symbol MenuType has existence because it is an Experimental class - // or just adapt each menu windows for each version like MythicMobs? - Class menuTypeClass = Class.forName("org.bukkit.inventory.MenuType"); + if (Version.isAtLeast(Version.MC_1_21_4)) { this.topMenu = this.addMenu(new TopMenu(this.plugin, this), Config.DIR_MENU, "leaderboard.yml"); - } catch (ClassNotFoundException e) { + } else { this.plugin.error("Couldn't enabling top menu because your server's Minecraft version is not supported."); } }