CLIENT_KILL.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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["MAXAGE"] = "MAXAGE";
  13. })(ClientKillFilters || (exports.ClientKillFilters = ClientKillFilters = {}));
  14. function transformArguments(filters) {
  15. const args = ['CLIENT', 'KILL'];
  16. if (Array.isArray(filters)) {
  17. for (const filter of filters) {
  18. pushFilter(args, filter);
  19. }
  20. }
  21. else {
  22. pushFilter(args, filters);
  23. }
  24. return args;
  25. }
  26. exports.transformArguments = transformArguments;
  27. function pushFilter(args, filter) {
  28. if (filter === ClientKillFilters.SKIP_ME) {
  29. args.push('SKIPME');
  30. return;
  31. }
  32. args.push(filter.filter);
  33. switch (filter.filter) {
  34. case ClientKillFilters.ADDRESS:
  35. args.push(filter.address);
  36. break;
  37. case ClientKillFilters.LOCAL_ADDRESS:
  38. args.push(filter.localAddress);
  39. break;
  40. case ClientKillFilters.ID:
  41. args.push(typeof filter.id === 'number' ?
  42. filter.id.toString() :
  43. filter.id);
  44. break;
  45. case ClientKillFilters.TYPE:
  46. args.push(filter.type);
  47. break;
  48. case ClientKillFilters.USER:
  49. args.push(filter.username);
  50. break;
  51. case ClientKillFilters.SKIP_ME:
  52. args.push(filter.skipMe ? 'yes' : 'no');
  53. break;
  54. case ClientKillFilters.MAXAGE:
  55. args.push(filter.maxAge.toString());
  56. break;
  57. }
  58. }