以下是一个使用Java编写的示例代码,可以在Bukkit 1.20.1版本中创建一个GUI,并在GUI打开时输出标题中的数字:\n\njava\nimport org.bukkit.Bukkit;\nimport org.bukkit.ChatColor;\nimport org.bukkit.entity.Player;\nimport org.bukkit.event.EventHandler;\nimport org.bukkit.event.Listener;\nimport org.bukkit.event.inventory.InventoryClickEvent;\nimport org.bukkit.event.inventory.InventoryCloseEvent;\nimport org.bukkit.inventory.Inventory;\nimport org.bukkit.inventory.ItemStack;\nimport org.bukkit.plugin.java.JavaPlugin;\n\npublic class ShopGUI extends JavaPlugin implements Listener {\n\n private Inventory shopInventory;\n\n @Override\n public void onEnable() {\n Bukkit.getPluginManager().registerEvents(this, this);\n createShopGUI();\n }\n\n private void createShopGUI() {\n shopInventory = Bukkit.createInventory(null, 9, ChatColor.GREEN + "商店 #1");\n // 添加商品到商店GUI\n // shopInventory.setItem(slot, itemStack);\n }\n\n @EventHandler\n public void onInventoryClick(InventoryClickEvent event) {\n if (event.getInventory().equals(shopInventory)) {\n event.setCancelled(true); // 阻止玩家点击GUI中的物品\n Player player = (Player) event.getWhoClicked();\n player.sendMessage(ChatColor.YELLOW + "打开的GUI标题中的数字为:" + getTitleNumber(shopInventory.getTitle()));\n }\n }\n\n @EventHandler\n public void onInventoryClose(InventoryCloseEvent event) {\n if (event.getInventory().equals(shopInventory)) {\n // GUI关闭后的逻辑处理\n }\n }\n\n private int getTitleNumber(String title) {\n String[] splitTitle = title.split(" ");\n String lastWord = splitTitle[splitTitle.length - 1];\n if (lastWord.matches("#\d+")) {\n return Integer.parseInt(lastWord.substring(1));\n }\n return -1;\n }\n}\n\n\n在以上示例代码中,我们创建了一个名为"ShopGUI"的插件,并注册了事件监听器。在插件启用时,我们创建了一个包含9个槽位的商店GUI,并在点击GUI中的物品时输出GUI标题中的数字。\n\n你可以根据自己的需求,添加商品到商店GUI的 createShopGUI() 方法中,并在 onInventoryClick() 方法中处理玩家点击GUI物品后的逻辑。\n\n请注意,以上代码只是一个示例,你需要根据自己的需求进行适当的修改和扩展。

Bukkit 1.20.1 Java GUI: 如何在标题中动态显示数字

原文地址: https://www.cveoy.top/t/topic/p2BK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录