以下是使用Java编写的Bukkit插件代码,实现了当玩家不是OP时,可以打开箱子但不能拿出或放入物品,同时SHIFT+右键也不能放入物品。代码中包含中文注释,以帮助理解代码的功能。

import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.Chest;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryOpenEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.plugin.java.JavaPlugin;

public class NoChestInteraction extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onInventoryOpen(InventoryOpenEvent event) {
        Player player = (Player) event.getPlayer();
        Inventory inventory = event.getInventory();
        BlockState blockState = inventory.getLocation().getBlock().getState();

        // 检查玩家是否为OP
        if (!player.isOp() && blockState instanceof Chest) {
            event.setCancelled(true); // 取消打开箱子的事件
        }
    }

    @EventHandler
    public void onInventoryClick(InventoryClickEvent event) {
        Player player = (Player) event.getWhoClicked();
        Inventory inventory = event.getClickedInventory();
        BlockState blockState = inventory.getLocation().getBlock().getState();

        // 检查玩家是否为OP
        if (!player.isOp() && blockState instanceof Chest) {
            event.setCancelled(true); // 取消点击箱子的事件
        }
    }

    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent event) {
        Player player = event.getPlayer();
        Block clickedBlock = event.getClickedBlock();

        // 检查玩家是否为OP
        if (!player.isOp() && clickedBlock != null && clickedBlock.getType() == Material.CHEST) {
            event.setCancelled(true); // 取消与箱子交互的事件
        }
    }
}

请注意,这只是一个简单的示例代码,可能需要根据实际需求进行修改和扩展。

Bukkit 1.20.1 插件:限制非OP玩家箱子交互 (Java)

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

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