Java 如何使库存像商店一样不可编辑?

Java 如何使库存像商店一样不可编辑?,java,minecraft,bukkit,Java,Minecraft,Bukkit,我对插口插件开发还很陌生。我试图创建一个大多数Minecraft服务器都有的商店插件 导入org.bukkit.event.inventory.inventory ClickEvent; 导入org.bukkit.inventory.inventory; 导入org.bukkit.inventory.ItemStack; 公共类命令实现CommandExecutor{ @凌驾 公共布尔onCommand(CommandSender CommandSender、Command命令、字符串s、字符串

我对插口插件开发还很陌生。我试图创建一个大多数Minecraft服务器都有的商店插件

导入org.bukkit.event.inventory.inventory ClickEvent;
导入org.bukkit.inventory.inventory;
导入org.bukkit.inventory.ItemStack;
公共类命令实现CommandExecutor{
@凌驾
公共布尔onCommand(CommandSender CommandSender、Command命令、字符串s、字符串[]字符串){
玩家=(玩家)命令发送者;
if(播放机的commandSender实例)
{
if(command.getName().equals(“shop”))
{
库存商店=Bukkit.createInventory(播放器,27,“商店”);
ItemStack unused=新的ItemStack(材质:浅灰色彩色玻璃窗格,1);
ItemStack Wood=新ItemStack(Material.OAK_LOG,1);
ItemStack食品=新的ItemStack(Material.PORKCHOP,1);
ItemStack Stone=新的ItemStack(Material.Stone,1);
ItemStack工具=新的ItemStack(Material.IRON_鹤嘴锄,1);
ItemStack Redstone=新ItemStack(Material.Redstone_BLOCK,1);
车间设置项(11,红石);
车间设置项(12,木材);
车间设置项目(13,石头);
商店设置项目(14,食品);
车间设置项(15,工具);
对于(int i=0;i<27;i++)
{

如果((i>=0&&i=16&&i使用
InventoryClickEvent e
检查您试图控制的库存是否是玩家单击的库存,则只需运行
e.setCancelled(true);

如上述答案所述,您可以使用
InventoryClickEvent
事件检查库存单击,然后使用
e.setCancelled(true)
取消事件

但是,如果您仍然希望能够操纵正常库存,请检查您正在单击的库存(如果是商店库存),然后取消事件:

public void onInventoryClick(InventoryClickEvent e) {
    if (e.getClickedInventory().getTitle().equals("shop")) {
        e.setCancelled(true);
    }
}

在您的
onInventoryShop中,单击
检查库存标题是否与您的店铺标题相同,然后取消该事件。