private void handleAfterExitOrException() {
if(player != null && player.getSeatNum() > -1) {
apiHandler.exitOrException();
}
if (player != null && player.getUserName() != null) {
userName2Player.remove(player.getUserName());
log.info("{}退出系统了", player.getUserName());
}
player = null;
}
public void exitOrException() {
playerMap.remove(player.getSeatNum());
Table thisTable = tableMap.get(player.getTableNum());
thisTable.getPlayers().remove(player);
int count = thisTable.getPlayCount();
thisTable.setPlayCount(count - 1);
thisTable.setPlay(false);
thisTable.setRob(false);
thisTable.setWait(true);
//通知游戏房间里其他玩家
ExitSeatResponse response = new ExitSeatResponse(player.getUserName(), player.getSeatNum(), refreshSeatNum2UserName(thisTable));
batchSendMsg(response.getClass().getSimpleName() + JSON.toJSONString(response),
thisTable.getPlayers(), true);
//通知游戏大厅里所有玩家有人退出房间
for(HallTable hallTable : hallList) {
if(hallTable.getTableNum() == thisTable.getTableNum()) {
hallTable.setFull(false);
hallTable.setPlay(false);
hallTable.getUserNames().remove(player.getUserName());
}
}
RefreshHallResponse response1 = new RefreshHallResponse(hallList);
batchSendMsg(response1.getClass().getSimpleName() + JSON.toJSONString(response1),
userName2Player.values(), true);
userName2Player.remove(player.getUserName());
}