public void setPlayer(Player p) {
    if (p != null) {
      player = p;
      player.setSession(this);

      if (currentHall != null) {
        player.setCurrentHall(currentHall);
      }
    }
  }
  public void setCurrentHall(IHall currentHall) {
    this.currentHall = currentHall;

    if (player != null) {
      player.setCurrentHall(currentHall);
    }
  }
 public void dispose() {
   if (!isDispose) {
     isDispose = true;
   }
   if (player != null) {
     if (player.getCurrentHall() != null) {
       player.getCurrentHall().kickPlayer(this);
     }
     player = null;
   }
   if (readBuffer != null) {
     BufferPool.getInstance().releaseBuffer(readBuffer);
     readBuffer = null;
   }
   if (channel != null) {
     try {
       channel.close();
     } catch (IOException e) {
       e.printStackTrace();
     } finally {
       channel = null;
     }
   }
 }