Bukkit 1.20.1 玩家箱子限制插件:可开箱但不可存取物品
import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin;
public class ChestProtectionPlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
Action action = event.getAction();
Block block = event.getClickedBlock();
// 检查玩家是否点击了一个方块
if (block != null) {
// 检查方块类型是否为箱子
if (block.getType() == Material.CHEST) {
// 检查玩家是否为OP
if (!player.isOp()) {
// 取消事件
event.setCancelled(true);
// 打开箱子
Inventory chestInventory = block.getState().getInventory();
player.openInventory(chestInventory);
}
}
}
// 检查玩家是否SHIFT+右键点击了一个方块
if (action == Action.RIGHT_CLICK_BLOCK && player.isSneaking()) {
// 检查方块类型是否为箱子
if (block.getType() == Material.CHEST) {
// 取消事件
event.setCancelled(true);
}
}
}
}
原文地址: https://www.cveoy.top/t/topic/fBrp 著作权归作者所有。请勿转载和采集!