如何改变Bukkit中的粘土颜色

时间:2015-02-13 22:14:26

标签: java bukkit

您好我试图在Bukkit中为我的Minecraft服务器更改库存中的粘土颜色,但我无法弄清楚如何做到这一点。我的代码不起作用。所有这一切都设置了库存中具有正确名称和绝杀的项目,但实际上并没有改变粘土块的颜色。

    @SuppressWarnings("deprecation")
public static ItemStack[] achievements(Player player){
    ItemStack[] items = new ItemStack[54];
    for(int i = 1; i <= MySQL.getAmountOfAchievements(); i++){
        ItemStack clay = new ItemStack(Material.STAINED_CLAY);

        if(MySQL.hasAchievement(player, i)){
            clay.setData(new MaterialData((byte) 5));
        }else{
            clay.setData(new MaterialData((byte) 14));
        }

        ItemMeta clayMeta = clay.getItemMeta();
        clayMeta.setDisplayName(MySQL.getAchievementName(i));
        List<String> description = new ArrayList<String>();
        description.add(MySQL.getAchievementDescription(i));
        clayMeta.setLore(description);

        clay.setItemMeta(clayMeta);

        items[i - 1] = clay;
    }

    return items;
}

感谢。

1 个答案:

答案 0 :(得分:1)

您应该使用setData(MaterialData)

,而不是使用setDurability(short)

代替clay.setData(new MaterialData((byte) 5)),您可以使用clay.setDurability(5),代替clay.setData(new MaterialData((byte) 14)),您可以使用clay.setDurability(14)

以下是您的代码的样子:

if(MySQL.hasAchievement(player, i)){
  clay.setDurability(5);
}
else{
  clay.setDurability(14);
}

使用.setDurability(short)设置项目的数据(例如,在clay:5中,数据将为5)。它被称为setDurability,因为数据还设置了剑和镐等工具的耐用性。