【问题标题】:How can I give a throwable potion in the Inventory of a player? [Spigot 1.9] [Bukkit Plugin]?如何在玩家的物品栏中提供可投掷药水? [Spigot 1.9] [Bukkit 插件]?
【发布时间】:2016-06-30 14:07:50
【问题描述】:

我的问题是我想给玩家一个可投掷的药水,但通过使用我的代码,玩家只能得到一个可投掷的玻璃瓶,没有任何效果和纹理。我在以下链接上发布了截图:http://www.bilder-upload.eu/show.php?file=1bb67f-1467295693.png (我的服务器日志中也没有错误。) 我怎样才能给玩家正确的药水和没有纹理的玻璃瓶?谢谢你的帮助。 我的代码:

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。但我不确定。

【问题讨论】:

  • 请用英文提问。
  • 对不起,我重写了问题。
  • 还有标题。否则人们永远不会找到你的问题。谢谢。
  • 对不起,我会重写它? :)

标签: plugins minecraft bukkit


【解决方案1】:

目前,1.9 版的药水存在漏洞。 解决方案是手动完成,as presented 来自 spigot 论坛的 forseth11。

您可以使用the class forseth provided,因为这是获得所需药水的快捷方式

虽然问题是marked as solved by Spigot's team,但我相信旧的 API 将不再起作用,如 md_5 (spigot dev) 所述

【讨论】:

    【解决方案2】:

    我在我的插件中使用了正常的项目堆栈创建

    ItemStack potion = new ItemStack(Material.SPLASH_POTION)
    

    就像你做的那样,然后用

    设置它的数据
    potion.setData(byte data);
    

    当时它对我有用。那时我不会费心使用被破坏的方法,因为 bukkit/spigot 目前没有提供好的替代品。 但如果您愿意,您可以尝试在新的.setData(MaterialData data) 方法中根据需要设置添加MaterialData

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多