Ejemplo n.º 1
0
  public PlayerDescriptor(Player player, int[] tickets, boolean force) {
    if (player.isActive()) {
      /*
       * This active check is required for the RemovePlayerDescriptor. The player id would be
       * -1 in this case, which causes the following code to crash. Skipping this code doesn't
       * matter as no update blocks can be sent when removing a player.
       */
      int id = player.getId() - 1;
      int ticket = player.getAppearanceTicket();
      if (tickets[id] != ticket || force) {
        tickets[id] = ticket;
        addBlock(new AppearancePlayerBlock(player));
      }
    }

    if (player.isChatUpdated()) addBlock(new ChatPlayerBlock(player));

    if (player.isHitOneUpdated()) addBlock(new HitOnePlayerBlock(player));

    if (player.isHitTwoUpdated()) addBlock(new HitTwoPlayerBlock(player));

    if (player.isChatForced()) addBlock(new ForceChatPlayerBlock(player));

    if (player.isAnimationUpdated()) addBlock(new AnimationPlayerBlock(player));

    if (player.isSpotAnimationUpdated()) addBlock(new SpotAnimationPlayerBlock(player));

    if (player.isTurnToPositionUpdated()) addBlock(new TurnToPositionPlayerBlock(player));

    if (player.isTurnToTargetUpdated()) addBlock(new TurnToMobPlayerBlock(player));

    // addBlock(new ForceMovementPlayerBlock(player));

  }