/** * {@inheritDoc} */ @Override public boolean canSpawnCartSafely(Minecart cart) { if (this.isBlockAboveAir(cart.getLocation())) { return true; } if (this.isEntitiyOnTrack(plugin.getLocationManipulation().getNextBlock(cart))) { return true; } return false; }
@EventHandler(ignoreCancelled = true) @SuppressWarnings("ucd") public void onVehicleMove(VehicleMoveEvent event) { final Vehicle v = event.getVehicle(); if (! (v instanceof Minecart)) return; final Minecart m = (Minecart) v; double speed = MathUtil.getSpeed(m); int id = m.getEntityId(); final BlockData data = m.getLocation(location).getBlock().getState().getBlockData(); if (speed != 0 && (data instanceof Rail)) { Double storedspeed; if (! speedmap.containsKey(id)) speedmap.put(id, speed); else if ((storedspeed = speedmap.get(id)) > speed && storedspeed <= m.getMaxSpeed()) MathUtil.setSpeed(m, storedspeed); else speedmap.put(id, speed); } else speedmap.remove(id); }
/** * Detect a sign under the cart created * * @param event */ @EventHandler(ignoreCancelled = true) @SuppressWarnings("ucd") public void onVehicleCreate(VehicleCreateEvent event) { if(event.getVehicle() instanceof Minecart) // we care only of minecart { Minecart vehicle = (Minecart) event.getVehicle(); // we instantiate a member of the BCXXXX class // XXXX is read from the sign Triggable myIC; myIC = TriggeredSignFactory.getTriggeredIC(vehicle.getLocation().getBlock().getRelative(BlockFace.DOWN, 2),vehicle); if (myIC != null) { myIC.trigger(); } } }
if (cart.getLocation().distanceSquared(targetPlayer.getLocation()) < nearest_cart.getLocation().distanceSquared(targetPlayer.getLocation()))