use of org.spongepowered.api.data.manipulator.DataManipulator in project LanternServer by LanternPowered.
the class IDataHolder method copyFromNoEvents.
default DataTransactionResult copyFromNoEvents(DataHolder that, MergeFunction function) {
final Collection<DataManipulator<?, ?>> containers = that.getContainers();
final DataTransactionResult.Builder builder = DataTransactionResult.builder();
boolean success = false;
for (DataManipulator<?, ?> thatContainer : containers) {
final DataManipulator<?, ?> thisContainer = get(thatContainer.getClass()).orElse(null);
final DataManipulator<?, ?> merged = function.merge(thisContainer, thatContainer);
final DataTransactionResult result = offerNoEvents(merged, MergeFunction.IGNORE_ALL);
builder.absorbResult(result);
if (!result.getSuccessfulData().isEmpty()) {
success = true;
}
}
return builder.result(success ? DataTransactionResult.Type.SUCCESS : DataTransactionResult.Type.FAILURE).build();
}
Aggregations