当前位置: 首页>>代码示例>>Java>>正文


Java SignData类代码示例

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


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

示例1: generateWarpSignData

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
/**
 * @param warp the warp to represent on the SignData
 * @return the formatted SignData indicating a valid warp sign
 */
public static SignData generateWarpSignData(Warp warp) {
    Optional<DataManipulatorBuilder<SignData, ImmutableSignData>> builder =
            Sponge.getDataManager().getManipulatorBuilder(SignData.class);
    SignData signData = builder.get().create();
    ListValue<Text> lines = signData.lines();

    lines.set(0, Text.of());
    lines.set(1, Text.of(TextColors.DARK_BLUE, Constants.WARP_SIGN_PREFIX));
    lines.set(2, Text.of(TextColors.GOLD, warp.getName()));
    lines.set(3, Text.of());

    signData.set(lines);

    return signData;

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

示例2: getSign

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
@Override
public String[] getSign(Location location) {
    World world = SpongeUtil.getWorld(location.getWorld());
    Optional<TileEntity> block = world.getTileEntity(location.getX(), location.getY(), location.getZ());
    if (!block.isPresent()) {
        return null;
    }
    TileEntity tile = block.get();
    if (!(tile instanceof Sign)) {
        return null;
    }
    Sign sign = (Sign) tile;
    Optional<SignData> optional = sign.get(SignData.class);
    if (!optional.isPresent()) {
        return null;
    }
    String[] result = new String[4];
    ListValue<Text> lines = optional.get().lines();
    for (int i = 0; i < 4; i++) {
        result[i] = lines.get(i).toString();
    }
    return result;
}
 
开发者ID:IntellectualSites,项目名称:PlotSquared,代码行数:24,代码来源:SpongeUtil.java

示例3: setFirstLineColor

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
private final void setFirstLineColor(TextColor color) {
	Optional<TileEntity> sign = location.getTileEntity();
	if (sign.isPresent() && sign.get().supports(SignData.class)) {
		Optional<SignData> data = sign.get().getOrCreate(SignData.class);
		if (data.isPresent()) {
			SignData signData = data.get();
			signData.set(signData.lines().set(0, Text.of(color, signData.lines().get(0).toPlain())));
			sign.get().offer(signData);
		}
	}
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:12,代码来源:Shop.java

示例4: getPrice

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
static protected final int getPrice(Location<World> location) {
	Optional<TileEntity> sign = location.getTileEntity();
	if (sign.isPresent() && sign.get().supports(SignData.class)) {
		Optional<SignData> data = sign.get().get(SignData.class);
		if (data.isPresent()) {
			String priceLine = data.get().lines().get(3).toPlain().replaceAll("[^\\d]", "");
			if (priceLine.length() == 0)
				return 0;
			return Integer.parseInt(priceLine);
		}
	}
	return -1;
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:14,代码来源:Shop.java

示例5: onSignChange

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
@Listener
public void onSignChange(ChangeSignEvent event, @First Player player)
{
	SignData signData = event.getText();

	if (signData.getValue(Keys.SIGN_LINES).isPresent())
	{
		String line0 = signData.getValue(Keys.SIGN_LINES).get().get(0).toPlain();
		String line1 = signData.getValue(Keys.SIGN_LINES).get().get(1).toPlain();
		String line2 = signData.getValue(Keys.SIGN_LINES).get().get(2).toPlain();
		String line3 = signData.getValue(Keys.SIGN_LINES).get().get(3).toPlain();

		if (line0.equals("[Warp]"))
		{
			if (Utils.getWarps().contains(line1))
			{
				signData = signData.set(signData.getValue(Keys.SIGN_LINES).get().set(0, Text.of(TextColors.DARK_BLUE, "[Warp]")));
			}
			else
			{
				signData = signData.set(signData.getValue(Keys.SIGN_LINES).get().set(0, Text.of(TextColors.DARK_RED, "[Warp]")));
			}
		}
		else if (player != null && player.hasPermission("essentialcmds.color.sign.use"))
		{
			signData = signData.set(signData.getValue(Keys.SIGN_LINES).get().set(0, TextSerializers.formattingCode('&').deserialize(line0)));
			signData = signData.set(signData.getValue(Keys.SIGN_LINES).get().set(1, TextSerializers.formattingCode('&').deserialize(line1)));
			signData = signData.set(signData.getValue(Keys.SIGN_LINES).get().set(2, TextSerializers.formattingCode('&').deserialize(line2)));
			signData = signData.set(signData.getValue(Keys.SIGN_LINES).get().set(3, TextSerializers.formattingCode('&').deserialize(line3)));
		}
	}
}
 
开发者ID:hsyyid,项目名称:EssentialCmds,代码行数:33,代码来源:SignChangeListener.java

示例6: onSignChange

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
@Listener
public void onSignChange(ChangeSignEvent event, @First Player player) {
    Sign signTile = event.getTargetTile();
    if (!signTile.get(LiteKeys.JOB_NAME).isPresent() && player.hasPermission("jobs.admin.sign.create")) {
        SignData data = event.getText();
        try {
            if (data.getValue(Keys.SIGN_LINES).get().get(0).toPlain().equals("[JobsLite]")) {
                String signJob = data.getValue(Keys.SIGN_LINES).get().get(1).toPlain();
                if (jobManager.jobExists(signJob)) {
                    signTile.offer(data.set(data.getValue(Keys.SIGN_LINES).get().set(0, Text.of("[Job]"))));
                    SignJobDataManipulatorBuilder builder =
                            (SignJobDataManipulatorBuilder) Sponge.getDataManager().getManipulatorBuilder(SignJobData.class).get();
                    SignJobData signJobData = builder.setSignInfo(signJob).create();
                    signTile.offer(signJobData);
                    player.sendMessage(messageStorage.getMessage("sign.success"));
                    return;
                } else {
                    player.sendMessage(messageStorage.getMessage("sign.nojob"));
                    return;
                }
            }
        } catch (IndexOutOfBoundsException | NoSuchElementException e) {
            player.sendMessage(messageStorage.getMessage("sign.invalid"));
            return;
        }
    } else if (signTile.get(LiteKeys.JOB_NAME).isPresent() && !player.hasPermission("jobs.admin.sign.delete")) {
        player.sendMessage(messageStorage.getMessage("sign.nopermission"));
        event.setCancelled(true);
    }
}
 
开发者ID:Flibio,项目名称:JobsLite,代码行数:31,代码来源:SignListeners.java

示例7: log

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
public static void log(UUID shopOwnerUUID, Player player, String type, Location<World> location, Optional<Integer> price, Optional<Currency> currency, Optional<Inventory> itemsA, Optional<Inventory> itemsB) {

		String shopOwner = shopOwnerUUID != null ? shopOwnerUUID.toString() : "server";

		if (shopOwnerUUID != null) {
			Optional<Player> seller = Sponge.getServer().getPlayer(shopOwnerUUID);
			if (!seller.isPresent()) {
				ShopsData.soldSomethingOffline(shopOwnerUUID);
			}
		}

		JsonObject newNode = new JsonObject();
		newNode.addProperty("player", player.getName());
		newNode.addProperty("playerID", player.getUniqueId().toString());
		newNode.addProperty("time", System.currentTimeMillis());

		JsonObject locationNode = new JsonObject();
		locationNode.addProperty("world", location.getExtent().getName());
		locationNode.addProperty("worldID", location.getExtent().getUniqueId().toString());
		locationNode.addProperty("X", location.getBlockX());
		locationNode.addProperty("Y", location.getBlockY());
		locationNode.addProperty("Z", location.getBlockZ());

		Optional<TileEntity> sign = location.getTileEntity();
		if (sign.isPresent() && sign.get().supports(SignData.class)) {
			Optional<SignData> data = sign.get().getOrCreate(SignData.class);
			if (data.isPresent()) {
				locationNode.addProperty("line0", data.get().lines().get(0).toPlain());
				locationNode.addProperty("line1", data.get().lines().get(1).toPlain());
				locationNode.addProperty("line2", data.get().lines().get(2).toPlain());
				locationNode.addProperty("line3", data.get().lines().get(3).toPlain());
			}
		}

		newNode.add("sign", locationNode);

		if (ShopsData.hasMultipleCurrencies() && currency.isPresent()) {
			JsonObject currencyNode = new JsonObject();
			currencyNode.addProperty("currencySymbol", TextSerializers.FORMATTING_CODE.serialize(currency.get().getSymbol()));
			currencyNode.addProperty("currencySymbolplain", currency.get().getSymbol().toPlain());
			currencyNode.addProperty("currencyName", currency.get().getName());
			currencyNode.addProperty("currencyDName", TextSerializers.FORMATTING_CODE.serialize(currency.get().getDisplayName()));
			currencyNode.addProperty("currencyPDName", TextSerializers.FORMATTING_CODE.serialize(currency.get().getPluralDisplayName()));
			newNode.add("currency", currencyNode);
		}

		if (price.isPresent())
			newNode.addProperty("price", price.get());

		if (itemsA.isPresent())
			newNode.add("items", invToArray(itemsA.get()));

		if (itemsB.isPresent())
			newNode.add("items2", invToArray(itemsB.get()));

		try {
			File file = new File(carrotLogsFolder, shopOwner + "." + type);

			if (!file.exists()) {
				file.createNewFile();
				JsonObject firstNode = new JsonObject();
				firstNode.addProperty("init", true);
				firstNode.addProperty("time", System.currentTimeMillis());

				Files.write(file.toPath(), firstNode.toString().getBytes(), StandardOpenOption.APPEND);
			}
			Files.write(file.toPath(), ",".getBytes(), StandardOpenOption.APPEND);
			Files.write(file.toPath(), newNode.toString().getBytes(), StandardOpenOption.APPEND);

		} catch (IOException e) {
			CarrotShop.getLogger().error("Unable to store logs for shop " + shopOwner + " triggered by " + player.getName() + ": " + e.getMessage());
		}
	}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:74,代码来源:ShopsLogs.java

示例8: Shop

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
public Shop(Location<World> loc) {
	Optional<TileEntity> tile = loc.getTileEntity();
	if (!tile.isPresent() || !tile.get().supports(SignData.class))
		throw new ExceptionInInitializerError("Improbable error: managed to trigger a shop creation event from something other than a sign");
	location = loc;
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:7,代码来源:Shop.java

示例9: create

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
@Override
public boolean create(EPlayer player, Location<World> location, SignData data) {
	EEMessages.SIGN_BALANCE_CREATE.sendTo(player);
	return true;
}
 
开发者ID:EverCraft,项目名称:EverEconomy,代码行数:6,代码来源:BalanceSign.java

示例10: onPlayerInteractBlock

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
@Listener
public void onPlayerInteractBlock(InteractBlockEvent event, @Root Player player)
{
	if (EssentialCmds.frozenPlayers.contains(player.getUniqueId()))
	{
		player.sendMessage(Text.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "You cannot interact while frozen."));
		event.setCancelled(true);
		return;
	}

	if (EssentialCmds.jailedPlayers.contains(player.getUniqueId()))
	{
		player.sendMessage(Text.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "You cannot interact while jailed."));
		event.setCancelled(true);
		return;
	}

	Optional<Location<World>> optLocation = event.getTargetBlock().getLocation();

	if (optLocation.isPresent() && optLocation.get().getTileEntity().isPresent())
	{
		Location<World> location = optLocation.get();
		TileEntity clickedEntity = location.getTileEntity().get();

		if (event.getTargetBlock().getState().getType().equals(BlockTypes.STANDING_SIGN) || event.getTargetBlock().getState().getType().equals(BlockTypes.WALL_SIGN))
		{
			Optional<SignData> signData = clickedEntity.getOrCreate(SignData.class);

			if (signData.isPresent())
			{
				SignData data = signData.get();
				CommandManager cmdService = Sponge.getGame().getCommandManager();
				String line0 = data.getValue(Keys.SIGN_LINES).get().get(0).toPlain();
				String line1 = data.getValue(Keys.SIGN_LINES).get().get(1).toPlain();
				String command = "warp " + line1;

				if (line0.equals("[Warp]"))
				{
					if (player.hasPermission("essentialcmds.warps.use.sign"))
					{
						cmdService.process(player, command);
					}
					else
					{
						player.sendMessage(Text.of(TextColors.DARK_RED, "Error! ", TextColors.RED, "You do not have permission to use Warp Signs!"));
					}
				}
			}
		}
	}
}
 
开发者ID:hsyyid,项目名称:EssentialCmds,代码行数:52,代码来源:PlayerInteractListener.java

示例11: setErrorSign

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
protected void setErrorSign(ChangeSignEvent e, String error) {
	SignData sign = e.getText();
	sign = sign.set(sign.getValue(Keys.SIGN_LINES).get().set(0, RPUtil.toText(RPLang.get("regionbuilder.signerror"))));
    this.setError(e.getCause().first(Player.class).get(), error);
}
 
开发者ID:FabioZumbi12,项目名称:RedProtect,代码行数:6,代码来源:RegionBuilder.java

示例12: run

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
@Override
public void run() {
    for (SavedBuyNowSign sign : plugin.getBuyNowSignStorage().getSigns()) {
        Package p = plugin.getListingUpdateTask().getPackageById(sign.getPackageId());
        if (p == null) {
            plugin.getLogger().error(String.format("Sign at %d, %d, %d in world %s does not have a valid package assigned to it.",
                    sign.getLocation().getX(), sign.getLocation().getY(), sign.getLocation().getZ(), sign.getLocation().getWorld()));
            continue;
        }

        Location location = SpongeSerializedBlockLocation.toSponge(sign.getLocation());

        BlockState b = location.getBlock();

        if (!(b.getType().equals(BlockTypes.WALL_SIGN) || b.getType().equals(BlockTypes.STANDING_SIGN))) {
            plugin.getLogger().error(String.format("Sign at %d, %d, %d in world %s is not a sign in the world!",
                    sign.getLocation().getX(), sign.getLocation().getY(), sign.getLocation().getZ(), sign.getLocation().getWorld()));
            continue;
        }

        Optional<TileEntity> entity = location.getTileEntity();

        Currency currency = Currency.getInstance(plugin.getServerInformation().getAccount().getCurrency().getIso4217());

        List<String> signLines = plugin.getBuyNowSignLayout().format(currency, p);

        if (entity.isPresent() && entity.get().supports(SignData.class)) {
            SignData signData = entity.get().getOrCreate(SignData.class).get();
            ListValue<Text> lines = signData.lines();

            for (int i = 0; i < 4; i++) {
                if (i >= signLines.size()) {
                    lines.set(i, Text.EMPTY);
                } else {
                    lines.set(i, Text.builder(signLines.get(i).replace("&", "§")).build());
                }

            }

            entity.get().offer(lines);
        }

    }
}
 
开发者ID:BuycraftPlugin,项目名称:BuycraftX,代码行数:45,代码来源:BuyNowSignUpdater.java

示例13: run

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
@Override
public void run() {
    for (Map.Entry<RecentPurchaseSignPosition, RecentPayment> entry : paymentMap.entrySet()) {
        Location<World> location = SpongeSerializedBlockLocation.toSponge(entry.getKey().getLocation());

        Optional<TileEntity> entity = location.getTileEntity();
        if (entity.isPresent() && entity.get().supports(SignData.class)) {
            SignData signData = entity.get().getOrCreate(SignData.class).get();
            ListValue<Text> lines = signData.lines();

            if (entry.getValue() != null) {
                lines.set(0, Text.EMPTY);
                lines.set(1, Text.of(entry.getValue().getPlayer().getName()));

                NumberFormat format = NumberFormat.getCurrencyInstance(Locale.US);
                format.setCurrency(Currency.getInstance(entry.getValue().getCurrency().getIso4217()));

                lines.set(2, Text.of(format.format(entry.getValue().getAmount())));
                lines.set(3, Text.EMPTY);
            } else {
                for (int i = 0; i < 4; i++) {
                    lines.set(i, Text.EMPTY);
                }
            }

            entity.get().offer(lines);

            Location<World> supportedBy = location.getRelative(Direction.UP);

            Optional<Skull> skullOptional = findSkull(supportedBy);
            if (skullOptional.isPresent()) {
                Skull skull = skullOptional.get();
                if (!skull.supports(Keys.REPRESENTED_PLAYER)) {
                    skull.offer(Keys.SKULL_TYPE, SkullTypes.PLAYER);
                }
                GameProfile profile = entry.getValue() != null ?
                        resolvedProfiles.getOrDefault(entry.getValue().getPlayer().getName(), resolvedProfiles.get("MHF_Question")) :
                        resolvedProfiles.get("MHF_Question");
                if (profile != null) {
                    skull.offer(Keys.REPRESENTED_PLAYER, profile);
                }
            }
        } else {
            plugin.getLogger().error("Location " + entry.getKey() + " doesn't have a tile entity! (Sign missing?)");
        }
    }
}
 
开发者ID:BuycraftPlugin,项目名称:BuycraftX,代码行数:48,代码来源:SignUpdateApplication.java

示例14: executeTryBreak

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
public boolean executeTryBreak(MarketSignData data, Player player, Location<World> at)
{
    if (data.isOwner(player.getUniqueId()))
    {
        if (!player.hasPermission(module.perms().EDIT_PLAYER_SELF.getId())) {
            i18n.send(player, NEGATIVE, "You are not allowed to break your own market signs!");
            return false;
        }
    }
    else if (data.isAdminOwner())
    {
        if (!player.hasPermission(module.perms().EDIT_ADMIN.getId()))
        {
            i18n.send(player, NEGATIVE, "You are not allowed to break admin market signs!");
            return false;
        }
    }
    else if (!player.hasPermission(module.perms().EDIT_PLAYER_OTHER.getId()))
    {
        i18n.send(player, NEGATIVE, "You are not allowed to break others market signs!");
        return false;
    }

    boolean isDoubleClick = breakingSign.containsKey(player.getUniqueId()) && System.currentTimeMillis() - breakingSign.get(player.getUniqueId()) <= 500;

    if (player.gameMode().get() != GameModes.CREATIVE)
    {
        // When valid ; not Admin ; has stock
        if (isValidSign(data, null) && !data.getOwner().equals(ADMIN_SIGN) && data.getStock() > 0)
        {
            if (!isDoubleClick)
            {
                breakingSign.put(player.getUniqueId(), System.currentTimeMillis());
                i18n.send(player, NEUTRAL, "Double click to empty and break the sign!");
                return false;
            }
            // empty the sign first
            Sponge.getCauseStackManager().pushCause(player);
            takeItem(data, at, player); // TODO spawnType DISPENSE?
            if (data.getStock() == 0)
            {
                breakingSign.remove(player.getUniqueId()); // double click again to actually break the sign
            }
            return false;
        }
    }

    if (player.getItemInHand(HandTypes.MAIN_HAND).isPresent())
    {
        i18n.send(ACTION_BAR, player, NEGATIVE, "Use your bare hands to break the sign!");
        return false;
    }

    // Sign is Empty or Create -> Now Break it (maybe)
    if (isDoubleClick) // 0.5 sec
    {
        Sponge.getCauseStackManager().pushCause(player);
        if (data.getStock() != null && data.getStock() == 1337)  //pssst i am not here
        {
            Entity lightning = at.getExtent().createEntity(EntityTypes.LIGHTNING, at.getPosition());
            at.getExtent().spawnEntity(lightning);
        }

        dropContents(data, at);
        at.remove(MarketSignData.class);
        at.remove(SignData.class);
        at.setBlock(BlockTypes.AIR.getDefaultState()); // TODO break particles + sound?
        if (player.gameMode().get() != GameModes.CREATIVE)
        {
            spawn(at, ItemStack.builder().itemType(ItemTypes.SIGN).quantity(1).build());
        }
        i18n.send(player, POSITIVE, "MarketSign destroyed!");
        return true;
    }
    breakingSign.put(player.getUniqueId(), System.currentTimeMillis());
    i18n.send(ACTION_BAR, player, NEUTRAL, "Double click to break the sign!");
    return false;
}
 
开发者ID:CubeEngine,项目名称:modules-extra,代码行数:79,代码来源:MarketSignManager.java

示例15: create

import org.spongepowered.api.data.manipulator.mutable.tileentity.SignData; //导入依赖的package包/类
public boolean create(EPlayer player, Location<World> location, SignData data); 
开发者ID:EverCraft,项目名称:EverAPI,代码行数:2,代码来源:SignSubject.java


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