@Nonnull
@Override
public Map<Object, Object> getMeta(@Nonnull ItemStack stack) {
if (!(stack.getItem() instanceof ItemBanner)) return Collections.emptyMap();
int idx = 0;
Map<Object, Object> out = Maps.newHashMap();
NBTTagCompound tag = stack.getSubCompound("BlockEntityTag");
if (tag != null && tag.hasKey("Patterns")) {
NBTTagList nbttaglist = tag.getTagList("Patterns", 10);
for (int i = 0; i < nbttaglist.tagCount() && i < 6; ++i) {
NBTTagCompound patternTag = nbttaglist.getCompoundTagAt(i);
EnumDyeColor color = EnumDyeColor.byDyeDamage(patternTag.getInteger("Color"));
BannerPattern pattern = getPatternByID(patternTag.getString("Pattern"));
if (pattern != null) {
Map<String, String> entry = Maps.newHashMap();
entry.put("id", pattern.getHashname());
String name = ObfuscationReflectionHelper.getPrivateValue(BannerPattern.class, pattern, "field_191014_N");
entry.put("name", name);
entry.put("colour", color.toString());
entry.put("color", color.toString());
out.put(++idx, entry);
}
}
}
return out;
}