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


Java TileEntityCarrier类代码示例

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


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

示例1: performRemoval

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
private void performRemoval(LookupLine line) {
	World w = Sponge.getServer().getWorld(line.getWorld()).orElse(null);
	if (w == null) return;
	
	if (line.getTarget() instanceof ItemType) {
		
		Optional<TileEntity> te = w.getTileEntity(line.getPos());
		if (te.isPresent() && te.get() instanceof TileEntityCarrier) {
			TileEntityCarrier c = (TileEntityCarrier) te.get();
			Inventory i = c.getInventory();
			
			Inventory slot = i.query(new SlotIndex(line.getSlot()));
			slot.set(ItemStack.of(ItemTypes.NONE, 0));
		}
		
	} else if (line.getTarget() instanceof BlockType) {
		
		BlockState block = BlockState.builder().blockType(BlockTypes.AIR).build();
		w.setBlock(line.getPos(), block, Cause.source(container).build());
		
	}
}
 
开发者ID:Karanum,项目名称:AdamantineShield,代码行数:23,代码来源:RollbackManager.java

示例2: onBlockSecondaryInteract

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
@Listener
public void onBlockSecondaryInteract(InteractBlockEvent.Secondary.MainHand e, @First Player p) {		
	if (!plugin.getInspectManager().isInspector(p))
		return;
	
	//TODO: Figure out why shearing sheep causes weird shit to happen
	
	e.setCancelled(true);
	BlockSnapshot block = e.getTargetBlock();
	if (block == null || !block.getLocation().isPresent())
		return;
	
	Location<World> loc = block.getLocation().get();
	
	p.sendMessage(Text.of(TextColors.BLUE, "Querying database, please wait..."));
	if (loc.getTileEntity().isPresent() && loc.getTileEntity().get() instanceof TileEntityCarrier) {
		Sponge.getScheduler().createAsyncExecutor(plugin).execute(() -> {
			plugin.getInspectManager().inspectContainer(p, block.getWorldUniqueId(), loc.getBlockPosition()); });
	} else {
		Sponge.getScheduler().createAsyncExecutor(plugin).execute(() -> {
			plugin.getInspectManager().inspect(p, block.getWorldUniqueId(), loc.getBlockPosition().add(e.getTargetSide().asBlockOffset())); });
	}
}
 
开发者ID:Karanum,项目名称:AdamantineShield,代码行数:24,代码来源:PlayerInspectListener.java

示例3: linkChest

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
/** @return true if the player was marked as active linker */
public static boolean linkChest(Player player, TileEntityCarrier carrier) {
	PluginTranslation l = VillagerShops.getTranslator();
	
	if (!activeLinker.containsKey(player.getUniqueId())) {
		//player.sendMessage(Text.of("You need to /vshop link a playershop first"));
		return false;
	} else if (!carrier.getBlock().getType().equals(BlockTypes.CHEST)) {
		player.sendMessage(Text.of(TextColors.RED, "[vShop] ",
				l.local("cmd.link.nochest").resolve(player).orElse("[not a chest]")));
	} else {
		Optional<NPCguard> npc = VillagerShops.getNPCfromShopUUID(activeLinker.get(player.getUniqueId()));
		if (!npc.isPresent()) {
			player.sendMessage(Text.of(TextColors.RED, "[vShop] ",
					l.local("cmd.link.missingshop").resolve(player).orElse("[where's the shop?]")));
		} else {
			npc.get().playershopcontainer = carrier.getLocation();
			player.sendMessage(Text.of(TextColors.GREEN, "[vShop] ",
					l.local("cmd.link.success").resolve(player).orElse("[chest linked!]")));
		}
		activeLinker.remove(player.getUniqueId());
	}
	return true;
}
 
开发者ID:DosMike,项目名称:VillagerShops,代码行数:25,代码来源:ChestLinkManager.java

