crwdns118907:0crwdne118907:0

crwdns118909:0crwdne118909:0

crwdns118911:0:javadoc:crwdne118911:0

crwdns118913:0crwdne118913:0

crwdns118915:0:javadoc:crwdne118915:0

crwdns118917:0crwdne118917:0

crwdns118919:0crwdne118919:0

crwdns118921:0crwdne118921:0

crwdns118923:0crwdne118923:0

crwdns118925:0crwdne118925:0

crwdns118927:0crwdne118927:0

crwdns118929:0crwdne118929:0

crwdns118931:0crwdne118931:0

crwdns118933:0crwdne118933:0

crwdns118935:0crwdne118935:0

crwdns118937:0crwdne118937:0

crwdns118939:0crwdne118939:0

crwdns118941:0crwdne118941:0

crwdns118943:0crwdne118943:0

crwdns118945:0crwdne118945:0

crwdns118947:0crwdne118947:0

crwdns118949:0crwdne118949:0

crwdns118951:0crwdne118951:0

crwdns118953:0crwdne118953:0

crwdns118955:0crwdne118955:0

crwdns118957:0:doc:crwdne118957:0

  • crwdns118959:0crwdne118959:0

  • crwdns118961:0crwdne118961:0

  • crwdns118963:0crwdne118963:0

  • crwdns118965:0crwdne118965:0

crwdns118967:0:doc:crwdnd118967:0:javadoc:crwdne118967:0

crwdns118969:0crwdne118969:0

crwdns118971:0:javadoc:crwdne118971:0

  • crwdns118973:0crwdne118973:0

  • crwdns118975:0crwdne118975:0

  • crwdns118977:0crwdne118977:0

crwdns118979:0crwdne118979:0

crwdns118981:0crwdne118981:0

crwdns118983:0crwdne118983:0

import org.spongepowered.api.data.DataHolder;
import org.spongepowered.api.data.DataTransactionResult;
import org.spongepowered.api.data.manipulator.DataManipulator;

public void safeOffer(DataHolder target, DataManipulator data) {
    DataTransactionResult result = target.offer(data);
    if (result.getType() != DataTransactionResult.Type.SUCCESS) {
        target.undo(result);
    }
}