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);
        }
    }
}

}

Bukkit 1.20.1 玩家箱子限制插件:可开箱但不可存取物品

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

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