public void handleMoveVehicle(SPacketMoveVehicle packetIn) { PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController); Entity entity = this.gameController.player.getLowestRidingEntity(); if (entity != this.gameController.player && entity.canPassengerSteer()) { entity.setPositionAndRotation(packetIn.getX(), packetIn.getY(), packetIn.getZ(), packetIn.getYaw(), packetIn.getPitch()); this.netManager.sendPacket(new CPacketVehicleMove(entity)); } }
public void handleMoveVehicle(SPacketMoveVehicle packetIn) { PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.gameController); Entity entity = this.gameController.thePlayer.getLowestRidingEntity(); if (entity != this.gameController.thePlayer && entity.canPassengerSteer()) { entity.setPositionAndRotation(packetIn.getX(), packetIn.getY(), packetIn.getZ(), packetIn.getYaw(), packetIn.getPitch()); this.netManager.sendPacket(new CPacketVehicleMove(entity)); } }
public void processVehicleMove(CPacketVehicleMove packetIn) { PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerWorld()); if (isMoveVehiclePacketInvalid(packetIn)) { this.kickPlayerFromServer("Invalid move vehicle packet received"); } else { Entity entity = this.playerEntity.getLowestRidingEntity(); if (entity != this.playerEntity && entity.getControllingPassenger() == this.playerEntity && entity == this.lowestRiddenEnt) { WorldServer worldserver = this.playerEntity.getServerWorld(); double d0 = entity.posX; double d1 = entity.posY; double d2 = entity.posZ; double d3 = packetIn.getX(); double d4 = packetIn.getY(); double d5 = packetIn.getZ(); float f = packetIn.getYaw(); float f1 = packetIn.getPitch(); double d6 = d3 - this.lowestRiddenX; double d7 = d4 - this.lowestRiddenY; double d8 = d5 - this.lowestRiddenZ; double d9 = entity.motionX * entity.motionX + entity.motionY * entity.motionY + entity.motionZ * entity.motionZ; double d10 = d6 * d6 + d7 * d7 + d8 * d8; if (d10 - d9 > 100.0D && (!this.serverController.isSinglePlayer() || !this.serverController.getServerOwner().equals(entity.getName()))) { LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", new Object[] {entity.getName(), this.playerEntity.getName(), Double.valueOf(d6), Double.valueOf(d7), Double.valueOf(d8)}); this.netManager.sendPacket(new SPacketMoveVehicle(entity)); return; } boolean flag = worldserver.getCollisionBoxes(entity, entity.getEntityBoundingBox().contract(0.0625D)).isEmpty(); d6 = d3 - this.lowestRiddenX1; d7 = d4 - this.lowestRiddenY1 - 1.0E-6D; d8 = d5 - this.lowestRiddenZ1; entity.moveEntity(MoverType.PLAYER, d6, d7, d8); double d11 = d7; d6 = d3 - entity.posX; d7 = d4 - entity.posY; if (d7 > -0.5D || d7 < 0.5D) { d7 = 0.0D; } d8 = d5 - entity.posZ; d10 = d6 * d6 + d7 * d7 + d8 * d8; boolean flag1 = false; if (d10 > 0.0625D) { flag1 = true; LOGGER.warn("{} moved wrongly!", new Object[] {entity.getName()}); } entity.setPositionAndRotation(d3, d4, d5, f, f1); boolean flag2 = worldserver.getCollisionBoxes(entity, entity.getEntityBoundingBox().contract(0.0625D)).isEmpty(); if (flag && (flag1 || !flag2)) { entity.setPositionAndRotation(d0, d1, d2, f, f1); this.netManager.sendPacket(new SPacketMoveVehicle(entity)); return; } this.serverController.getPlayerList().serverUpdateMovingPlayer(this.playerEntity); this.playerEntity.addMovementStat(this.playerEntity.posX - d0, this.playerEntity.posY - d1, this.playerEntity.posZ - d2); this.vehicleFloating = d11 >= -0.03125D && !this.serverController.isFlightAllowed() && !worldserver.checkBlockCollision(entity.getEntityBoundingBox().expandXyz(0.0625D).addCoord(0.0D, -0.55D, 0.0D)); this.lowestRiddenX1 = entity.posX; this.lowestRiddenY1 = entity.posY; this.lowestRiddenZ1 = entity.posZ; } } }
public void processVehicleMove(CPacketVehicleMove packetIn) { PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerWorld()); if (isMoveVehiclePacketInvalid(packetIn)) { this.kickPlayerFromServer("Invalid move vehicle packet received"); } else { Entity entity = this.playerEntity.getLowestRidingEntity(); if (entity != this.playerEntity && entity.getControllingPassenger() == this.playerEntity && entity == this.lowestRiddenEnt) { WorldServer worldserver = this.playerEntity.getServerWorld(); double d0 = entity.posX; double d1 = entity.posY; double d2 = entity.posZ; double d3 = packetIn.getX(); double d4 = packetIn.getY(); double d5 = packetIn.getZ(); float f = packetIn.getYaw(); float f1 = packetIn.getPitch(); double d6 = d3 - this.lowestRiddenX; double d7 = d4 - this.lowestRiddenY; double d8 = d5 - this.lowestRiddenZ; double d9 = entity.motionX * entity.motionX + entity.motionY * entity.motionY + entity.motionZ * entity.motionZ; double d10 = d6 * d6 + d7 * d7 + d8 * d8; if (d10 - d9 > 100.0D && (!this.serverController.isSinglePlayer() || !this.serverController.getServerOwner().equals(entity.getName()))) { LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", new Object[] {entity.getName(), this.playerEntity.getName(), Double.valueOf(d6), Double.valueOf(d7), Double.valueOf(d8)}); this.netManager.sendPacket(new SPacketMoveVehicle(entity)); return; } boolean flag = worldserver.getCollisionBoxes(entity, entity.getEntityBoundingBox().contract(0.0625D)).isEmpty(); d6 = d3 - this.lowestRiddenX1; d7 = d4 - this.lowestRiddenY1 - 1.0E-6D; d8 = d5 - this.lowestRiddenZ1; entity.moveEntity(d6, d7, d8); double d11 = d7; d6 = d3 - entity.posX; d7 = d4 - entity.posY; if (d7 > -0.5D || d7 < 0.5D) { d7 = 0.0D; } d8 = d5 - entity.posZ; d10 = d6 * d6 + d7 * d7 + d8 * d8; boolean flag1 = false; if (d10 > 0.0625D) { flag1 = true; LOGGER.warn("{} moved wrongly!", new Object[] {entity.getName()}); } entity.setPositionAndRotation(d3, d4, d5, f, f1); boolean flag2 = worldserver.getCollisionBoxes(entity, entity.getEntityBoundingBox().contract(0.0625D)).isEmpty(); if (flag && (flag1 || !flag2)) { entity.setPositionAndRotation(d0, d1, d2, f, f1); this.netManager.sendPacket(new SPacketMoveVehicle(entity)); return; } this.serverController.getPlayerList().serverUpdateMountedMovingPlayer(this.playerEntity); this.playerEntity.addMovementStat(this.playerEntity.posX - d0, this.playerEntity.posY - d1, this.playerEntity.posZ - d2); this.vehicleFloating = d11 >= -0.03125D && !this.serverController.isFlightAllowed() && !worldserver.checkBlockCollision(entity.getEntityBoundingBox().expandXyz(0.0625D).addCoord(0.0D, -0.55D, 0.0D)); this.lowestRiddenX1 = entity.posX; this.lowestRiddenY1 = entity.posY; this.lowestRiddenZ1 = entity.posZ; } } }
void handleMoveVehicle(SPacketMoveVehicle packetIn);