public void onMinecartClickedEvent(MinecartClickedEvent event) { if (event.isActionTaken()) { return; } MinecartManiaMinecart minecart = event.getMinecart(); if (StationUtil.isInQueue(minecart)) { event.setActionTaken(true); return; } CompassDirection facingDir = DirectionUtils.getDirectionFromMinecartRotation( (minecart.minecart.getPassenger().getLocation().getYaw() - 90.0F) % 360.0F); Vector velocity = (Vector) minecart.getDataValue("preintersection velocity"); if (velocity == null) { return; } velocity = StationUtil.alterMotionFromDirection(facingDir, velocity); // responding to chat direction prompt if (minecart.isAtIntersection() && minecart.hasPlayerPassenger()) { if (StationUtil.isValidDirection(facingDir, minecart)) { int data = DirectionUtils.getMinetrackRailDataForDirection(facingDir, minecart.getDirection()); if (data != -1) { MinecartManiaWorld.setBlockData( minecart.minecart.getWorld(), minecart.getX(), minecart.getY(), minecart.getZ(), data); } minecart.minecart.setVelocity(velocity); minecart.setDataValue("preintersection velocity", null); } event.setActionTaken(true); } }