本文整理汇总了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());
}
}
示例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())); });
}
}
示例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;
}
示例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);
}
}
}
}
示例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());
}
}
示例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;
}
示例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());
}
示例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;
}
示例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);
}
示例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;
}
示例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);
}
示例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;
}
示例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);
}
示例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);
}
示例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);
}