如何使库存像商店一样不可编辑?插口插件

6za6bjd0  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(165)

我是一个新的插口插件开发…所以我试图创建一个商店插件,大多数minecraft服务器有。。。在那里我遇到了下一个情况:

import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;

public class Commands implements CommandExecutor {

    @Override
    public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {

        Player player = (Player) commandSender;
        if( commandSender instanceof Player)
        {
            if(command.getName().equals("shop"))
            {
                Inventory shop = Bukkit.createInventory(player,27,"Shop");

                ItemStack unused = new ItemStack(Material.LIGHT_GRAY_STAINED_GLASS_PANE , 1);

                ItemStack Wood = new ItemStack(Material.OAK_LOG , 1);
                ItemStack Food = new ItemStack(Material.PORKCHOP , 1);
                ItemStack Stone = new ItemStack(Material.STONE , 1);
                ItemStack Tools = new ItemStack(Material.IRON_PICKAXE , 1);
                ItemStack Redstone = new ItemStack(Material.REDSTONE_BLOCK , 1);

                shop.setItem(11,Redstone);
                shop.setItem(12,Wood);
                shop.setItem(13,Stone);
                shop.setItem(14,Food);
                shop.setItem(15,Tools);

                for(int i = 0; i < 27;i++)
                {
                    if((i >= 0 && i<=10) || (i >=16 && i<=26))
                    {
                        shop.setItem(i,unused);
                    }
                }

                player.openInventory(shop);

            }

        }
        else
        {
            player.sendMessage(ChatColor.GRAY + "Only a Player can Execute the Command.");
        }

        return true;
    }

    @EventHandler
    public void onInventoryShopClick(InventoryClickEvent e)
    {

    }
}

在这里,我无法得到一个解决方案,使库存类的shop对象不可编辑,这是一个局部变量的函数 onCommand() 我想要这样,如果一个玩家点击了目录中的一个对象 event.setCancelled(true) 发生。。。
如果这是一个愚蠢的问题,我很抱歉,但我只知道如何使用 InventoryClickEvent 在一个单独的函数中。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题