• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java DataTransactionResult类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.spongepowered.api.data.DataTransactionResult的典型用法代码示例。如果您正苦于以下问题:Java DataTransactionResult类的具体用法?Java DataTransactionResult怎么用?Java DataTransactionResult使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



DataTransactionResult类属于org.spongepowered.api.data包,在下文中一共展示了DataTransactionResult类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: setModel

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
@Override
public final void setModel(String model) {
    if(!getDefinition().getModels().contains(model))
        throw new IllegalArgumentException("This custom tool has no model called '" + model
                + "'. Available, defined models: "
                + getDefinition().getModels().stream().collect(Collectors.joining(", ")));

    applyModel(model);

    DataTransactionResult result = getDataHolder().offer(CustomItemLibraryKeys.CUSTOM_FEATURE_MODEL, model);

    if(!result.isSuccessful())
        throw new IllegalStateException("Could not update the item model; rejected: " + result.getRejectedData()
                + "; replaced: " + result.getReplacedData());
}
 
开发者ID:Limeth,项目名称:CustomItemLibrary,代码行数:16,代码来源:AbstractCustomModelledFeature.java


示例2: awardPlayer

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
@Override
public boolean awardPlayer(Player player) {
    final Optional<Integer> expAmountOpt = Util.safeGetInt(this.data, "amount");
    if (!expAmountOpt.isPresent()) {
        this.plugin.getLogger().error("No experience amount specified. Aborting.");
        return false;
    }

    int existingExperience = player.get(Keys.TOTAL_EXPERIENCE).get();

    DataTransactionResult result = player.offer(Keys.TOTAL_EXPERIENCE, existingExperience + expAmountOpt.get());
    return result.isSuccessful();
}
 
开发者ID:BadgeUp,项目名称:badgeup-sponge-client,代码行数:14,代码来源:ExperienceAward.java


示例3: awardPlayer

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
@Override
public boolean awardPlayer(Player player) {
    final Optional<String> potionEffectTypeIDOpt = Util.safeGetString(this.data, "potionEffectType");
    if (!potionEffectTypeIDOpt.isPresent()) {
        this.plugin.getLogger().error("No potion effect type specified. Aborting.");
        return false;
    }

    String potionEffectTypeID = potionEffectTypeIDOpt.get();

    final Optional<PotionEffectType> optType = Sponge.getRegistry().getType(PotionEffectType.class,
            potionEffectTypeID);
    if (!optType.isPresent()) {
        this.plugin.getLogger().error("Potion effect type " + potionEffectTypeID + " not found. Aborting.");
        return false;
    }

    PotionEffect.Builder builder = Sponge.getRegistry().createBuilder(PotionEffect.Builder.class)
            .potionType(optType.get());

    Optional<Integer> durationOpt = Util.safeGetInt(this.data, "duration");
    if (!durationOpt.isPresent()) {
        this.plugin.getLogger().error("Potion effect duration not specified. Aborting.");
        return false;
    }
    builder.duration(durationOpt.get());

    builder.amplifier(Util.safeGetInt(this.data, "amplifier").orElse(1));

    List<PotionEffect> currentEffects = player.get(Keys.POTION_EFFECTS).orElse(new ArrayList<>());
    currentEffects.add(builder.build());

    DataTransactionResult result = player.offer(Keys.POTION_EFFECTS, currentEffects);
    return result.isSuccessful();
}
 
开发者ID:BadgeUp,项目名称:badgeup-sponge-client,代码行数:36,代码来源:PotionEffectAward.java


