use of org.spongepowered.common.interfaces.data.IMixinCustomDataHolder in project SpongeCommon by SpongePowered.
the class CustomDataNbtUtil method writeCustomData.
public static void writeCustomData(NBTTagCompound compound, DataHolder dataHolder) {
if (dataHolder instanceof IMixinCustomDataHolder) {
final List<DataManipulator<?, ?>> manipulators = ((IMixinCustomDataHolder) dataHolder).getCustomManipulators();
if (!manipulators.isEmpty()) {
final List<DataView> manipulatorViews = DataUtil.getSerializedManipulatorList(manipulators);
final NBTTagList manipulatorTagList = new NBTTagList();
for (DataView dataView : manipulatorViews) {
manipulatorTagList.appendTag(NbtTranslator.getInstance().translateData(dataView));
}
compound.setTag(NbtDataUtil.CUSTOM_MANIPULATOR_TAG_LIST, manipulatorTagList);
}
final List<DataView> failedData = ((IMixinCustomDataHolder) dataHolder).getFailedData();
if (!failedData.isEmpty()) {
final NBTTagList failedList = new NBTTagList();
for (DataView failedDatum : failedData) {
failedList.appendTag(NbtTranslator.getInstance().translateData(failedDatum));
}
compound.setTag(NbtDataUtil.FAILED_CUSTOM_DATA, failedList);
}
}
}
Aggregations