以下是一个示例代码,用于实现当玩家捡起未编辑的书与笔时直接放入背包,如果是已编辑的则发送一条消息并禁止拾取。\n\njava\nimport org.bukkit.Material;\nimport org.bukkit.event.EventHandler;\nimport org.bukkit.event.Listener;\nimport org.bukkit.event.player.PlayerPickupItemEvent;\nimport org.bukkit.inventory.ItemStack;\nimport org.bukkit.inventory.meta.BookMeta;\nimport org.bukkit.plugin.java.JavaPlugin;\n\npublic class BookPickupListener extends JavaPlugin implements Listener {\n\n @Override\n public void onEnable() {\n getServer().getPluginManager().registerEvents(this, this);\n }\n\n @EventHandler\n public void onPlayerPickupItem(PlayerPickupItemEvent event) {\n ItemStack item = event.getItem().getItemStack();\n \n // 检查物品是否为书和笔\n if (item.getType() == Material.WRITABLE_BOOK || item.getType() == Material.WRITTEN_BOOK) {\n BookMeta bookMeta = (BookMeta) item.getItemMeta();\n \n // 检查书是否已编辑\n if (bookMeta.hasPages()) {\n event.setCancelled(true); // 取消捡起事件\n event.getPlayer().sendMessage("这本书已经被编辑过了,不能拾取!");\n } else {\n event.getItem().remove(); // 从地面上移除物品\n event.getPlayer().getInventory().addItem(item); // 将物品放入玩家背包\n }\n }\n }\n}\n\n\n请注意,这只是一个示例代码,你需要将其添加到你的插件中,并确保正确注册监听器。此外,你需要适当配置插件的插件.yml文件以匹配Bukkit版本1.20.1。

Bukkit 1.20.1 玩家捡起书与笔插件 - 自动入背包,禁止拾取已编辑书籍

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

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