示例4: onClickInventory

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
@Listener
public void onClickInventory(final ClickInventoryEvent event, @First Player player) {
    //Make sure we have a transaction to validate
    if (event.getTransactions().size() <= 0) {
        return;
    }
    //Get the first transaction of this event
    final SlotTransaction slotTransaction = event.getTransactions().get(0);

    final Slot slot = slotTransaction.getSlot();

    //If the player is interacting with a TileEntityCarrier
    if (slot.parent() instanceof TileEntityCarrier) {
        //If the final item is NONE (or amount is less) person is trying to withdraw (so we care about it)
        if (slotTransaction.getFinal().getType() == ItemTypes.NONE || slotTransaction.getFinal().getCount() < slotTransaction.getOriginal().getCount()) {
            //Then check to see if there's a lock
            final Optional<Lock> lock = Latch.getLockManager().getLock(((TileEntityCarrier) slot.parent()).getLocation());

            //If there's a donation lock the player CANNOT access
            if (lock.isPresent() && lock.get().getLockType() == LockType.DONATION && !lock.get().canAccess(player.getUniqueId())) {
                event.setCancelled(true);
            }
        }
    }
}
 
开发者ID:ichorpowered,项目名称:latch,代码行数:26,代码来源:InteractBlockListener.java

示例5: performAddition

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
private void performAddition(LookupLine line) {
	//TODO: Debug this function, blocks are not being added
	
	World w = Sponge.getServer().getWorld(line.getWorld()).orElse(null);
	if (w == null) return;
	
	if (line.getTarget() instanceof ItemType) {
		
		Optional<TileEntity> te = w.getTileEntity(line.getPos());
		if (te.isPresent() && te.get() instanceof TileEntityCarrier) {
			TileEntityCarrier c = (TileEntityCarrier) te.get();
			Inventory i = c.getInventory();
			
			ItemType type = (ItemType) line.getTarget();
			ItemStack stack = ItemStack.builder()
					.fromContainer(line.getDataAsView())
					.itemType(type)
					.quantity(line.getCount())
					.build();
			Inventory slot = i.query(new SlotIndex(line.getSlot()));
			slot.set(stack);
		}
		
	} else if (line.getTarget() instanceof BlockType) {
		
		BlockState block = BlockState.builder().build(line.getDataAsView()).orElse(null);
		if (block != null)
			w.setBlock(line.getPos(), block, Cause.source(container).build());
		
	}
}
 
开发者ID:Karanum,项目名称:AdamantineShield,代码行数:32,代码来源:RollbackManager.java

示例6: InventoryQueueEntry

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
public InventoryQueueEntry(TileEntityCarrier carrier, int slot, ItemStackSnapshot item, ActionType type, Player cause, long timestamp) {
	this.carrier = carrier;
	this.slot = slot;
	this.item = item;
	this.type = type;
	this.cause = cause;
	this.timestamp = timestamp;
}
 
开发者ID:Karanum,项目名称:AdamantineShield,代码行数:9,代码来源:InventoryQueueEntry.java

示例7: onBlockSecondaryInteract

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
@Listener
public void onBlockSecondaryInteract(InteractBlockEvent.Secondary.MainHand e, @First Player p) {
	BlockSnapshot target = e.getTargetBlock();
	Location<World> loc = target.getLocation().orElse(null);
	if (loc == null)
		return;
	
	Optional<TileEntity> entity = loc.getExtent().getTileEntity(loc.getBlockPosition());
	if (!entity.isPresent() || !(entity.get() instanceof TileEntityCarrier))
		return;

	manager.addPlayer(p.getUniqueId(), Sponge.getServer().getRunningTimeTicks(), (TileEntityCarrier) entity.get());
}
 
开发者ID:Karanum,项目名称:AdamantineShield,代码行数:14,代码来源:ContainerAccessListener.java

