CLIENT_KILL.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.transformArguments = exports.ClientKillFilters = void 0;
  4. var ClientKillFilters;
  5. (function (ClientKillFilters) {
  6. ClientKillFilters["ADDRESS"] = "ADDR";
  7. ClientKillFilters["LOCAL_ADDRESS"] = "LADDR";
  8. ClientKillFilters["ID"] = "ID";
  9. ClientKillFilters["TYPE"] = "TYPE";
  10. ClientKillFilters["USER"] = "USER";
  11. ClientKillFilters["SKIP_ME"] = "SKIPME";
  12. })(ClientKillFilters || (exports.ClientKillFilters = ClientKillFilters = {}));
  13. function transformArguments(filters) {
  14. const args = ['CLIENT', 'KILL'];
  15. if (Array.isArray(filters)) {
  16. for (const filter of filters) {
  17. pushFilter(args, filter);
  18. }
  19. }
  20. else {
  21. pushFilter(args, filters);
  22. }
  23. return args;
  24. }
  25. exports.transformArguments = transformArguments;
  26. function pushFilter(args, filter) {
  27. if (filter === ClientKillFilters.SKIP_ME) {
  28. args.push('SKIPME');
  29. return;
  30. }
  31. args.push(filter.filter);
  32. switch (filter.filter) {
  33. case ClientKillFilters.ADDRESS:
  34. args.push(filter.address);
  35. break;
  36. case ClientKillFilters.LOCAL_ADDRESS:
  37. args.push(filter.localAddress);
  38. break;
  39. case ClientKillFilters.ID:
  40. args.push(typeof filter.id === 'number' ?
  41. filter.id.toString() :
  42. filter.id);
  43. break;
  44. case ClientKillFilters.TYPE:
  45. args.push(filter.type);
  46. break;
  47. case ClientKillFilters.USER:
  48. args.push(filter.username);
  49. break;
  50. case ClientKillFilters.SKIP_ME:
  51. args.push(filter.skipMe ? 'yes' : 'no');
  52. break;
  53. }
  54. }