public void func_72375_a(EntityPlayerMP playerIn, WorldServer worldIn) { WorldServer var3 = playerIn.getServerForPlayer(); if (worldIn != null) { worldIn.getPlayerManager().removePlayer(playerIn); } var3.getPlayerManager().addPlayer(playerIn); var3.theChunkProviderServer.loadChunk((int) playerIn.posX >> 4, (int) playerIn.posZ >> 4); }
public void func_72375_a(EntityPlayerMP par1EntityPlayerMP, WorldServer par2WorldServer) { WorldServer var3 = par1EntityPlayerMP.getServerForPlayer(); if (par2WorldServer != null) { par2WorldServer.getPlayerManager().removePlayer(par1EntityPlayerMP); } var3.getPlayerManager().addPlayer(par1EntityPlayerMP); var3.theChunkProviderServer.loadChunk( (int) par1EntityPlayerMP.posX >> 4, (int) par1EntityPlayerMP.posZ >> 4); }
/** * Called when a player disconnects from the game. Writes player data to disk and removes them * from the world. */ public void playerLoggedOut(EntityPlayerMP par1EntityPlayerMP) { this.writePlayerData(par1EntityPlayerMP); WorldServer var2 = par1EntityPlayerMP.getServerForPlayer(); var2.setEntityDead(par1EntityPlayerMP); var2.getPlayerManager().removePlayer(par1EntityPlayerMP); this.playerEntityList.remove(par1EntityPlayerMP); this.sendPacketToAllPlayers(new Packet201PlayerInfo(par1EntityPlayerMP.username, false, 9999)); }
public void setViewDistance(int distance) { this.viewDistance = distance; if (this.mcServer.worldServers != null) { WorldServer[] var2 = this.mcServer.worldServers; int var3 = var2.length; for (int var4 = 0; var4 < var3; ++var4) { WorldServer var5 = var2[var4]; if (var5 != null) { var5.getPlayerManager().func_152622_a(distance); } } } }
/** * Called when a player disconnects from the game. Writes player data to disk and removes them * from the world. */ public void playerLoggedOut(EntityPlayerMP playerIn) { playerIn.triggerAchievement(StatList.leaveGameStat); this.writePlayerData(playerIn); WorldServer var2 = playerIn.getServerForPlayer(); if (playerIn.ridingEntity != null) { var2.removePlayerEntityDangerously(playerIn.ridingEntity); logger.debug("removing player mount"); } var2.removeEntity(playerIn); var2.getPlayerManager().removePlayer(playerIn); this.playerEntityList.remove(playerIn); this.field_177454_f.remove(playerIn.getUniqueID()); this.playerStatFiles.remove(playerIn.getUniqueID()); this.sendPacketToAllPlayers( new S38PacketPlayerListItem( S38PacketPlayerListItem.Action.REMOVE_PLAYER, new EntityPlayerMP[] {playerIn})); }
@Override public void playerLoggedOut(EntityPlayerMP par1EntityPlayerMP) { if (!MinecraftForge.EVENT_BUS.post(new PlayerLogoutEvent(par1EntityPlayerMP))) { GameRegistry.onPlayerLogout(par1EntityPlayerMP); super.writePlayerData(par1EntityPlayerMP); WorldServer worldserver = par1EntityPlayerMP.getServerForPlayer(); if (par1EntityPlayerMP.ridingEntity != null) { worldserver.removeEntity(par1EntityPlayerMP.ridingEntity); System.out.println("removing player mount"); } worldserver.removeEntity(par1EntityPlayerMP); worldserver.getPlayerManager().removePlayer(par1EntityPlayerMP); super.playerEntityList.remove(par1EntityPlayerMP); super.sendPacketToAllPlayers( new Packet201PlayerInfo(par1EntityPlayerMP.username, false, 9999)); } }
/** Called on respawn */ public EntityPlayerMP recreatePlayerEntity( EntityPlayerMP playerIn, int dimension, boolean conqueredEnd) { playerIn.getServerForPlayer().getEntityTracker().removePlayerFromTrackers(playerIn); playerIn.getServerForPlayer().getEntityTracker().untrackEntity(playerIn); playerIn.getServerForPlayer().getPlayerManager().removePlayer(playerIn); this.playerEntityList.remove(playerIn); this.mcServer .worldServerForDimension(playerIn.dimension) .removePlayerEntityDangerously(playerIn); BlockPos var4 = playerIn.func_180470_cg(); boolean var5 = playerIn.isSpawnForced(); playerIn.dimension = dimension; Object var6; if (this.mcServer.isDemo()) { var6 = new DemoWorldManager(this.mcServer.worldServerForDimension(playerIn.dimension)); } else { var6 = new ItemInWorldManager(this.mcServer.worldServerForDimension(playerIn.dimension)); } EntityPlayerMP var7 = new EntityPlayerMP( this.mcServer, this.mcServer.worldServerForDimension(playerIn.dimension), playerIn.getGameProfile(), (ItemInWorldManager) var6); var7.playerNetServerHandler = playerIn.playerNetServerHandler; var7.clonePlayer(playerIn, conqueredEnd); var7.setEntityId(playerIn.getEntityId()); var7.func_174817_o(playerIn); WorldServer var8 = this.mcServer.worldServerForDimension(playerIn.dimension); this.func_72381_a(var7, playerIn, var8); BlockPos var9; if (var4 != null) { var9 = EntityPlayer.func_180467_a( this.mcServer.worldServerForDimension(playerIn.dimension), var4, var5); if (var9 != null) { var7.setLocationAndAngles( (double) ((float) var9.getX() + 0.5F), (double) ((float) var9.getY() + 0.1F), (double) ((float) var9.getZ() + 0.5F), 0.0F, 0.0F); var7.func_180473_a(var4, var5); } else { var7.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(0, 0.0F)); } } var8.theChunkProviderServer.loadChunk((int) var7.posX >> 4, (int) var7.posZ >> 4); while (!var8.getCollidingBoundingBoxes(var7, var7.getEntityBoundingBox()).isEmpty() && var7.posY < 256.0D) { var7.setPosition(var7.posX, var7.posY + 1.0D, var7.posZ); } var7.playerNetServerHandler.sendPacket( new S07PacketRespawn( var7.dimension, var7.worldObj.getDifficulty(), var7.worldObj.getWorldInfo().getTerrainType(), var7.theItemInWorldManager.getGameType())); var9 = var8.getSpawnPoint(); var7.playerNetServerHandler.setPlayerLocation( var7.posX, var7.posY, var7.posZ, var7.rotationYaw, var7.rotationPitch); var7.playerNetServerHandler.sendPacket(new S05PacketSpawnPosition(var9)); var7.playerNetServerHandler.sendPacket( new S1FPacketSetExperience(var7.experience, var7.experienceTotal, var7.experienceLevel)); this.updateTimeAndWeatherForPlayer(var7, var8); var8.getPlayerManager().addPlayer(var7); var8.spawnEntityInWorld(var7); this.playerEntityList.add(var7); this.field_177454_f.put(var7.getUniqueID(), var7); var7.addSelfToInternalCraftingInventory(); var7.setHealth(var7.getHealth()); return var7; }
/** * creates and returns a respawned player based on the provided PlayerEntity. Args are the * PlayerEntityMP to respawn, an INT for the dimension to respawn into (usually 0), and a boolean * value that is true if the player beat the game rather than dying */ public EntityPlayerMP respawnPlayer(EntityPlayerMP par1EntityPlayerMP, int par2, boolean par3) { par1EntityPlayerMP .getServerForPlayer() .getEntityTracker() .removeAllTrackingPlayers(par1EntityPlayerMP); par1EntityPlayerMP .getServerForPlayer() .getEntityTracker() .removeEntityFromAllTrackingPlayers(par1EntityPlayerMP); par1EntityPlayerMP.getServerForPlayer().getPlayerManager().removePlayer(par1EntityPlayerMP); this.playerEntityList.remove(par1EntityPlayerMP); this.mcServer .worldServerForDimension(par1EntityPlayerMP.dimension) .removeEntity(par1EntityPlayerMP); ChunkCoordinates var4 = par1EntityPlayerMP.getBedLocation(); boolean var5 = par1EntityPlayerMP.isSpawnForced(); par1EntityPlayerMP.dimension = par2; Object var6; if (this.mcServer.isDemo()) { var6 = new DemoWorldManager(this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension)); } else { var6 = new ItemInWorldManager( this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension)); } EntityPlayerMP var7 = new EntityPlayerMP( this.mcServer, this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension), par1EntityPlayerMP.username, (ItemInWorldManager) var6); var7.playerNetServerHandler = par1EntityPlayerMP.playerNetServerHandler; var7.clonePlayer(par1EntityPlayerMP, par3); var7.entityId = par1EntityPlayerMP.entityId; WorldServer var8 = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension); this.func_72381_a(var7, par1EntityPlayerMP, var8); ChunkCoordinates var9; if (var4 != null) { var9 = EntityPlayer.verifyRespawnCoordinates( this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension), var4, var5); if (var9 != null) { var7.setLocationAndAngles( (double) ((float) var9.posX + 0.5F), (double) ((float) var9.posY + 0.1F), (double) ((float) var9.posZ + 0.5F), 0.0F, 0.0F); var7.setSpawnChunk(var4, var5); } else { var7.playerNetServerHandler.sendPacketToPlayer(new Packet70GameEvent(0, 0)); } } var8.theChunkProviderServer.loadChunk((int) var7.posX >> 4, (int) var7.posZ >> 4); while (!var8.getCollidingBoundingBoxes(var7, var7.boundingBox).isEmpty()) { var7.setPosition(var7.posX, var7.posY + 1.0D, var7.posZ); } var7.playerNetServerHandler.sendPacketToPlayer( new Packet9Respawn( var7.dimension, (byte) var7.worldObj.difficultySetting, var7.worldObj.getWorldInfo().getTerrainType(), var7.worldObj.getHeight(), var7.theItemInWorldManager.getGameType())); var9 = var8.getSpawnPoint(); var7.playerNetServerHandler.setPlayerLocation( var7.posX, var7.posY, var7.posZ, var7.rotationYaw, var7.rotationPitch); var7.playerNetServerHandler.sendPacketToPlayer( new Packet6SpawnPosition(var9.posX, var9.posY, var9.posZ)); var7.playerNetServerHandler.sendPacketToPlayer( new Packet43Experience(var7.experience, var7.experienceTotal, var7.experienceLevel)); this.updateTimeAndWeatherForPlayer(var7, var8); var8.getPlayerManager().addPlayer(var7); var8.spawnEntityInWorld(var7); this.playerEntityList.add(var7); var7.addSelfToInternalCraftingInventory(); return var7; }