public static ChunkCoordinates verifyRespawnCoordinates( World world, ChunkCoordinates chunkcoordinates) { IChunkProvider ichunkprovider = world.getIChunkProvider(); ichunkprovider.loadChunk(chunkcoordinates.posX - 3 >> 4, chunkcoordinates.posZ - 3 >> 4); ichunkprovider.loadChunk(chunkcoordinates.posX + 3 >> 4, chunkcoordinates.posZ - 3 >> 4); ichunkprovider.loadChunk(chunkcoordinates.posX - 3 >> 4, chunkcoordinates.posZ + 3 >> 4); ichunkprovider.loadChunk(chunkcoordinates.posX + 3 >> 4, chunkcoordinates.posZ + 3 >> 4); if (world.getBlockId(chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ) != Block.bed.blockID) { return null; } else { ChunkCoordinates chunkcoordinates1 = BlockBed.getNearestEmptyChunkCoordinates( world, chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ, 0); return chunkcoordinates1; } }
public void wakeUpPlayer(boolean flag, boolean flag1, boolean flag2) { setSize(0.6F, 1.8F); resetHeight(); ChunkCoordinates chunkcoordinates = bedChunkCoordinates; ChunkCoordinates chunkcoordinates1 = bedChunkCoordinates; if (chunkcoordinates != null && worldObj.getBlockId(chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ) == Block.bed.blockID) { BlockBed.setBedOccupied( worldObj, chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ, false); ChunkCoordinates chunkcoordinates2 = BlockBed.getNearestEmptyChunkCoordinates( worldObj, chunkcoordinates.posX, chunkcoordinates.posY, chunkcoordinates.posZ, 0); if (chunkcoordinates2 == null) { chunkcoordinates2 = new ChunkCoordinates( chunkcoordinates.posX, chunkcoordinates.posY + 1, chunkcoordinates.posZ); } setPosition( (float) chunkcoordinates2.posX + 0.5F, (float) chunkcoordinates2.posY + yOffset + 0.1F, (float) chunkcoordinates2.posZ + 0.5F); } sleeping = false; if (!worldObj.multiplayerWorld && flag1) { worldObj.updateAllPlayersSleepingFlag(); } if (flag) { sleepTimer = 0; } else { sleepTimer = 100; } if (flag2) { setPlayerSpawnCoordinate(bedChunkCoordinates); } }