以下是一个用 Java 编写的示例代码,用于检测玩家放入 GUI 内的书是否已经署名,如果未署名则禁止放入,若已署名则放入后将原有的玻璃杯替换为放入的书。\n\njava\nimport org.bukkit.Material;\nimport org.bukkit.event.EventHandler;\nimport org.bukkit.event.Listener;\nimport org.bukkit.event.inventory.InventoryClickEvent;\nimport org.bukkit.inventory.Inventory;\nimport org.bukkit.inventory.ItemStack;\nimport org.bukkit.inventory.meta.BookMeta;\nimport org.bukkit.plugin.java.JavaPlugin;\n\npublic class BookSigningPlugin extends JavaPlugin implements Listener {\n \n @Override\n public void onEnable() {\n getServer().getPluginManager().registerEvents(this, this);\n }\n \n @EventHandler\n public void onInventoryClick(InventoryClickEvent event) {\n Inventory inventory = event.getInventory();\n if (inventory != null && inventory.getName().equals("YourGuiName")) { // 替换为你的 GUI 名称\n ItemStack clickedItem = event.getCurrentItem();\n if (clickedItem != null && clickedItem.getType() == Material.WRITTEN_BOOK) {\n BookMeta bookMeta = (BookMeta) clickedItem.getItemMeta();\n if (!bookMeta.hasAuthor()) {\n event.setCancelled(true); // 取消放入未署名的书\n return;\n } else {\n ItemStack glassCup = new ItemStack(Material.GLASS); // 玻璃杯\n inventory.setItem(event.getSlot(), glassCup); // 替换为放入的书\n }\n }\n }\n }\n}\n\n\n确保在你的 Bukkit 插件项目中添加本插件的依赖,并将示例代码中的 "YourGuiName" 替换为你的 GUI 的名称。

Bukkit 1.20.1 插件:检测未署名书籍并阻止放入 GUI

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

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