如何在 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
,是因为该数据还设置了剑、镐等工具的耐久度。
您好,我正在尝试为我的 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
,是因为该数据还设置了剑、镐等工具的耐久度。