示例4: registerKeys

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
@Override
public void registerKeys() {
    super.registerKeys();
    final ValueCollection c = getValueCollection();
    c.register(Keys.DISPLAY_NAME, null);
    c.registerProcessor(LanternKeys.INVENTORY_SNAPSHOT).add(builder -> builder
            .offerHandler(((key, valueContainer, inventorySnapshot) -> {
                this.inventory.clear();
                inventorySnapshot.offerTo(this.inventory);
                return DataTransactionResult.successNoData();
            }))
            .failAlwaysRemoveHandler()
            .retrieveHandler((key, valueContainer) -> Optional.of(InventorySnapshot.ofInventory(this.inventory))));
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:15,代码来源:LanternShulkerBox.java


示例5: execute

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
public CommandResult execute(CommandSource src, CommandContext ctx) throws CommandException
{
	int number = ctx.<Integer> getOne("number").get();

	if (src instanceof Player)
	{
		Player player = (Player) src;

		if (player.getItemInHand(HandTypes.MAIN_HAND).isPresent())
		{
			ItemStack stack = player.getItemInHand(HandTypes.MAIN_HAND).get();
			LoreData loreData = stack.getOrCreate(LoreData.class).get();
			List<Text> newLore = loreData.lore().get();
			newLore.remove(number - 1);
			DataTransactionResult dataTransactionResult = stack.offer(Keys.ITEM_LORE, newLore);

			if (dataTransactionResult.isSuccessful())
			{
				player.setItemInHand(HandTypes.MAIN_HAND, stack);
				src.sendMessage(Text.of(TextColors.GREEN, "Success! ", TextColors.YELLOW, "Removed lore from item."));
			}
			else
			{
				src.sendMessage(Text.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "Could not remove lore from item."));
			}
		}
		else
		{
			src.sendMessage(Text.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "You must be holding an item!"));
		}
	}
	else
	{
		src.sendMessage(Text.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "You must be a player to name items."));
	}
	return CommandResult.success();
}
 
开发者ID:hsyyid,项目名称:EssentialCmds,代码行数:38,代码来源:LoreBase.java


示例6: copyFromNoEvents

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
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();
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:16,代码来源:IDataHolder.java


示例7: execute

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
public CommandResult execute(CommandSource src, CommandContext ctx) throws CommandException
{
	String name = ctx.<String> getOne("name").get();

	if (src instanceof Player)
	{
		Player player = (Player) src;

		if (player.getItemInHand(HandTypes.MAIN_HAND).isPresent())
		{
			ItemStack stack = player.getItemInHand(HandTypes.MAIN_HAND).get();
			Text textName = TextSerializers.FORMATTING_CODE.deserialize(name);
			DataTransactionResult dataTransactionResult = stack.offer(Keys.DISPLAY_NAME, textName);
			
			if(dataTransactionResult.isSuccessful())
			{
				player.setItemInHand(HandTypes.MAIN_HAND, stack);
				src.sendMessage(Text.of(TextColors.GREEN, "Success! ", TextColors.YELLOW, "Set name on item."));
			}
			else
			{
				src.sendMessage(Text.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "Could not set name on item."));
			}
		}
		else
		{
			src.sendMessage(Text.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "You must be holding an item!"));
		}
	}
	else
	{
		src.sendMessage(Text.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "You must be a player to name items."));
	}

	return CommandResult.success();
}
 
开发者ID:hsyyid,项目名称:EssentialCmds,代码行数:37,代码来源:SetNameExecutor.java


