如何在 Bukkit 中更改粘土颜色

How to change clay color in Bukkit

您好,我正在尝试为我的 Minecraft 服务器更改 Bukkit 库存中粘土的颜色,但我不知道该怎么做。我的代码不起作用。它所做的只是用正确的名称和知识设置库存中的项目,但实际上并没有改变粘土块的颜色。

    @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;
}

谢谢。

而不是使用 setData(MaterialData),你应该使用 setDurability(short)

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

代替 clay.setData(new MaterialData((byte) 14))

您的代码可能如下所示:

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

使用.setDurability(short)设置项目的数据(例如,在clay:5中,数据将是5)。之所以叫setDurability,是因为该数据还设置了剑、镐等工具的耐久度。