aboutsummaryrefslogtreecommitdiff
path: root/webAO/packets/handlers/handleARUP.ts
blob: 5a7aebb3e5630cae84d44eb53787e2622462aa83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { client } from "../../client";
import { renderAreaList } from "../../dom/renderAreaList";
import { safeTags } from "../../encoding";

/**
 * Handle the change of players in an area.
 * @param {Array} args packet arguments
 */
export const handleARUP = (args: string[]) => {
  args = args.slice(1);
  for (let i = 0; i < args.length - 1; i++) {
    if (client.areas[i]) {
      // the server sends us ARUP before we even get the area list
      switch (Number(args[0])) {
        case 0: // playercount
          client.areas[i].players = Number(args[i + 1]);
          break;
        case 1: // status
          client.areas[i].status = safeTags(args[i + 1]);
          break;
        case 2:
          client.areas[i].cm = safeTags(args[i + 1]);
          break;
        case 3:
          client.areas[i].locked = safeTags(args[i + 1]);
          break;
      }
    }
  }
  renderAreaList();
};