public void handleSpectate(CPacketSpectate packetIn) { PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerWorld()); if (this.playerEntity.isSpectator()) { Entity entity = null; for (WorldServer worldserver : this.serverController.worldServers) { if (worldserver != null) { entity = packetIn.getEntity(worldserver); if (entity != null) { break; } } } if (entity != null) { this.playerEntity.setSpectatingEntity(this.playerEntity); this.playerEntity.dismountRidingEntity(); if (entity.world == this.playerEntity.world) { this.playerEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ); } else { WorldServer worldserver1 = this.playerEntity.getServerWorld(); WorldServer worldserver2 = (WorldServer)entity.world; this.playerEntity.dimension = entity.dimension; this.sendPacket(new SPacketRespawn(this.playerEntity.dimension, worldserver1.getDifficulty(), worldserver1.getWorldInfo().getTerrainType(), this.playerEntity.interactionManager.getGameType())); this.serverController.getPlayerList().updatePermissionLevel(this.playerEntity); worldserver1.removeEntityDangerously(this.playerEntity); this.playerEntity.isDead = false; this.playerEntity.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); if (this.playerEntity.isEntityAlive()) { worldserver1.updateEntityWithOptionalForce(this.playerEntity, false); worldserver2.spawnEntityInWorld(this.playerEntity); worldserver2.updateEntityWithOptionalForce(this.playerEntity, false); } this.playerEntity.setWorld(worldserver2); this.serverController.getPlayerList().preparePlayer(this.playerEntity, worldserver1); this.playerEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ); this.playerEntity.interactionManager.setWorld(worldserver2); this.serverController.getPlayerList().updateTimeAndWeatherForPlayer(this.playerEntity, worldserver2); this.serverController.getPlayerList().syncPlayerInventory(this.playerEntity); } } } }
public void selectItem(SpectatorMenu menu) { Minecraft.getMinecraft().getConnection().sendPacket(new CPacketSpectate(this.profile.getId())); }
public void handleSpectate(CPacketSpectate packetIn) { PacketThreadUtil.checkThreadAndEnqueue(packetIn, this, this.playerEntity.getServerWorld()); if (this.playerEntity.isSpectator()) { Entity entity = null; for (WorldServer worldserver : this.serverController.worldServers) { if (worldserver != null) { entity = packetIn.getEntity(worldserver); if (entity != null) { break; } } } if (entity != null) { this.playerEntity.setSpectatingEntity(this.playerEntity); this.playerEntity.dismountRidingEntity(); if (entity.worldObj == this.playerEntity.worldObj) { this.playerEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ); } else { WorldServer worldserver1 = this.playerEntity.getServerWorld(); WorldServer worldserver2 = (WorldServer)entity.worldObj; this.playerEntity.dimension = entity.dimension; this.sendPacket(new SPacketRespawn(this.playerEntity.dimension, worldserver1.getDifficulty(), worldserver1.getWorldInfo().getTerrainType(), this.playerEntity.interactionManager.getGameType())); this.serverController.getPlayerList().updatePermissionLevel(this.playerEntity); worldserver1.removeEntityDangerously(this.playerEntity); this.playerEntity.isDead = false; this.playerEntity.setLocationAndAngles(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); if (this.playerEntity.isEntityAlive()) { worldserver1.updateEntityWithOptionalForce(this.playerEntity, false); worldserver2.spawnEntityInWorld(this.playerEntity); worldserver2.updateEntityWithOptionalForce(this.playerEntity, false); } this.playerEntity.setWorld(worldserver2); this.serverController.getPlayerList().preparePlayer(this.playerEntity, worldserver1); this.playerEntity.setPositionAndUpdate(entity.posX, entity.posY, entity.posZ); this.playerEntity.interactionManager.setWorld(worldserver2); this.serverController.getPlayerList().updateTimeAndWeatherForPlayer(this.playerEntity, worldserver2); this.serverController.getPlayerList().syncPlayerInventory(this.playerEntity); } } } }
@Override public void handleSpectate(CPacketSpectate packetIn) { }
@Override public void handleSpectate(@Nonnull CPacketSpectate packetIn) { }
void handleSpectate(CPacketSpectate packetIn);