我的问题是我想给玩家一个可扔掉的药水,但是通过使用我的代码,玩家只能获得一个没有任何效果和纹理的可抛光玻璃瓶。我在以下链接上发布了截图:http://www.bilder-upload.eu/show.php?file=1bb67f-1467295693.png (我的Serverlog中也没有错误。) 如何给玩家提供正确的药水,没有没有纹理的玻璃瓶?谢谢你的帮助。 我的代码:
private static void setWitcherKit() {
sword = new ItemStack(Material.GOLD_SWORD);
sword.addEnchantment(Enchantment.DURABILITY, 3);
goldenapple = new ItemStack(Material.GOLDEN_APPLE);
healpotion = new ItemStack(Material.SPLASH_POTION, 4, (short) 16389);
speedpotion = new ItemStack(Material.SPLASH_POTION, 2, (short) 8194);
damagepotion = new ItemStack(Material.SPLASH_POTION, 4, (short) 16396);
weaknesspotion = new ItemStack(Material.SPLASH_POTION, 2, (short) 16392);
helmet = new ItemStack(Material.GOLD_HELMET);
chestplate = new ItemStack(Material.CHAINMAIL_CHESTPLATE);
leggings = new ItemStack(Material.CHAINMAIL_LEGGINGS);
boots = new ItemStack(Material.GOLD_BOOTS);
}
我认为问题的原因是我使用的是Spigot 1.9而不是Spigot 1.8,有关魔药的内容已经从1.8改为1.9。但我不确定。
答案 0 :(得分:0)
目前,1.9种魔药被窃听。 解决这个问题的方法是通过forseth11从插口论坛手动完成as presented。
你可以做的是使用the class forseth provided,因为这是获得你想要的魔药的快捷方式
虽然问题是marked as solved by Spigot's team,但我认为旧的API将无法再次正常运行,如md_5(spigot dev)所述
答案 1 :(得分:0)
我在我的插件中使用了正常的项目堆栈创建
ItemStack potion = new ItemStack(Material.SPLASH_POTION)
就像你做的那样,然后用
设置它的数据potion.setData(byte data);
那时它对我有用。我当时不打算使用一种特殊的方法,因为bukkit / spigot目前还没有提供一个好的替代品。
但是,如果您愿意,可以尝试在新的MaterialData
方法中根据需要设置添加.setData(MaterialData data)
。