示例8: signChange

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
@Listener
public void signChange(ChangeSignEvent event) throws Exception {
    ListValue<Text> lines = event.getText().lines();

    // Check that the first line is [warp]
    if (lines.get(0).toPlain().equalsIgnoreCase(Constants.WARP_SIGN_PREFIX)) {
        // Second line has to be the name of the warp
        String warpName = lines.get(1).toPlain();
        Optional<Warp> optWarp = this.plugin.getWarpManager().getOne(warpName);
        if (!optWarp.isPresent()) {
            return;
        }
        event.getText().set(Util.generateWarpSignData(optWarp.get()).getValues());

        WarpDataManipulatorBuilder builder = (WarpDataManipulatorBuilder) Sponge.getDataManager().getManipulatorBuilder(WarpData.class).get();
        WarpData data = builder.createFrom(optWarp.get());
        DataTransactionResult result = event.getTargetTile().offer(data);

        if (!result.isSuccessful()) {
            // Couldn't offer WarpData to the sign - log in the console and
            // warn the possible player that placed the sign
            String error =
                    "Failed to offer WarpData " + data.toContainer().toString() + " to the Sign at "
                            + event.getTargetTile().getLocation().toString();
            plugin.getLogger().warn(error);
            Optional<Player> optPlayer = event.getCause().first(Player.class);
            if (optPlayer.isPresent()) {
                optPlayer.get().sendMessage(Text.of(TextColors.RED, Constants.PREFIX, " ", error));
            }

        }
    }

}
 
开发者ID:RobertHerhold,项目名称:BLWarps,代码行数:35,代码来源:ChangeSignEventHandler.java


