fromgate
Administrator
Кто-то недавно задавал вопрос как покрасить броню. На всякий случай отвечу здесь, если это ещё актуально 
Цвет брони, также как и в обычном майнкрафте прописан NBT-тагом. Но вот в остальном есть разница. В обычном Майнкрафте — это тег "color" вложенный в коллекцию тегов "display", а в MCPE, как выяснилось, это просто тег customColor.
По результатам изысканий я сделал pull-request, который добавит возможность красить броню.
После того как эти изменения будут приняты в проект, пользоваться можно будет таким образом:
Ну а если Вам не терпится, то можете воспользоваться методом, который позволит красить броню и сейчас:
Цвет брони, также как и в обычном майнкрафте прописан NBT-тагом. Но вот в остальном есть разница. В обычном Майнкрафте — это тег "color" вложенный в коллекцию тегов "display", а в MCPE, как выяснилось, это просто тег customColor.
По результатам изысканий я сделал pull-request, который добавит возможность красить броню.
После того как эти изменения будут приняты в проект, пользоваться можно будет таким образом:
Java:
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!command.getName().equalsIgnoreCase("test")) return false;
Player player = sender instanceof Player ? (Player) sender : null;
ItemBootsLeather boots = new ItemBootsLeather();
boots.setColor(255,0,0);
player.getInventory().addItem(boots);
ItemChestplateLeather chest = new ItemChestplateLeather();
chest.setColor(0,255,0);
player.getInventory().addItem(chest);
ItemHelmetLeather helm = new ItemHelmetLeather();
helm.setColor(0,0,255);
player.getInventory().addItem(helm);
}
Ну а если Вам не терпится, то можете воспользоваться методом, который позволит красить броню и сейчас:
Java:
public Item setColor(Item leatherItem, int r, int g, int b){
if (leatherItem.getTier()!=ItemArmor.TIER_LEATHER) return leatherItem;
int rgb = r << 16 | g << 8 | b << 0;
CompoundTag tag = leatherItem.hasCompoundTag() ? leatherItem.getNamedTag() : new CompoundTag();
tag.putInt("customColor",rgb);
leatherItem.setNamedTag(tag);
return leatherItem;
}
Last edited: