private void updateEvents() {
    ArrayList<Object> del = new ArrayList<Object>();

    synchronized (WorldController.events) {
      for (Object event : WorldController.events) {
        // Add Player
        if (event instanceof AddCharacter) {
          AddCharacter msg = (AddCharacter) event;
          CharacterObject newPlayer;

          if (msg.character.type == 1) {
            newPlayer = new TouriCharacterObject(msg.character.x, msg.character.y);
          } else {
            newPlayer = new KannibaleCharacterObject(msg.character.x, msg.character.y);
          }

          newPlayer.setNick(msg.character.nick);
          objs.addObject(msg.character.id, newPlayer);

          // System.out.println("New Character #"+msg.character.id);

          del.add(event);
          continue;
        }
        if (event instanceof AssignCharacter) {
          AssignCharacter msg = (AssignCharacter) event;

          CharacterObject playerObj;

          if (msg.type == 1) {
            Vector2 vec = getRandomPosition();
            playerObj = new TouriCharacterObject(vec.x, vec.y);
          } else {
            Vector2 vec = getRandomPosition();
            playerObj = new KannibaleCharacterObject(vec.x, vec.y);
          }

          playerObj.setNick(game.nickname);
          objs.addObject(msg.id, playerObj);
          controller.setPlayerObj(playerObj);

          // System.out.println("Set owen Character");

          del.add(event);
          continue;
        }
        // Update Player
        if (event instanceof UpdateCharacter) {
          UpdateCharacter msg = (UpdateCharacter) event;
          CharacterObject player = (CharacterObject) objs.getObject(msg.id);
          if (player != null) {
            player.currentPosition = new Vector2(msg.x, msg.y);
            player.direction = Direction.values()[msg.direction];
            player.idle = msg.idle;
          }
          del.add(event);
          continue;
        }
        // Remove Player
        if (event instanceof RemoveCharacter) {
          RemoveCharacter msg = (RemoveCharacter) event;
          CharacterObject player = (CharacterObject) objs.getObject(msg.id);
          if (player != null) {
            objs.removeObject(player);
            // System.out.println("Remove Player #"+msg.id);
          }
          del.add(event);
          continue;
        }
        // HitCharacter
        if (event instanceof HitCharacter) {
          HitCharacter msg = (HitCharacter) event;
          CharacterObject player = (CharacterObject) objs.getObject(msg.id);
          if (player != null) {
            // System.out.println("Player HIT "+msg.id);
          }
          del.add(event);
          continue;
        }
        // Dead Character
        if (event instanceof DeadCharacter) {
          DeadCharacter msg = (DeadCharacter) event;
          CharacterObject player = (CharacterObject) objs.getObject(msg.id);
          if (player != null) {
            player.isDead = true;
          }
          del.add(event);
          continue;
        }
        // Checkpoint Checked
        if (event instanceof CheckpointCheck) {
          CheckpointCheck msg = (CheckpointCheck) event;

          for (GameObject obj : objs.getObjects()) {
            if (obj instanceof CheckpointGameObject) {
              CheckpointGameObject cObj = (CheckpointGameObject) obj;
              if (cObj.checkpointID == obj.id) {
                cObj.checked = true;
              }
            }
          }
        }
      }
    }

    for (Object event : del) {
      WorldController.events.remove(event);
    }
  }