如何在玩家的库存中提供可扔药水? [Spigot 1.9] [Bukkit插件]?

时间:2016-06-30 14:07:50

标签: plugins minecraft bukkit

我的问题是我想给玩家一个可扔掉的药水,但是通过使用我的代码,玩家只能获得一个没有任何效果和纹理的可抛光玻璃瓶。我在以下链接上发布了截图: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。但我不确定。

2 个答案:

答案 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)