示例9: getKeys

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
protected static Set<Key<?>> getKeys(DataTransactionResult result) {
    final Set<Key<?>> keys = new HashSet<>();
    result.getReplacedData().forEach(value -> keys.add(value.getKey()));
    result.getSuccessfulData().forEach(value -> keys.add(value.getKey()));
    // We don't need the rejected keys, they didn't modify any values
    return keys;
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:8,代码来源:CompositeValueStoreHelper.java


示例10: undoFast

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
protected static <H extends ValueContainer<?>> boolean undoFast(ICompositeValueStore<?, H> store, DataTransactionResult result) {
    final boolean hasListeners = hasListeners(store, getKeys(result));
    if (hasListeners) {
        return undo(store, result, () -> true).isSuccessful();
    }
    return store.undoFastNoEvents(result);
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:8,代码来源:CompositeValueStoreHelper.java


示例11: offerNoEvents

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
default DataTransactionResult offerNoEvents(Iterable<H> valueContainers, MergeFunction function) {
    final DataTransactionResult.Builder builder = DataTransactionResult.builder();
    for (H valueContainer : valueContainers) {
        builder.absorbResult(offerNoEvents(valueContainer, function));
    }
    return builder.build();
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:8,代码来源:ICompositeValueStore.java


示例12: offer

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
protected static <H extends ValueContainer<?>> DataTransactionResult offer(ICompositeValueStore<?, H> store,
        Iterable<H> valueContainers, MergeFunction function) {
    return offer(store, valueContainers, function, () -> {
        final Set<Key<?>> keys = new HashSet<>();
        for (H valueContainer : valueContainers) {
            keys.addAll(valueContainer.getKeys());
        }
        return hasListeners(store, keys);
    });
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:11,代码来源:CompositeValueStoreHelper.java


示例13: removeFrom

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
@Override
public DataTransactionResult removeFrom(IValueContainer<?> valueContainer) {
    DataTransactionResult result = null;
    for (Processor<V, E> processor : this.processors) {
        result = processor.removeFrom(valueContainer);
        if (result.isSuccessful()) {
            return result;
        }
    }
    return result == null ? DataTransactionResult.failNoData() : result;
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:12,代码来源:SimpleProcessorKeyRegistration.java


示例14: offerTo

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
@Override
public DataTransactionResult offerTo(IValueContainer<?> valueContainer, E element) {
    DataTransactionResult result = null;
    for (Processor<V, E> processor : this.processors) {
        result = processor.offerTo(valueContainer, element);
        if (result.isSuccessful()) {
            return result;
        }
    }
    return result == null ? DataTransactionResult.failNoData() : result;
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:12,代码来源:SimpleProcessorKeyRegistration.java


示例15: offerTo

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
@Override
public DataTransactionResult offerTo(IValueContainer<?> valueContainer, E element) {
    if (!isApplicableTo(valueContainer)) {
        return DataTransactionResult.failNoData();
    }
    return isApplicableTo(valueContainer) ? this.offerHandler.offer(valueContainer, getKey(), element) : DataTransactionResult.failNoData();
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:8,代码来源:SimpleValueProcessor.java


示例16: removeNoEvents

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
default DataTransactionResult removeNoEvents(Key<?> key) {
    checkNotNull(key, "key");

    // Check the local key registration
    final KeyRegistration<?, ?> localKeyRegistration = (KeyRegistration<?, ?>) getValueCollection().get((Key) key).orElse(null);
    if (localKeyRegistration != null) {
        return ((Processor<BaseValue<?>, ?>) localKeyRegistration).removeFrom(this);
    }

    // Check for a global registration
    final Optional<ValueProcessorKeyRegistration> globalRegistration = LanternValueFactory.get().getKeyRegistration((Key) key);
    if (globalRegistration.isPresent()) {
        return ((Processor<BaseValue<?>, ?>) globalRegistration.get()).removeFrom(this);
    }

    // Check if custom data is supported by this container
    if (this instanceof AdditionalContainerHolder) {
        // Check for the custom value containers
        final AdditionalContainerCollection<H> containers = ((AdditionalContainerHolder<H>) this).getAdditionalContainers();
        for (H valueContainer : containers.getAll()) {
            if (valueContainer.supports(key)) {
                if (valueContainer instanceof ICompositeValueStore) {
                    return ((ICompositeValueStore) valueContainer).removeNoEvents(key);
                } else if (valueContainer instanceof CompositeValueStore) {
                    return ((CompositeValueStore) valueContainer).remove(key);
                }
                return DataTransactionResult.failNoData();
            }
        }
    }

    return DataTransactionResult.failNoData();
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:34,代码来源:ICompositeValueStore.java


示例17: undoFastNoEvents

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
default boolean undoFastNoEvents(DataTransactionResult result) {
    if (result.getReplacedData().isEmpty() &&
            result.getSuccessfulData().isEmpty()) {
        return true;
    }
    result.getSuccessfulData().forEach(value -> removeFastNoEvents(value.getKey()));
    result.getReplacedData().forEach(value -> offerFastNoEvents((Key) value.getKey(), value.get()));
    return true;
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:10,代码来源:ICompositeValueStore.java


示例18: undoNoEvents

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
default DataTransactionResult undoNoEvents(DataTransactionResult result) {
    if (result.getReplacedData().isEmpty() &&
            result.getSuccessfulData().isEmpty()) {
        return DataTransactionResult.successNoData();
    }
    final DataTransactionResult.Builder builder = DataTransactionResult.builder();
    for (ImmutableValue<?> replaced : result.getReplacedData()) {
        builder.absorbResult(offerNoEvents(replaced));
    }
    for (ImmutableValue<?> successful : result.getSuccessfulData()) {
        builder.absorbResult(removeNoEvents(successful.getKey()));
    }
    return builder.result(DataTransactionResult.Type.SUCCESS).build();
}
 
开发者ID:LanternPowered,项目名称:LanternServer,代码行数:15,代码来源:ICompositeValueStore.java


示例19: removeFrom

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
@Override
public DataTransactionResult removeFrom(ValueContainer<?> container) {
    return DataTransactionResult.failNoData();
}
 
开发者ID:gabizou,项目名称:ThaumicSponge,代码行数:5,代码来源:PlayerWarpDataProcessor.java


示例20: remove

import org.spongepowered.api.data.DataTransactionResult; //导入依赖的package包/类
@Override
public DataTransactionResult remove(DataHolder dataHolder) {
    return DataTransactionResult.failNoData();
}
 
开发者ID:gabizou,项目名称:ThaumicSponge,代码行数:5,代码来源:AuraNodeDataProcessor.java



注:本文中的org.spongepowered.api.data.DataTransactionResult类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java WorkbenchViewerComparator类代码示例发布时间:2022-05-22
下一篇:
Java SoyException类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap