Bukkit 1.20.1 插件:限制非OP玩家从箱子中取物品
以下是一个使用Java编写的Bukkit插件,当玩家不是OP时,可以打开箱子,但不能拿出箱子物品:\n\njava\nimport org.bukkit.ChatColor;\nimport org.bukkit.Material;\nimport org.bukkit.block.Block;\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.InventoryOpenEvent;\nimport org.bukkit.inventory.Inventory;\nimport org.bukkit.inventory.ItemStack;\nimport org.bukkit.plugin.java.JavaPlugin;\n\npublic class NoChestItemTakePlugin extends JavaPlugin implements Listener {\n\n @Override\n public void onEnable() {\n getServer().getPluginManager().registerEvents(this, this);\n }\n\n @EventHandler\n public void onInventoryOpen(InventoryOpenEvent event) {\n Player player = (Player) event.getPlayer();\n Block block = event.getInventory().getLocation().getBlock();\n\n if (block.getType() == Material.CHEST && !player.isOp()) {\n player.sendMessage(ChatColor.RED + "你不能拿出箱子物品!");\n event.setCancelled(true);\n }\n }\n\n @EventHandler\n public void onInventoryClick(InventoryClickEvent event) {\n Player player = (Player) event.getWhoClicked();\n Inventory inventory = event.getClickedInventory();\n\n if (inventory != null && inventory.getType() == Inventory.Type.CHEST && !player.isOp()) {\n player.sendMessage(ChatColor.RED + "你不能拿出箱子物品!");\n event.setCancelled(true);\n player.updateInventory();\n }\n }\n}\n\n\n请确保你的开发环境已经配置好Bukkit API,并将该代码保存为一个Java类文件,然后将其编译为插件jar文件并将其放置在服务器的插件文件夹中。
原文地址: https://www.cveoy.top/t/topic/qhcq 著作权归作者所有。请勿转载和采集!