本文整理汇总了Java中org.bukkit.entity.minecart.HopperMinecart类的典型用法代码示例。如果您正苦于以下问题:Java HopperMinecart类的具体用法?Java HopperMinecart怎么用?Java HopperMinecart使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HopperMinecart类属于org.bukkit.entity.minecart包,在下文中一共展示了HopperMinecart类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: teleportVehicle
import org.bukkit.entity.minecart.HopperMinecart; //导入依赖的package包/类
public static void teleportVehicle() {
final List<BungeeQueue> vehicleQueue = Plugin.bungeeCordVehicleInQueue;
final Iterator<BungeeQueue> it = vehicleQueue.iterator();
while (it.hasNext()) {
final BungeeQueue queue = it.next();
// Spawn incoming BungeeCord vehicle
final Location destination = queue.getDestination();
final World world = destination.getWorld();
checkChunkLoad(destination.getBlock());
Entity entity = null;
String entityItemStack = null;
// Parse passenger info
if (queue.getQueueType() == BungeeQueueType.PASSENGER) {
if (queue.getEntityType().isSpawnable()) {
entity = world.spawnEntity(destination, queue.getEntityType());
EntityUtil.setEntityTypeData(entity, queue.getEntityTypeData());
entity.teleport(destination);
}
// Parse vehicle contents
} else if (queue.getItemStack() != null) {
entityItemStack = queue.getItemStack();
}
final Entity passenger = entity;
// Create new velocity
final Vector newVelocity = destination.getDirection();
newVelocity.multiply(queue.getVelocity());
if (passenger != null) {
final Vehicle v = (Vehicle) world.spawnEntity(destination, queue.getVehicleType());
Plugin.instance.getServer().getScheduler().scheduleSyncDelayedTask(Plugin.instance, new Runnable() {
@Override
public void run() {
v.setPassenger(passenger);
v.setVelocity(newVelocity);
}
}, 2);
} else {
final Vehicle mc = (Vehicle) world.spawnEntity(destination, queue.getVehicleType());
if (mc instanceof StorageMinecart && entityItemStack != null) {
final StorageMinecart smc = (StorageMinecart) mc;
smc.getInventory().setContents(ItemStackUtil.stringToItemStack(entityItemStack));
} else if (mc instanceof HopperMinecart && entityItemStack != null) {
final HopperMinecart hmc = (HopperMinecart) mc;
hmc.getInventory().setContents(ItemStackUtil.stringToItemStack(entityItemStack));
}
mc.setVelocity(newVelocity);
}
// Remove from queue
it.remove();
}
}
示例2: onItemMove
import org.bukkit.entity.minecart.HopperMinecart; //导入依赖的package包/类
@EventHandler
public void onItemMove(InventoryMoveItemEvent event) {
try {
// Check for nulls
if (event.getSource() == null || event.getSource().getHolder() == null) { return; }
if (event.getDestination() == null || event.getDestination().getHolder() == null) { return; }
// Debug
debug("onItemMove(%s, %s, %s)", event.getItem().getType(), event.getSource().getHolder(),
event.getDestination().getHolder());
// Check if destination is a hopper minecart. If it isn't, the transaction is always valid.
if (!(event.getDestination().getHolder() instanceof HopperMinecart)) {
debug("onItemMove() returning because destination is not a HopperMinecart");
return;
}
final HopperMinecart hopper = (HopperMinecart) event.getDestination().getHolder();
final InventoryHolder source = event.getSource().getHolder();
if (isValidSource(source)) {
final Location sourceLocation = event.getSource().getLocation();
if (sourceLocation == null) {
error("Failed to find location of source InventoryHolder: %s", source);
return;
}
final BlockProtection sourceProt = this.module.getProtection(sourceLocation).orElse(null);
if (sourceProt == null) { debug("onItemMove() returning because sourceProt is null"); return; }
// Check if destination hopper is also protected
final EntityProtection destProt = this.module.getProtection(hopper.getUniqueId()).orElse(null);
if (destProt == null) {
// HopperMinecart is not protected, so we don't know from whom the hopper is coming
// from. Because the source is protected, we have to protect its content from being
// taken by an unknown minecrat. Therefore, the event needs to be cancelled.
debug("onItemMove() returning because destProt is null");
event.setCancelled(true);
return;
}
// The HopperMinecart is protected, so we can check if the owner of that is allowed to
// take items from the protected source
StoredPlayer hopperOwner = destProt.getOwner();
if (!this.module.isAllowedToInteract(sourceProt, hopperOwner)) {
// Seems like the owner of the HopperMinecart is not allowed to interact with the source
debug("onItemMove() cancelling because hopperOwner can not access sourecProt");
event.setCancelled(true);
return;
}
}
}
catch (Exception e) { report("Failed to handle InventoryMoveItemEvent", e); }
}