@Override
  public void onUserExit(User user, String room, Object roomStatusHandle) {
    String id = user.getId();
    logger.debug(id + " exits " + room);

    HashMap<String, String> update = new HashMap<String, String>();
    update.put(SmartDataProvider.KEY_FIELD, id);
    update.put(SmartDataProvider.COMMAND_FIELD, SmartDataProvider.DELETE_COMMAND);

    this.listener.smartUpdate(roomStatusHandle, update, false);

    universe.removePlayerFromWorld(user, room);
  }
  @Override
  public void onUserEnter(User user, String room, Object roomStatusHandle, boolean realTimeEvent) {
    String id = user.getId();
    logger.debug(id + " enters " + room);

    HashMap<String, String> update = new HashMap<String, String>();
    update.put(SmartDataProvider.KEY_FIELD, id);
    update.put(SmartDataProvider.COMMAND_FIELD, SmartDataProvider.ADD_COMMAND);

    this.listener.smartUpdate(roomStatusHandle, update, !realTimeEvent);

    universe.addPlayerToWorld(user, room);
  }