Java Bukkit定制库存产卵(#2)
我试图在我的自定义GUI菜单中添加一个爬行鸡蛋。 这是我迄今为止完成的工作:Java Bukkit定制库存产卵(#2),java,bukkit,Java,Bukkit,我试图在我的自定义GUI菜单中添加一个爬行鸡蛋。 这是我迄今为止完成的工作: ItemStack stack = new ItemStack(Material.MONSTER_EGG, 1, EntityType.CREEPER.getTypeId()); ItemMeta meta = stack.getItemMeta(); meta.setDisplayName(ChatColor.AQUA + "Creeper"); stack.setItemMeta(
ItemStack stack = new ItemStack(Material.MONSTER_EGG, 1, EntityType.CREEPER.getTypeId());
ItemMeta meta = stack.getItemMeta();
meta.setDisplayName(ChatColor.AQUA + "Creeper");
stack.setItemMeta(meta);
inv.setItem(1, stack);
player.openInventory(inv);
return true;
我的问题是:如何将爬虫蛋添加到我的InventoryClick类中
Player player = (Player) event.getWhoClicked();
ItemStack item = event.getCurrentItem();
if (item.getType() == Material.blah blah) {
player.performCommand("blah blah");
event.setCancelled(true);
}
要检索您创建的特定项目,请检查您单击的怪物蛋是否为爬行怪物蛋 检查是否是爬行动物产卵:
ItemStack item;
boolean isSpawnEgg = item.getType() == Material.MONSTER_EGG;
if (isSpawnEgg) {
SpawnEgg egg = (SpawnEgg) item.getData();
EntityType type = egg.getSpawnedType();
if (type.equals(EntityType.CREEPER) ){
//IsACreeper
}
}
如果版本低于1.9:
ItemStack item;
boolean isSpawnEgg = item.getType() == Material.MONSTER_EGG;
if (isSpawnEgg) {
SpawnEgg egg = (SpawnEgg) item.getData();
EntityType type = egg.getSpawnedType();
if (type.equals(EntityType.CREEPER) ){
//IsACreeper
}
}
如果版本为1.9或更高版本:
ItemStack item;
boolean isSpawnEgg = item.getType() == Material.MONSTER_EGG;
if (isSpawnEgg) {
SpawnEgg egg = (SpawnEgg) item.getData();
EntityType type = egg.getSpawnedType();
if (type.equals(EntityType.CREEPER) ){
//IsACreeper
}
}
目前,未使用NBT的Bukkit/Spigot API中不支持。如果您想使用NBT,可能会有所帮助。要检索您创建的特定项目,请检查您单击的怪物蛋是否是爬行怪物蛋 检查是否是爬行动物产卵:
ItemStack item;
boolean isSpawnEgg = item.getType() == Material.MONSTER_EGG;
if (isSpawnEgg) {
SpawnEgg egg = (SpawnEgg) item.getData();
EntityType type = egg.getSpawnedType();
if (type.equals(EntityType.CREEPER) ){
//IsACreeper
}
}
如果版本低于1.9:
ItemStack item;
boolean isSpawnEgg = item.getType() == Material.MONSTER_EGG;
if (isSpawnEgg) {
SpawnEgg egg = (SpawnEgg) item.getData();
EntityType type = egg.getSpawnedType();
if (type.equals(EntityType.CREEPER) ){
//IsACreeper
}
}
如果版本为1.9或更高版本:
ItemStack item;
boolean isSpawnEgg = item.getType() == Material.MONSTER_EGG;
if (isSpawnEgg) {
SpawnEgg egg = (SpawnEgg) item.getData();
EntityType type = egg.getSpawnedType();
if (type.equals(EntityType.CREEPER) ){
//IsACreeper
}
}
目前,未使用NBT的Bukkit/Spigot API中不支持。如果您想使用NBT,可能会有所帮助。添加是什么意思?你想干什么?我完成了我的第一堂课,在这堂课里加入了爬山虎蛋。但是我的InventoryClick也需要它,所以当你点击它时,它知道,当你点击鸡蛋时,它知道执行一个命令。所以我很困惑,因为如果我在GUI中添加一个爬行蛋,我不知道在inventoryClick类中该做什么:为什么会有单独的类?将inventoryClick和执行GUI open的实际主命令分开。但是为什么?不能在同一类中设置事件侦听器吗?如果你确实需要,为这个项目设置一个getter,你说的add是什么意思?你想干什么?我完成了我的第一堂课,在这堂课里加入了爬山虎蛋。但是我的InventoryClick也需要它,所以当你点击它时,它知道,当你点击鸡蛋时,它知道执行一个命令。所以我很困惑,因为如果我在GUI中添加一个爬行蛋,我不知道在inventoryClick类中该做什么:为什么会有单独的类?将inventoryClick和执行GUI open的实际主命令分开。但是为什么?不能在同一类中设置事件侦听器吗?如果您确实需要,请为该项设置一个getter为什么1.9需要其他方法来获取爬行虫卵?@Ferrybig从SPIGET-1592开始,SparkedType将不再工作,因为该类型现在存储在元数据中,因此该方法无法工作。为什么1.9需要其他方法来获取爬行虫卵?@Ferrybig从SPIGET-1592开始,spawnedtype将不再工作,因为该类型现在存储在元数据中,因此spawnedtype的方法将无法工作。