From d854659616c18a4e8eca24f10fcbaaf7e342f21b Mon Sep 17 00:00:00 2001 From: MineSunshineone Date: Wed, 15 Jan 2025 14:34:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96Player=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E4=B8=BAUUID=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../landmark/gui/LandmarkMenu.java | 21 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index a67eac6..90fde81 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ ict.minesunshineone LandmarkSystem - 1.5 + 1.6 21 diff --git a/src/main/java/ict/minesunshineone/landmark/gui/LandmarkMenu.java b/src/main/java/ict/minesunshineone/landmark/gui/LandmarkMenu.java index a01be68..df8557f 100644 --- a/src/main/java/ict/minesunshineone/landmark/gui/LandmarkMenu.java +++ b/src/main/java/ict/minesunshineone/landmark/gui/LandmarkMenu.java @@ -4,17 +4,14 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.HandlerList; -import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; @@ -31,14 +28,14 @@ public class LandmarkMenu implements InventoryHolder { private static final String LANDMARK_KEY = "landmark_name"; private final LandmarkPlugin plugin; - private final Player player; + private final UUID playerId; private Inventory inventory; private final MiniMessage miniMessage = MiniMessage.miniMessage(); private final NamespacedKey landmarkKey; public LandmarkMenu(LandmarkPlugin plugin, Player player) { this.plugin = plugin; - this.player = player; + this.playerId = player.getUniqueId(); this.landmarkKey = new NamespacedKey(plugin, LANDMARK_KEY); } @@ -52,7 +49,7 @@ public void open() { int size = plugin.getConfigManager().getConfig().getInt("gui.size", 54); this.inventory = Bukkit.createInventory(this, size, title); initializeItems(); - player.openInventory(inventory); + getPlayer().openInventory(inventory); } private void initializeItems() { @@ -96,8 +93,8 @@ private void setupCurrentLocation() { boolean isAtAnyLandmark = false; for (Map.Entry entry : plugin.getLandmarkManager().getLandmarks().entrySet()) { - if (plugin.getLandmarkManager().isLandmarkUnlocked(player, entry.getKey()) - && plugin.getLandmarkManager().isPlayerNearLandmark(player, entry.getValue().getLocation())) { + if (plugin.getLandmarkManager().isLandmarkUnlocked(getPlayer(), entry.getKey()) + && plugin.getLandmarkManager().isPlayerNearLandmark(getPlayer(), entry.getValue().getLocation())) { isAtAnyLandmark = true; currentLandmark = entry.getValue(); break; @@ -123,7 +120,7 @@ private void setupLandmarks() { // 计算实际槽位(row对应第2-4行) int slot = (row * 9) + col; - boolean isUnlocked = plugin.getLandmarkManager().isLandmarkUnlocked(player, entry.getKey()); + boolean isUnlocked = plugin.getLandmarkManager().isLandmarkUnlocked(getPlayer(), entry.getKey()); ItemStack item = createLandmarkItem(landmark, isUnlocked); // 存储锚点名称到物品中 @@ -321,4 +318,8 @@ private void handleItemClick(ItemStack item, Player player) { } } + private Player getPlayer() { + return Bukkit.getPlayer(playerId); + } + }