我是一个新的插口插件开发…所以我试图创建一个商店插件,大多数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
在一个单独的函数中。
暂无答案!
目前还没有任何答案,快来回答吧!