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);
   }
 }