示例8: update

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
@Override
public boolean update() {
	Optional<TileEntity> chest = toGiveChest.getTileEntity();
	if (chest.isPresent() && chest.get() instanceof TileEntityCarrier) {
		if (!hasEnough(((TileEntityCarrier) chest.get()).getInventory(), toGive)) {
			setFail();
			return false;
		}
	} else {
		setFail();
		return false;
	}
	chest = toTakeChest.getTileEntity();
	if (chest.isPresent() && chest.get() instanceof TileEntityCarrier) {
		Inventory chestInv = ((TileEntityCarrier) chest.get()).getInventory();
		if (chestInv.capacity() - chestInv.size() < toTake.size()) {
			setFail();
			return false;
		}
	} else {
		setFail();
		return false;
	}

	setOK();
	return true;
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:28,代码来源:aTrade.java

示例9: aSell

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
public aSell(Player player, Location<World> sign) throws ExceptionInInitializerError {
	super(sign);
	if (!player.hasPermission("carrotshop.admin.asell"))
		throw new ExceptionInInitializerError("You don't have perms to build an aSell sign");
	Stack<Location<World>> locations = ShopsData.getItemLocations(player);
	if (locations.isEmpty())
		throw new ExceptionInInitializerError("Sell signs require a chest");
	Optional<TileEntity> chestOpt = locations.peek().getTileEntity();
	if (!chestOpt.isPresent() || !(chestOpt.get() instanceof TileEntityCarrier))
		throw new ExceptionInInitializerError("Sell signs require a chest");
	Inventory items = ((TileEntityCarrier) chestOpt.get()).getInventory();
	if (items.totalItems() == 0)
		throw new ExceptionInInitializerError("chest cannot be empty");
	price = getPrice(sign);
	if (price < 0)
		throw new ExceptionInInitializerError("bad price");
	sellerChest = locations.peek();
	itemsTemplate = Inventory.builder().from(items).build(CarrotShop.getInstance());
	for(Inventory item : items.slots()) {
		if (item.peek().isPresent())
			itemsTemplate.offer(item.peek().get());
	}

	ShopsData.clearItemLocations(player);
	player.sendMessage(Text.of(TextColors.DARK_GREEN, "You have setup an aSell shop:"));
	done(player);
	info(player);
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:29,代码来源:aSell.java

示例10: update

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
@Override
public boolean update() {
	Optional<TileEntity> chest = sellerChest.getTileEntity();
	if (chest.isPresent() && chest.get() instanceof TileEntityCarrier) {
		Inventory chestInv = ((TileEntityCarrier) chest.get()).getInventory();
		if (chestInv.capacity() - chestInv.size() >= itemsTemplate.size()) {
			setOK();
			return true;
		}
	}
	setFail();
	return false;
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:14,代码来源:aSell.java

示例11: Buy

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
public Buy(Player player, Location<World> sign) throws ExceptionInInitializerError {
	super(sign);
	if (!player.hasPermission("carrotshop.create.buy"))
		throw new ExceptionInInitializerError("You don't have perms to build a Buy sign");
	Stack<Location<World>> locations = ShopsData.getItemLocations(player);
	if (locations.isEmpty())
		throw new ExceptionInInitializerError("Buy signs require a chest");
	Optional<TileEntity> chestOpt = locations.peek().getTileEntity();
	if (!chestOpt.isPresent() || !(chestOpt.get() instanceof TileEntityCarrier))
		throw new ExceptionInInitializerError("Buy signs require a chest");
	Inventory items = ((TileEntityCarrier) chestOpt.get()).getInventory();
	if (items.totalItems() == 0)
		throw new ExceptionInInitializerError("chest cannot be empty");
	price = getPrice(sign);
	if (price < 0)
		throw new ExceptionInInitializerError("bad price");
	sellerChest = locations.peek();
	itemsTemplate = Inventory.builder().from(items).build(CarrotShop.getInstance());
	for(Inventory item : items.slots()) {
		if (item.peek().isPresent())
			itemsTemplate.offer(item.peek().get());
	}
	setOwner(player);
	ShopsData.clearItemLocations(player);
	player.sendMessage(Text.of(TextColors.DARK_GREEN, "You have setup a Buy shop:"));
	done(player);
	info(player);
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:29,代码来源:Buy.java

示例12: update

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
@Override
public boolean update() {
	Optional<TileEntity> chest = sellerChest.getTileEntity();
	if (chest.isPresent() && chest.get() instanceof TileEntityCarrier) {
		if (hasEnough(((TileEntityCarrier) chest.get()).getInventory(), itemsTemplate)) {
			setOK();
			return true;
		}
	}
	setFail();
	return false;
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:13,代码来源:Buy.java

示例13: aBuy

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
public aBuy(Player player, Location<World> sign) throws ExceptionInInitializerError {
	super(sign);
	if (!player.hasPermission("carrotshop.admin.abuy"))
		throw new ExceptionInInitializerError("You don't have perms to build an aBuy sign");
	Stack<Location<World>> locations = ShopsData.getItemLocations(player);
	if (locations.isEmpty())
		throw new ExceptionInInitializerError("aBuy signs require a chest");
	Optional<TileEntity> chestOpt = locations.peek().getTileEntity();
	if (!chestOpt.isPresent() || !(chestOpt.get() instanceof TileEntityCarrier))
		throw new ExceptionInInitializerError("aBuy signs require a chest");
	Inventory items = ((TileEntityCarrier) chestOpt.get()).getInventory();
	if (items.totalItems() == 0)
		throw new ExceptionInInitializerError("chest cannot be empty");
	price = getPrice(sign);
	if (price < 0)
		throw new ExceptionInInitializerError("bad price");
	sellerChest = locations.peek();
	itemsTemplate = Inventory.builder().from(items).build(CarrotShop.getInstance());
	for(Inventory item : items.slots()) {
		if (item.peek().isPresent())
			itemsTemplate.offer(item.peek().get());
	}
	
	ShopsData.clearItemLocations(player);
	player.sendMessage(Text.of(TextColors.DARK_GREEN, "You have setup an aBuy shop:"));
	done(player);
	info(player);
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:29,代码来源:aBuy.java

示例14: iBuy

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
public iBuy(Player player, Location<World> sign) throws ExceptionInInitializerError {
	super(sign);
	if (!player.hasPermission("carrotshop.admin.ibuy"))
		throw new ExceptionInInitializerError("You don't have perms to build an iTrade sign");
	Stack<Location<World>> locations = ShopsData.getItemLocations(player);
	if (locations.isEmpty())
		throw new ExceptionInInitializerError("Buy signs require a chest");
	Optional<TileEntity> chestOpt = locations.peek().getTileEntity();
	if (!chestOpt.isPresent() || !(chestOpt.get() instanceof TileEntityCarrier))
		throw new ExceptionInInitializerError("Buy signs require a chest");
	Inventory items = ((TileEntityCarrier) chestOpt.get()).getInventory();
	if (items.totalItems() == 0)
		throw new ExceptionInInitializerError("chest cannot be empty");
	price = getPrice(sign);
	if (price < 0)
		throw new ExceptionInInitializerError("bad price");
	itemsTemplate = Inventory.builder().from(items).build(CarrotShop.getInstance());
	for(Inventory item : items.slots()) {
		if (item.peek().isPresent())
			itemsTemplate.offer(item.peek().get());
	}

	ShopsData.clearItemLocations(player);
	player.sendMessage(Text.of(TextColors.DARK_GREEN, "You have setup an iBuy shop:"));
	done(player);
	info(player);
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:28,代码来源:iBuy.java

示例15: iSell

import org.spongepowered.api.block.tileentity.carrier.TileEntityCarrier; //导入依赖的package包/类
public iSell(Player player, Location<World> sign) throws ExceptionInInitializerError {
	super(sign);
	if (!player.hasPermission("carrotshop.admin.isell"))
		throw new ExceptionInInitializerError("You don't have perms to build an iTrade sign");
	Stack<Location<World>> locations = ShopsData.getItemLocations(player);
	if (locations.isEmpty())
		throw new ExceptionInInitializerError("iSell signs require a chest");
	Optional<TileEntity> chestOpt = locations.peek().getTileEntity();
	if (!chestOpt.isPresent() || !(chestOpt.get() instanceof TileEntityCarrier))
		throw new ExceptionInInitializerError("iSell signs require a chest");
	Inventory items = ((TileEntityCarrier) chestOpt.get()).getInventory();
	if (items.totalItems() == 0)
		throw new ExceptionInInitializerError("chest cannot be empty");
	price = getPrice(sign);
	if (price < 0)
		throw new ExceptionInInitializerError("bad price");
	itemsTemplate = Inventory.builder().from(items).build(CarrotShop.getInstance());
	for(Inventory item : items.slots()) {
		if (item.peek().isPresent())
			itemsTemplate.offer(item.peek().get());
	}

	ShopsData.clearItemLocations(player);
	player.sendMessage(Text.of(TextColors.DARK_GREEN, "You have setup an iSell shop:"));
	done(player);
	info(player);
}
 
开发者ID:TheoKah,项目名称:CarrotShop,代码行数:28,代码来源:iSell.java


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