kythia-core 0.12.5-beta → 0.12.7-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/dist/Kythia.d.ts +7 -6
  2. package/dist/Kythia.d.ts.map +1 -1
  3. package/dist/Kythia.js +1 -503
  4. package/dist/Kythia.js.map +1 -1
  5. package/dist/KythiaClient.d.ts.map +1 -1
  6. package/dist/KythiaClient.js +1 -76
  7. package/dist/KythiaClient.js.map +1 -1
  8. package/dist/cli/Command.js +1 -16
  9. package/dist/cli/commands/AboutCommand.d.ts +7 -0
  10. package/dist/cli/commands/AboutCommand.d.ts.map +1 -0
  11. package/dist/cli/commands/AboutCommand.js +1 -0
  12. package/dist/cli/commands/AboutCommand.js.map +1 -0
  13. package/dist/cli/commands/CacheClearCommand.js +1 -97
  14. package/dist/cli/commands/DIGenerateCommand.js +1 -168
  15. package/dist/cli/commands/LangCheckCommand.js +1 -478
  16. package/dist/cli/commands/LangCheckCommand.js.map +1 -1
  17. package/dist/cli/commands/LangSyncCommand.js +1 -253
  18. package/dist/cli/commands/LangTranslateCommand.js +1 -224
  19. package/dist/cli/commands/MakeMigrationCommand.js +1 -55
  20. package/dist/cli/commands/MakeModelCommand.js +1 -56
  21. package/dist/cli/commands/MigrateCommand.js +1 -190
  22. package/dist/cli/commands/NamespaceCommand.js +1 -92
  23. package/dist/cli/commands/StructureCommand.js +1 -51
  24. package/dist/cli/commands/UpversionCommand.js +1 -68
  25. package/dist/cli/index.js +1 -43
  26. package/dist/cli/utils/db.js +1 -93
  27. package/dist/database/KythiaMigrator.js +1 -94
  28. package/dist/database/KythiaModel.d.ts +4 -3
  29. package/dist/database/KythiaModel.d.ts.map +1 -1
  30. package/dist/database/KythiaModel.js +1 -1128
  31. package/dist/database/KythiaModel.js.map +1 -1
  32. package/dist/database/KythiaSequelize.js +1 -99
  33. package/dist/database/KythiaStorage.js +1 -80
  34. package/dist/database/ModelLoader.js +1 -54
  35. package/dist/index.js +1 -36
  36. package/dist/lang/lang/en.json +85 -0
  37. package/dist/managers/AddonManager.d.ts +2 -2
  38. package/dist/managers/AddonManager.d.ts.map +1 -1
  39. package/dist/managers/AddonManager.js +1 -1097
  40. package/dist/managers/AddonManager.js.map +1 -1
  41. package/dist/managers/EventManager.js +1 -106
  42. package/dist/managers/InteractionManager.d.ts +8 -6
  43. package/dist/managers/InteractionManager.d.ts.map +1 -1
  44. package/dist/managers/InteractionManager.js +1 -470
  45. package/dist/managers/InteractionManager.js.map +1 -1
  46. package/dist/managers/MiddlewareManager.d.ts +4 -3
  47. package/dist/managers/MiddlewareManager.d.ts.map +1 -1
  48. package/dist/managers/MiddlewareManager.js +1 -106
  49. package/dist/managers/MiddlewareManager.js.map +1 -1
  50. package/dist/managers/ShutdownManager.js +1 -179
  51. package/dist/managers/TelemetryManager.d.ts +7 -0
  52. package/dist/managers/TelemetryManager.d.ts.map +1 -1
  53. package/dist/managers/TelemetryManager.js +1 -201
  54. package/dist/managers/TelemetryManager.js.map +1 -1
  55. package/dist/managers/TranslatorManager.d.ts.map +1 -1
  56. package/dist/managers/TranslatorManager.js +1 -145
  57. package/dist/managers/TranslatorManager.js.map +1 -1
  58. package/dist/middlewares/botPermissions.js +1 -28
  59. package/dist/middlewares/cooldown.js +1 -42
  60. package/dist/middlewares/isInMainGuild.js +1 -52
  61. package/dist/middlewares/ownerOnly.js +1 -24
  62. package/dist/middlewares/userPermissions.js +1 -28
  63. package/dist/structures/BaseCommand.js +1 -42
  64. package/dist/types/AddonManager.d.ts +22 -9
  65. package/dist/types/AddonManager.d.ts.map +1 -1
  66. package/dist/types/AddonManager.js +1 -3
  67. package/dist/types/DiscordHelpers.js +1 -3
  68. package/dist/types/EventManager.d.ts +1 -1
  69. package/dist/types/EventManager.d.ts.map +1 -1
  70. package/dist/types/EventManager.js +1 -3
  71. package/dist/types/InteractionManager.d.ts +8 -6
  72. package/dist/types/InteractionManager.d.ts.map +1 -1
  73. package/dist/types/InteractionManager.js +1 -3
  74. package/dist/types/KythiaClient.d.ts +2 -1
  75. package/dist/types/KythiaClient.d.ts.map +1 -1
  76. package/dist/types/KythiaClient.js +1 -3
  77. package/dist/types/KythiaConfig.d.ts +1 -1
  78. package/dist/types/KythiaConfig.d.ts.map +1 -1
  79. package/dist/types/KythiaConfig.js +1 -3
  80. package/dist/types/KythiaContainer.d.ts +3 -2
  81. package/dist/types/KythiaContainer.d.ts.map +1 -1
  82. package/dist/types/KythiaContainer.js +1 -3
  83. package/dist/types/KythiaLogger.d.ts +1 -1
  84. package/dist/types/KythiaLogger.d.ts.map +1 -1
  85. package/dist/types/KythiaLogger.js +1 -3
  86. package/dist/types/KythiaMigrator.d.ts +2 -1
  87. package/dist/types/KythiaMigrator.d.ts.map +1 -1
  88. package/dist/types/KythiaMigrator.js +1 -3
  89. package/dist/types/KythiaModel.d.ts +6 -5
  90. package/dist/types/KythiaModel.d.ts.map +1 -1
  91. package/dist/types/KythiaModel.js +1 -3
  92. package/dist/types/KythiaOptions.d.ts +9 -6
  93. package/dist/types/KythiaOptions.d.ts.map +1 -1
  94. package/dist/types/KythiaOptions.js +1 -3
  95. package/dist/types/KythiaSequelize.d.ts +2 -1
  96. package/dist/types/KythiaSequelize.d.ts.map +1 -1
  97. package/dist/types/KythiaSequelize.js +1 -3
  98. package/dist/types/KythiaStorage.js +1 -3
  99. package/dist/types/MiddlewareManager.js +1 -3
  100. package/dist/types/ModelLoader.d.ts +2 -1
  101. package/dist/types/ModelLoader.d.ts.map +1 -1
  102. package/dist/types/ModelLoader.js +1 -3
  103. package/dist/types/ShutdownManager.js +1 -3
  104. package/dist/types/TranslatorManager.js +1 -3
  105. package/dist/types/error.d.ts +7 -0
  106. package/dist/types/error.d.ts.map +1 -0
  107. package/dist/types/error.js +1 -0
  108. package/dist/types/error.js.map +1 -0
  109. package/dist/types/index.js +1 -29
  110. package/dist/utils/InteractionFactory.d.ts.map +1 -1
  111. package/dist/utils/InteractionFactory.js +1 -334
  112. package/dist/utils/InteractionFactory.js.map +1 -1
  113. package/dist/utils/color.js +1 -156
  114. package/dist/utils/discord.js +1 -19
  115. package/dist/utils/formatter.js +1 -89
  116. package/dist/utils/index.js +1 -56
  117. package/dist/utils/logger.d.ts.map +1 -1
  118. package/dist/utils/logger.js +1 -202
  119. package/dist/utils/logger.js.map +1 -1
  120. package/package.json +5 -2
package/dist/Kythia.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { KythiaConfig as IKythiaConfig, KythiaContainer as IKythiaContainer, KythiaClient as IKythiaClient, IAddonManager, KythiaButtonHandler, KythiaModalHandler, KythiaSelectMenuHandler, IInteractionManager, IShutdownManager, KythiaLogger, IEventManager, ITranslatorManager } from './types';
2
+ import type { KythiaModelsCollection, KythiaHelpersCollection } from './types/KythiaContainer';
2
3
  import { REST } from 'discord.js';
3
4
  import type { Sequelize } from 'sequelize';
4
5
  import type Redis from 'ioredis';
@@ -8,9 +9,9 @@ declare class Kythia {
8
9
  appRoot: string;
9
10
  client: IKythiaClient;
10
11
  rest: REST;
11
- models: Record<string, any>;
12
- helpers: Record<string, any>;
13
- utils: Record<string, any>;
12
+ models: KythiaModelsCollection;
13
+ helpers: KythiaHelpersCollection;
14
+ utils: Record<string, unknown>;
14
15
  redis?: Redis;
15
16
  sequelize?: Sequelize;
16
17
  logger: KythiaLogger;
@@ -28,9 +29,9 @@ declare class Kythia {
28
29
  logger?: KythiaLogger;
29
30
  redis?: Redis;
30
31
  sequelize?: Sequelize;
31
- models?: Record<string, any>;
32
- helpers?: Record<string, any>;
33
- utils?: Record<string, any>;
32
+ models?: KythiaModelsCollection;
33
+ helpers?: Partial<KythiaHelpersCollection>;
34
+ utils?: Record<string, unknown>;
34
35
  appRoot?: string;
35
36
  });
36
37
  private _checkRequiredConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"Kythia.d.ts","sourceRoot":"","sources":["../src/Kythia.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EACX,YAAY,IAAI,aAAa,EAC7B,eAAe,IAAI,gBAAgB,EACnC,YAAY,IAAI,aAAa,EAC7B,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAmC,MAAM,YAAY,CAAC;AAyBnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,cAAM,MAAM;IACJ,YAAY,EAAE,aAAa,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,EAAE,QAAQ,EAAE,CAAC;IACzB,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAE7B,YAAY,EAAG,aAAa,CAAC;IAC7B,kBAAkB,EAAG,mBAAmB,CAAC;IACzC,YAAY,EAAG,aAAa,CAAC;IAC7B,eAAe,EAAG,gBAAgB,CAAC;IACnC,UAAU,EAAG,kBAAkB,CAAC;IAChC,gBAAgB,EAAG,gBAAgB,CAAC;gBAO/B,EACX,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,EACT,MAAW,EACX,OAAY,EACZ,KAAU,EACV,OAAO,GACP,EAAE;QACF,MAAM,EAAE,aAAa,CAAC;QACtB,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB;IAuED,OAAO,CAAC,oBAAoB;IA+ErB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB;IAYpE,oBAAoB,CAC1B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,kBAAkB;IAYrB,yBAAyB,CAC/B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,uBAAuB;YAYnB,eAAe;IAiE7B,OAAO,CAAC,iBAAiB;IAgClB,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAQjC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ;IAe/B,KAAK;CAuTlB;AAED,SAAS,MAAM,CAAC"}
1
+ {"version":3,"file":"Kythia.d.ts","sourceRoot":"","sources":["../src/Kythia.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EACX,YAAY,IAAI,aAAa,EAC7B,eAAe,IAAI,gBAAgB,EACnC,YAAY,IAAI,aAAa,EAC7B,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAElB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EACX,sBAAsB,EACtB,uBAAuB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACN,IAAI,EAMJ,MAAM,YAAY,CAAC;AAyBpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,cAAM,MAAM;IACJ,YAAY,EAAE,aAAa,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,uBAAuB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,EAAE,QAAQ,EAAE,CAAC;IACzB,gBAAgB,EAAE,QAAQ,EAAE,CAAC;IAE7B,YAAY,EAAG,aAAa,CAAC;IAC7B,kBAAkB,EAAG,mBAAmB,CAAC;IACzC,YAAY,EAAG,aAAa,CAAC;IAC7B,eAAe,EAAG,gBAAgB,CAAC;IACnC,UAAU,EAAG,kBAAkB,CAAC;IAChC,gBAAgB,EAAG,gBAAgB,CAAC;gBAO/B,EACX,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,EACT,MAAW,EACX,OAAY,EACZ,KAAU,EACV,OAAO,GACP,EAAE;QACF,MAAM,EAAE,aAAa,CAAC;QACtB,MAAM,CAAC,EAAE,YAAY,CAAC;QACtB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,MAAM,CAAC,EAAE,sBAAsB,CAAC;QAChC,OAAO,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC3C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB;IA+ED,OAAO,CAAC,oBAAoB;IAiFrB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB;IAYpE,oBAAoB,CAC1B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,kBAAkB;IAYrB,yBAAyB,CAC/B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,uBAAuB;YAYnB,eAAe;IAuG7B,OAAO,CAAC,iBAAiB;IAkClB,cAAc,CAAC,QAAQ,EAAE,QAAQ;IAQjC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ;IAsC/B,KAAK;CA4TlB;AAED,SAAS,MAAM,CAAC"}
package/dist/Kythia.js CHANGED
@@ -1,503 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- const discord_js_1 = require("discord.js");
39
- const Sentry = __importStar(require("@sentry/node"));
40
- const node_path_1 = __importDefault(require("node:path"));
41
- const figlet_1 = __importDefault(require("figlet"));
42
- const cli_color_1 = __importDefault(require("cli-color"));
43
- const AddonManager_1 = __importDefault(require("./managers/AddonManager"));
44
- const InteractionManager_1 = require("./managers/InteractionManager");
45
- const ShutdownManager_1 = require("./managers/ShutdownManager");
46
- const EventManager_1 = __importDefault(require("./managers/EventManager"));
47
- const MiddlewareManager_1 = __importDefault(require("./managers/MiddlewareManager"));
48
- const TranslatorManager_1 = __importDefault(require("./managers/TranslatorManager"));
49
- const KythiaMigrator_1 = __importDefault(require("./database/KythiaMigrator"));
50
- const ModelLoader_1 = __importDefault(require("./database/ModelLoader"));
51
- const KythiaModel_1 = __importDefault(require("./database/KythiaModel"));
52
- const logger_1 = __importDefault(require("./utils/logger"));
53
- const discord_1 = __importDefault(require("./utils/discord"));
54
- const package_json_1 = require("../package.json");
55
- const KythiaClient_1 = __importDefault(require("./KythiaClient"));
56
- const TelemetryManager_1 = require("./managers/TelemetryManager");
57
- class Kythia {
58
- kythiaConfig;
59
- appRoot;
60
- client;
61
- rest;
62
- models;
63
- helpers;
64
- utils;
65
- redis;
66
- sequelize;
67
- logger;
68
- container;
69
- dbReadyHooks;
70
- clientReadyHooks;
71
- addonManager;
72
- interactionManager;
73
- eventManager;
74
- shutdownManager;
75
- translator;
76
- telemetryManager;
77
- constructor({ config, logger, redis, sequelize, models = {}, helpers = {}, utils = {}, appRoot, }) {
78
- const missingDeps = [];
79
- if (!config)
80
- missingDeps.push('config');
81
- if (missingDeps.length > 0) {
82
- console.error(`FATAL: Missing required dependencies: ${missingDeps.join(', ')}.`);
83
- process.exit(1);
84
- }
85
- this.kythiaConfig = config;
86
- this.appRoot = appRoot || process.cwd();
87
- this.client = (0, KythiaClient_1.default)();
88
- this.client.commands = new discord_js_1.Collection();
89
- this.rest = new discord_js_1.REST({ version: '10' }).setToken(this.kythiaConfig.bot.token);
90
- this.models = models;
91
- const internalDiscordHelpers = (0, discord_1.default)({
92
- kythiaConfig: this.kythiaConfig,
93
- });
94
- const userHelpers = helpers || {};
95
- const userDiscordHelpers = userHelpers.discord || {};
96
- this.helpers = {
97
- ...userHelpers,
98
- discord: {
99
- ...internalDiscordHelpers,
100
- ...userDiscordHelpers,
101
- },
102
- };
103
- this.utils = utils;
104
- this.redis = redis;
105
- this.sequelize = sequelize;
106
- this.logger = logger || logger_1.default;
107
- this.container = {
108
- client: this.client,
109
- sequelize: this.sequelize,
110
- logger: this.logger,
111
- redis: this.redis,
112
- kythiaConfig: this.kythiaConfig,
113
- helpers: this.helpers,
114
- appRoot: this.appRoot,
115
- t: async () => '',
116
- models: this.models,
117
- };
118
- this.translator = new TranslatorManager_1.default({ container: this.container });
119
- this.container.translator = this.translator;
120
- this.client.container = this.container;
121
- this.client.cooldowns = new discord_js_1.Collection();
122
- this.dbReadyHooks = [];
123
- this.clientReadyHooks = [];
124
- }
125
- _checkRequiredConfig() {
126
- const requiredBotConfig = [
127
- ['bot', 'token'],
128
- ['bot', 'clientId'],
129
- ['bot', 'clientSecret'],
130
- ];
131
- const missingBotConfigs = [];
132
- for (const pathArr of requiredBotConfig) {
133
- let value = this.kythiaConfig;
134
- for (const key of pathArr) {
135
- value = value?.[key];
136
- }
137
- if (value === undefined || value === null || value === '') {
138
- missingBotConfigs.push(pathArr.join('.'));
139
- }
140
- }
141
- if (!this.kythiaConfig.db)
142
- this.kythiaConfig.db = {};
143
- let driver = this.kythiaConfig.db.driver;
144
- if (!driver || driver === '') {
145
- this.kythiaConfig.db.driver = 'sqlite';
146
- driver = 'sqlite';
147
- this.logger.info('💡 DB driver not specified. Defaulting to: sqlite');
148
- }
149
- else {
150
- driver = driver.toLowerCase();
151
- this.kythiaConfig.db.driver = driver;
152
- }
153
- if (driver === 'sqlite') {
154
- if (!this.kythiaConfig.db.name || this.kythiaConfig.db.name === '') {
155
- this.kythiaConfig.db.name = 'kythiadata.sqlite';
156
- }
157
- }
158
- const requiredDbConfig = [
159
- ['db', 'driver'],
160
- ['db', 'name'],
161
- ];
162
- if (driver !== 'sqlite') {
163
- requiredDbConfig.push(['db', 'host'], ['db', 'port'], ['db', 'user'], ['db', 'pass']);
164
- }
165
- const missingDbConfigs = [];
166
- for (const pathArr of requiredDbConfig) {
167
- let value = this.kythiaConfig;
168
- for (const key of pathArr) {
169
- value = value?.[key];
170
- }
171
- if (value === undefined || value === null || value === '') {
172
- missingDbConfigs.push(pathArr.join('.'));
173
- }
174
- }
175
- const missingConfigs = missingBotConfigs.concat(missingDbConfigs);
176
- if (missingConfigs.length > 0) {
177
- this.logger.error('❌ Required configurations are not set:');
178
- for (const missing of missingConfigs) {
179
- this.logger.error(` - ${missing}`);
180
- }
181
- process.exit(1);
182
- }
183
- this.logger.info('✔️ All required configurations are set');
184
- }
185
- registerButtonHandler(customId, handler) {
186
- if (this.addonManager) {
187
- this.addonManager.registerButtonHandler(customId, handler);
188
- }
189
- }
190
- registerModalHandler(customIdPrefix, handler) {
191
- if (this.addonManager) {
192
- this.addonManager.registerModalHandler(customIdPrefix, handler);
193
- }
194
- }
195
- registerSelectMenuHandler(customIdPrefix, handler) {
196
- if (this.addonManager) {
197
- this.addonManager.registerSelectMenuHandler(customIdPrefix, handler);
198
- }
199
- }
200
- async _deployCommands(commands) {
201
- if (!commands || commands.length === 0) {
202
- this.logger.info('No commands to deploy.');
203
- return;
204
- }
205
- try {
206
- const { slash, user, message } = this._getCommandCounts(commands);
207
- const clientId = this.kythiaConfig.bot.clientId;
208
- const devGuildId = this.kythiaConfig.bot.devGuildId;
209
- if (this.kythiaConfig.env === 'development') {
210
- if (!devGuildId) {
211
- this.logger.warn('⚠️ devGuildId not set in config. Skipping guild command deployment.');
212
- return;
213
- }
214
- this.logger.info(`🟠 Deploying to GUILD ${devGuildId}...`);
215
- await this.rest.put(discord_js_1.Routes.applicationGuildCommands(clientId, devGuildId), { body: commands });
216
- this.logger.info('✅ Guild commands deployed instantly!');
217
- }
218
- else {
219
- this.logger.info(`🟢 Deploying globally...`);
220
- await this.rest.put(discord_js_1.Routes.applicationCommands(clientId), {
221
- body: commands,
222
- });
223
- this.logger.info('✅ Global commands deployed successfully!');
224
- if (devGuildId) {
225
- this.logger.info(`🧹 Clearing old commands from dev guild: ${devGuildId}...`);
226
- try {
227
- await this.rest.put(discord_js_1.Routes.applicationGuildCommands(clientId, devGuildId), { body: [] });
228
- this.logger.info('✅ Dev guild commands cleared successfully.');
229
- }
230
- catch (err) {
231
- this.logger.warn(`⚠️ Could not clear dev guild commands (maybe it was already clean): ${err.message}`);
232
- }
233
- }
234
- }
235
- this.logger.info(`⭕ All Slash Commands: ${commands.length}`, {
236
- label: 'Slash Commands',
237
- });
238
- this.logger.info(`⭕ Top Level Slash Commands: ${slash}`);
239
- this.logger.info(`⭕ User Context Menu: ${user}`);
240
- this.logger.info(`⭕ Message Context Menu: ${message}`);
241
- this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
242
- }
243
- catch (err) {
244
- this.logger.error('❌ Failed to deploy slash commands:', err);
245
- }
246
- }
247
- _getCommandCounts(commandJsonArray) {
248
- const counts = { slash: 0, user: 0, message: 0 };
249
- if (!Array.isArray(commandJsonArray)) {
250
- this.logger.warn('commandJsonArray is not iterable. Returning zero counts.');
251
- return counts;
252
- }
253
- for (const cmd of commandJsonArray) {
254
- switch (cmd?.type) {
255
- case 1:
256
- case undefined:
257
- counts.slash++;
258
- break;
259
- case 2:
260
- counts.user++;
261
- break;
262
- case 3:
263
- counts.message++;
264
- break;
265
- }
266
- }
267
- return counts;
268
- }
269
- addDbReadyHook(callback) {
270
- this.dbReadyHooks.push(callback);
271
- }
272
- addClientReadyHook(callback) {
273
- this.clientReadyHooks.push(callback);
274
- }
275
- async start() {
276
- const figletText = (text, opts) => new Promise((resolve, reject) => {
277
- figlet_1.default.text(text, opts, (err, data) => {
278
- if (err)
279
- reject(err);
280
- else
281
- resolve(data);
282
- });
283
- });
284
- try {
285
- const data = await figletText('KYTHIA', {
286
- font: 'ANSI Shadow',
287
- horizontalLayout: 'full',
288
- verticalLayout: 'full',
289
- });
290
- const infoLines = [
291
- cli_color_1.default.cyan('Created by kenndeclouv'),
292
- cli_color_1.default.cyan('Discord Support: ') + cli_color_1.default.underline('https://dsc.gg/kythia'),
293
- cli_color_1.default.cyan('Official Documentation: ') +
294
- cli_color_1.default.underline('https://kythia.me'),
295
- '',
296
- cli_color_1.default.cyanBright(`Kythia version: ${package_json_1.version}`),
297
- '',
298
- cli_color_1.default.yellowBright('Respect my work by not removing the credit'),
299
- ];
300
- const rawInfoLines = infoLines.map((line) => cli_color_1.default.strip(line));
301
- const infoMaxLen = Math.max(...rawInfoLines.map((l) => l.length));
302
- const pad = 8;
303
- const borderWidth = infoMaxLen + pad * 2;
304
- const borderChar = cli_color_1.default.cyanBright('═');
305
- const sideChar = cli_color_1.default.cyanBright('║');
306
- const topBorder = cli_color_1.default.cyanBright(`╔${borderChar.repeat(borderWidth)}╗`);
307
- const bottomBorder = cli_color_1.default.cyanBright(`╚${borderChar.repeat(borderWidth)}╝`);
308
- const emptyLine = sideChar + ' '.repeat(borderWidth) + sideChar;
309
- const figletLines = data.split('\n');
310
- const centeredFigletInBorder = figletLines
311
- .map((line) => {
312
- const rawLen = cli_color_1.default.strip(line).length;
313
- const spaces = ' '.repeat(Math.max(0, Math.floor((borderWidth - rawLen) / 2)));
314
- return (sideChar +
315
- spaces +
316
- cli_color_1.default.cyanBright(line) +
317
- ' '.repeat(borderWidth - spaces.length - rawLen) +
318
- sideChar);
319
- })
320
- .join('\n');
321
- const centeredInfo = infoLines
322
- .map((line, idx) => {
323
- const raw = rawInfoLines[idx];
324
- const spaces = ' '.repeat(Math.floor((borderWidth - raw.length) / 2));
325
- return (sideChar +
326
- spaces +
327
- line +
328
- ' '.repeat(borderWidth - spaces.length - raw.length) +
329
- sideChar);
330
- })
331
- .join('\n');
332
- console.log(`\n${topBorder}`);
333
- console.log(emptyLine);
334
- console.log(centeredFigletInBorder);
335
- console.log(emptyLine);
336
- console.log(centeredInfo);
337
- console.log(emptyLine);
338
- console.log(`${bottomBorder}\n`);
339
- }
340
- catch (err) {
341
- this.logger.error('❌ Failed to render figlet banner:', err);
342
- }
343
- this.logger.info('🚀 Starting kythia...');
344
- const legalConfig = this.kythiaConfig.legal;
345
- if (!legalConfig || !legalConfig.acceptTOS || !legalConfig.dataCollection) {
346
- this.logger.error('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
347
- this.logger.error('🛑 ACTION REQUIRED: TERMS OF SERVICE AGREEMENT');
348
- this.logger.error('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
349
- this.logger.error('To use Kythia Core, you MUST accept our Terms of Service.');
350
- this.logger.error('');
351
- this.logger.error('We collect the following data for license verification:');
352
- this.logger.error(' - IP Address');
353
- this.logger.error(' - Hardware Specification (CPU/RAM) for HWID');
354
- this.logger.error(' - Bot Configuration');
355
- this.logger.error('');
356
- this.logger.error('👉 HOW TO FIX:');
357
- this.logger.error(' Open your "kythia.config.js" file and set:');
358
- this.logger.error(' legal: {');
359
- this.logger.error(' acceptTOS: true,');
360
- this.logger.error(' dataCollection: true');
361
- this.logger.error(' }');
362
- this.logger.error('');
363
- this.logger.error('By setting true, you agree to our Privacy Policy at:');
364
- this.logger.error('https://kythia.me/privacy');
365
- this.logger.error('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
366
- process.exit(1);
367
- }
368
- if (this.kythiaConfig.sentry?.dsn) {
369
- Sentry.init({
370
- dsn: this.kythiaConfig.sentry.dsn,
371
- tracesSampleRate: 1.0,
372
- profilesSampleRate: 1.0,
373
- });
374
- this.logger.info('✔️ Sentry Error Tracking is ACTIVE');
375
- }
376
- else {
377
- this.logger.warn('🟠 Sentry DSN not found in config. Error tracking is INACTIVE.');
378
- }
379
- this._checkRequiredConfig();
380
- const telemetry = new TelemetryManager_1.TelemetryManager({
381
- licenseKey: this.kythiaConfig.licenseKey,
382
- logger: this.logger,
383
- version: package_json_1.version,
384
- config: this.kythiaConfig,
385
- });
386
- this.telemetryManager = telemetry;
387
- this.container.telemetry = telemetry;
388
- const isLicenseValid = await telemetry.verify();
389
- if (!isLicenseValid) {
390
- this.logger.error('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
391
- this.logger.error('🚫 ACCESS DENIED');
392
- this.logger.error('Your license key is missing, invalid, or expired.');
393
- this.logger.error('Please verify your license key in .env or contact support at:');
394
- this.logger.error('👉 https://dsc.gg/kythia');
395
- this.logger.error('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
396
- process.exit(1);
397
- }
398
- if (isLicenseValid) {
399
- telemetry.startHeartbeat();
400
- telemetry.startAutoFlush();
401
- telemetry.report('info', `Bot Process Started (v${package_json_1.version})`, {
402
- node: process.version,
403
- platform: process.platform,
404
- cwd: process.cwd(),
405
- });
406
- }
407
- try {
408
- const shouldDeploy = !process.argv.includes('--dev');
409
- this.logger.info('▬▬▬▬▬▬▬▬▬▬▬[ Translator System ]▬▬▬▬▬▬▬▬▬▬▬');
410
- const coreLangPath = node_path_1.default.join(__dirname, 'lang');
411
- this.translator.loadLocalesFromDir(coreLangPath);
412
- const userLangPath = node_path_1.default.join(this.appRoot, 'lang');
413
- this.translator.loadLocalesFromDir(userLangPath);
414
- this.container.translator = this.translator;
415
- this.container.t = this.translator.t.bind(this.translator);
416
- this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬[ Kythia Addons ]▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
417
- this.addonManager = new AddonManager_1.default({
418
- client: this.client,
419
- container: this.container,
420
- });
421
- const allCommands = await this.addonManager.loadAddons(this);
422
- if (this.sequelize) {
423
- this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬▬[ Connect Database ]▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
424
- await this.sequelize.authenticate();
425
- await (0, KythiaMigrator_1.default)({
426
- sequelize: this.sequelize,
427
- container: this.container,
428
- logger: this.logger,
429
- });
430
- await (0, ModelLoader_1.default)(this, this.sequelize);
431
- this.logger.info('🪝 Attaching Cache Hooks...');
432
- KythiaModel_1.default.attachHooksToAllModels(this.sequelize, this.client);
433
- }
434
- else {
435
- this.logger.warn('⚠️ Sequelize instance not provided. Skipping database initialization.');
436
- }
437
- const handlers = this.addonManager.getHandlers();
438
- this.eventManager = new EventManager_1.default({
439
- client: this.client,
440
- container: this.container,
441
- eventHandlers: handlers.eventHandlers,
442
- });
443
- this.eventManager.initialize();
444
- this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬[ Middleware ]▬▬▬▬▬▬▬▬▬▬▬▬▬');
445
- const middlewareManager = new MiddlewareManager_1.default({
446
- container: this.container,
447
- });
448
- await middlewareManager.loadMiddlewares();
449
- this.container.middlewareManager = middlewareManager;
450
- this.interactionManager = new InteractionManager_1.InteractionManager({
451
- client: this.client,
452
- container: this.container,
453
- handlers: handlers,
454
- });
455
- this.interactionManager.initialize();
456
- this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬[ Deploy Commands ]▬▬▬▬▬▬▬▬▬▬▬▬▬');
457
- if (shouldDeploy) {
458
- await this._deployCommands(allCommands);
459
- }
460
- else {
461
- this.logger.info('⏭️ Skipping command deployment because --dev flag is present.');
462
- }
463
- this.shutdownManager = new ShutdownManager_1.ShutdownManager({
464
- client: this.client,
465
- container: this.container,
466
- });
467
- this.shutdownManager.initialize();
468
- this.logger.info('▬▬▬▬▬▬▬▬▬▬▬[ Systems Initializing ]▬▬▬▬▬▬▬▬▬▬▬▬');
469
- this.client.once('clientReady', async (c) => {
470
- this.logger.info(`🌸 Logged in as ${this.client.user?.tag}`);
471
- this.telemetryManager.report('info', `Bot Client Ready: ${c.user?.tag}`, {
472
- guilds: c.guilds.cache.size,
473
- users: c.users.cache.size,
474
- });
475
- this.logger.info(`🚀 Executing ${this.clientReadyHooks.length} client-ready hooks...`);
476
- for (const hook of this.clientReadyHooks) {
477
- try {
478
- await hook(c);
479
- }
480
- catch (error) {
481
- this.logger.error('Failed to execute a client-ready hook:', error);
482
- }
483
- }
484
- });
485
- await this.client.login(this.kythiaConfig.bot.token);
486
- }
487
- catch (error) {
488
- this.logger.error('❌ Kythia initialization failed:', error);
489
- try {
490
- await this.telemetryManager.report('error', `Startup Fatal Crash: ${error.message}`, {
491
- stack: error.stack,
492
- });
493
- }
494
- catch (_e) { }
495
- if (this.kythiaConfig.sentry?.dsn) {
496
- Sentry.captureException(error);
497
- }
498
- process.exit(1);
499
- }
500
- }
501
- }
502
- module.exports = Kythia;
503
- //# sourceMappingURL=Kythia.js.map
1
+ 'use strict';function a0_0x48ad(){const _0x9dfb30=['yxbWuM9VDa','zMLNBgv0','zxjYB3i','qhnLBNrYEs9UB2rL','y29UzMLNDxjHyMXL','CMvZDa','8j+QNsbbDhrHy2HPBMCGq2fJAguGsg9VA3mUlI4','y2XPzw50uMvHzhLiB29RCW','Aw50zxjHy3rPB25nyw5Hz2vY','8j+sOsbeqIbKCML2zxiGBM90ihnWzwnPzMLLzc4GrgvMyxvSDgLUzYb0BZOGC3fSAxrL','D3jPDgfIBgu','s0TZuKK','Cg9YDa','icaGlsa','x2nOzwnRuMvXDwLYzwrdB25MAwC','4PYfierLDIbNDwLSzcbJB21Tyw5KCYbJBgvHBMvKihvWlG','mZLcDgvSyMW','nduYotjxwNP0CwK','x19PBxbVCNrtDgfY','oefOwfb0ta','s1jvvxa','z2v0','icaGBgvNywW6ihS','qM90ifbYB2nLC3mGu3rHCNrLzcaODG','4PYu77IpicbbBgWGCMvXDwLYzwqGy29UzMLNDxjHDgLVBNmGyxjLihnLDa','BgvUz3rO','y2XPzw50','BgLJzw5ZzuTLEq','nJCZnZqWuxfKshvx','tM8Gy29TBwfUzhmGDg8GzgvWBg95lG','mZq0nfvACxLJta','mJq0sfDYzwP5','igDSB2jHBcbJB21Tyw5KCY4UlG','EwvSBg93qNjPz2H0','zgjszwfKEuHVB2TZ','C3rYAxa','lI4VCgfJA2fNzs5QC29U','AgvSCgvYCW','B2DItxG','y29TBwfUzePZB25bCNjHEsbPCYbUB3qGAxrLCMfIBguUifjLDhvYBMLUzYb6zxjVignVDw50CY4','Aw5JBhvKzxm','zgf0yunVBgXLy3rPB24','4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PASwYblExrOAweGqwrKB25Zif3ILQZILQZILQZILQZILQZILQZILQZILQZILQZILQZILQZILQZILQZILQZILQZILQW','z2v0sgfUzgXLCNm','CMvWzwf0','y3LHBG','4Q2viefSBcbtBgfZAcbdB21Tyw5KCZOG','C2v0vg9Rzw4','qNKGC2v0DgLUzYb0CNvLlcb5B3uGywDYzwuGDg8GB3vYifbYAxzHy3KGug9SAwn5igf0oG','vgTkrgS','C2vUDhj5','4PYfieDSB2jHBcbJB21Tyw5KCYbKzxbSB3LLzcbZDwnJzxnZzNvSBhKH','4Q2vie1LC3nHz2uGq29UDgv4Dcbnzw51oIa','qw9pA0S','sLDvsKu','BwfW','sLfXvMy','CMvNAxn0zxjtzwXLy3rnzw51sgfUzgXLCG','4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS','4PQG77IpigrLDKD1AwXKswqGBM90ihnLDcbPBIbJB25MAwCUifnRAxbWAw5NigD1AwXKignVBw1HBMqGzgvWBg95BwvUDc4','x2DLDenVBw1HBMrdB3vUDhm','CMvKAxm','AgfZt3DUuhjVCgvYDhK','Dg9Rzw4','y29Uy2f0','tuXwt00','mJu1otvXzhn5uha','C2XHC2G','4PQG77IpienVBNrPBNvPBMCGAw4GBgLTAxrLzcbTB2rLlIbcB3qGD2LSBcbZAhv0igrVD24GAw4GmIbTAw51DgvZlG','qM90ienSAwvUDcbszwfKEtOG','u3rHCNr1CcbgyxrHBcbdCMfZAa','4O+T77IpicbdB21Tyw5KigrLCgXVEw1LBNqGzgvMzxjYzwqGzhvLihrVihjHDguGBgLTAxrPBMCU','zNvSBa','A3L0AgLHq29UzMLN','BLvNtNC','Bg9Nz2vY','x2rLCgXVEunVBw1HBMrZ','ls1Kzxy','uM91DgvZ','mJC1ofbewuvruq','yM90','yxbWBgLJyxrPB25hDwLSzenVBw1HBMrZ','8j+sGcbmAwnLBNnLihzHBgLKyxrPB24GCMvXDwLYzwqUifnODxr0Aw5NigrVD24U','4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS','DxnLCNm','Bg9N','zhnU','BMfTzq','zgvMAw5LuhjVCgvYDhK','zhjPDMvY','D2fYBG','yxr0ywnOsg9VA3nuB0fSBe1VzgvSCW','u2H1DgrVD25nyw5Hz2vY','CM5nsNm','y2XPzw50swq','DhjHBNnSyxrVCG','4PYfieD1AwXKignVBw1HBMrZigrLCgXVEwvKigLUC3rHBNrSEse','8j+FOcbezxbSB3LPBMCGDg8Gr1vjteqG','Cfr3sxi','8j+rIsbODhrWCZOVl2rZyY5NzY9RExrOAwe','lI4U','q29SBgvJDgLVBG','lI9KyxrHyMfZzs9lExrOAwfnAwDYyxrVCG','4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PASwYbnAwrKBgv3yxjLif3ILQZILQZILQZILQZILQZILQZILQZILQZILQZILQZILQZILQZILQW','y3DbCKu','y3LHBKjYAwDODa','nJz6svDuEhu','CMvNAxn0zxjnB2rHBeHHBMrSzxi','zgvMyxvSDa','DgvSzw1LDhj5twfUywDLCG','zMXVB3i','mZGXnZu1n2L6AfjsAW','AM9PBG','ELzMs2i','y2XPlwnVBg9Y','C2vXDwvSAxPL','y3DK','C3rHCNrizwfYDgjLyxq','AxnuB2TLBLzHBgLK','4P2mifjLCxvPCMvKignVBMzPz3vYyxrPB25ZigfYzsbUB3qGC2v0oG','vg8GDxnLieT5DgHPysbdB3jLlcb5B3uGtvvtvcbHy2nLChqGB3vYifrLCM1Zig9MifnLCNzPy2uU','zgv2zwXVCg1LBNq','rgLZy29YzcbtDxbWB3j0oIa','t2zMAwnPywWGv2vIC2L0ztOG','zxHPDa','DMvYC2LVBG','lI9KyxrHyMfZzs9nB2rLBeXVywrLCG','r1b6Cw4','ywnJzxb0ve9t','lI9Tyw5Hz2vYCY9fDMvUDe1HBMfNzxi','Aw5MBW','8j+rIsbit1CGve8GrKLyoG','otq5nZyXze16uwfh','BwfPBKD1AwXKswq','CMvNAxn0zxjcDxr0B25iyw5KBgvY','8j+BKsbbq1rjt04GuKvrvuLsruq6ifrfuK1tie9gifnfuLzjq0uGquDsruvnru5u','zMvgvxu','zgv2r3vPBgrjza','yxv0AgvUDgLJyxrL','8j+NUsbdBgvHCMLUzYbSAw5NzxjPBMCGy29TBwfUzhmGzNjVBsbKzxyGz3vPBgq6ia','C3bSAxq','Bw9KzwXZ','zxHWB3j0CW','ywrKB25nyw5Hz2vY','4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PASwYbtExn0zw1ZieLUAxrPywXPEMLUzYbD4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS','nJGXnNfsEunUza','BwfPBKD1AwXKt25SEq','ywrKq2XPzw50uMvHzhLiB29R','mtmYmJfiExvrrMK','y3jLyxrL','zxzLBNrnyw5Hz2vY','Chv0','Ahr0Chm6lY9RExrOAweUBwuVChjPDMfJEq','ChvZAa','vgPnBfa','AxnbCNjHEq','4P2miezHAwXLzcb0BYbKzxbSB3KGC2XHC2GGy29TBwfUzhm6','y2XPzw50u2vJCMv0','ywrKrgjszwfKEuHVB2S','Dg9mB3DLCKnHC2u','4Q2vifrVCcbmzxzLBcbtBgfZAcbdB21Tyw5KCZOG','DxnLCG','y29UDgfPBMvY','Bg9NAw4','lI91DgLSCY9SB2DNzxi','C3fSAxrL','rMfPBgvKihrVigv4zwn1DguGysbJBgLLBNqTCMvHzhKGAg9VAZO','CgXHDgzVCM0','x19ZzxrnB2r1BgvezwzHDwX0','icaGFq','4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PAS4PASwYbezxbSB3KGq29TBwfUzhmGxEkwRokwRokwRokwRokwRokwRokwRokwRokwRokwRokwRokwRokwRa','AfjAqve','BgvNywW','x19JCMvHDgvcAw5KAw5N','zxzLBNriyw5KBgvYCW'];a0_0x48ad=function(){return _0x9dfb30;};return a0_0x48ad();}const a0_0x595fc1=a0_0x5c6d;function a0_0x5c6d(_0x16cd67,_0x5eae1f){_0x16cd67=_0x16cd67-(0x157f*-0x1+-0x1134+0x1*0x27c7);const _0x2b8332=a0_0x48ad();let _0x41a05a=_0x2b8332[_0x16cd67];if(a0_0x5c6d['FrdlHk']===undefined){var _0xa09c28=function(_0x3072a1){const _0x4d37e1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x16c7bd='',_0x8704c0='';for(let _0x31d0de=0x2*-0x28f+0xb1*0x5+0x19*0x11,_0x42322e,_0x42a690,_0x2274a3=0x1*-0x2316+0x1190+0x2*0x8c3;_0x42a690=_0x3072a1['charAt'](_0x2274a3++);~_0x42a690&&(_0x42322e=_0x31d0de%(-0x7*0xd+-0x431*0x7+-0x1*-0x1db6)?_0x42322e*(-0x251f+-0xbd4+0xb*0x479)+_0x42a690:_0x42a690,_0x31d0de++%(-0xa8a*0x1+-0x3*-0x504+0xa*-0x73))?_0x16c7bd+=String['fromCharCode'](-0x719*-0x4+0xd6d+-0x28d2&_0x42322e>>(-(-0x1ff4*-0x1+-0x1f79+-0x79)*_0x31d0de&0x2353+0x9d3+0x5a4*-0x8)):0x256f+-0x11*0x119+-0x12c6){_0x42a690=_0x4d37e1['indexOf'](_0x42a690);}for(let _0x4fdd92=0x89*-0x9+0x14dd+-0x100c,_0x3f5209=_0x16c7bd['length'];_0x4fdd92<_0x3f5209;_0x4fdd92++){_0x8704c0+='%'+('00'+_0x16c7bd['charCodeAt'](_0x4fdd92)['toString'](-0xf1a+0x2076+0x9*-0x1ec))['slice'](-(-0x269b+0x81*0xf+0xf87*0x2));}return decodeURIComponent(_0x8704c0);};a0_0x5c6d['EWqMWe']=_0xa09c28,a0_0x5c6d['pSXDzH']={},a0_0x5c6d['FrdlHk']=!![];}const _0xd7d9b8=_0x2b8332[-0x6*0x635+-0x201f+0x455d],_0x4f7e93=_0x16cd67+_0xd7d9b8,_0x5f181a=a0_0x5c6d['pSXDzH'][_0x4f7e93];return!_0x5f181a?(_0x41a05a=a0_0x5c6d['EWqMWe'](_0x41a05a),a0_0x5c6d['pSXDzH'][_0x4f7e93]=_0x41a05a):_0x41a05a=_0x5f181a,_0x41a05a;}(function(_0x993893,_0x185520){const a0_0x2eb9d5={_0x121a18:0x127,_0x5235a1:0x158,_0x32d0cc:0x134,_0x233223:0x165,_0x210243:0x129,_0x84bd05:0x185,_0x2a611d:0x180,_0x413b8b:0x1a7},_0x29c39d=a0_0x5c6d,_0x535b5e=_0x993893();while(!![]){try{const _0x2d9cc3=parseInt(_0x29c39d(0x19a))/(0x11b5+-0x1ff4+0x2*0x720)+parseInt(_0x29c39d(a0_0x2eb9d5._0x121a18))/(0x1484+0xfe9+-0x246b)*(parseInt(_0x29c39d(0x126))/(-0x1ccf+-0x1cf*-0xf+-0x1*-0x1b1))+-parseInt(_0x29c39d(0x135))/(0x25f3+-0x13*-0x157+0x1*-0x3f64)*(parseInt(_0x29c39d(a0_0x2eb9d5._0x5235a1))/(-0x953+-0xbb5+-0x150d*-0x1))+-parseInt(_0x29c39d(a0_0x2eb9d5._0x32d0cc))/(0x1953+-0x99*-0x39+-0x3b5e)*(-parseInt(_0x29c39d(a0_0x2eb9d5._0x233223))/(0x3*0x119+-0x27*-0x22+-0x872*0x1))+parseInt(_0x29c39d(a0_0x2eb9d5._0x210243))/(-0x1*-0x222b+-0x28b+-0x1f98)*(-parseInt(_0x29c39d(a0_0x2eb9d5._0x84bd05))/(0x1*0x1257+-0x444+-0xe0a))+-parseInt(_0x29c39d(0x132))/(-0x71*-0x41+0x697+-0xd*0x2b6)*(-parseInt(_0x29c39d(a0_0x2eb9d5._0x2a611d))/(0x1cda+-0x870+-0x145f))+-parseInt(_0x29c39d(a0_0x2eb9d5._0x413b8b))/(-0x1bc2+-0x2111+0x3cdf*0x1)*(parseInt(_0x29c39d(0x1aa))/(0x1d5c+-0x166f+-0x6e0));if(_0x2d9cc3===_0x185520)break;else _0x535b5e['push'](_0x535b5e['shift']());}catch(_0x48c818){_0x535b5e['push'](_0x535b5e['shift']());}}}(a0_0x48ad,0xa0eed*-0x1+-0xff*0x19c+0x1436a8));var __createBinding=this&&this[a0_0x595fc1(0x114)]||(Object[a0_0x595fc1(0x1ab)]?function(_0x32eb40,_0x457c8e,_0x1bb70f,_0x162ede){const a0_0x415f56={_0x1997dd:0x160,_0x5a13fd:0x120},_0x18e6a6=a0_0x595fc1,_0x5c65ae={'nUgNw':function(_0x30da86,_0xa5434b){return _0x30da86 in _0xa5434b;},'rnMJs':_0x18e6a6(0x12b)};if(_0x162ede===undefined)_0x162ede=_0x1bb70f;var _0x31bd40=Object['getOwnPropertyDescriptor'](_0x457c8e,_0x1bb70f);(!_0x31bd40||(_0x5c65ae[_0x18e6a6(a0_0x415f56._0x1997dd)](_0x5c65ae[_0x18e6a6(0x173)],_0x31bd40)?!_0x457c8e['__esModule']:_0x31bd40[_0x18e6a6(a0_0x415f56._0x5a13fd)]||_0x31bd40[_0x18e6a6(0x11a)]))&&(_0x31bd40={'enumerable':!![],'get':function(){return _0x457c8e[_0x1bb70f];}}),Object[_0x18e6a6(0x16e)](_0x32eb40,_0x162ede,_0x31bd40);}:function(_0x1096fd,_0x8cc7a9,_0x39a2a8,_0x179b1f){const _0x27f79f=a0_0x595fc1,_0x5dc27a={'zVfKb':function(_0x1dd9a5,_0x5dba02){return _0x1dd9a5===_0x5dba02;}};if(_0x5dc27a[_0x27f79f(0x187)](_0x179b1f,undefined))_0x179b1f=_0x39a2a8;_0x1096fd[_0x179b1f]=_0x8cc7a9[_0x39a2a8];}),__setModuleDefault=this&&this[a0_0x595fc1(0x1be)]||(Object['create']?function(_0x84a8d1,_0x5ddc23){const _0x3c9fc9=a0_0x595fc1;Object['defineProperty'](_0x84a8d1,_0x3c9fc9(0x182),{'enumerable':!![],'value':_0x5ddc23});}:function(_0x9bf19c,_0x286ea2){const a0_0x250d45={_0xc1b51:0x182},_0x205449=a0_0x595fc1;_0x9bf19c[_0x205449(a0_0x250d45._0xc1b51)]=_0x286ea2;}),__importStar=this&&this[a0_0x595fc1(0x128)]||(function(){const _0x2385c9={'hRZAQ':function(_0x25cd56,_0x12effb){return _0x25cd56(_0x12effb);},'KKsRI':function(_0x817422,_0x33138a){return _0x817422<_0x33138a;},'qnXRx':function(_0x20f278,_0xd5d54a){return _0x20f278!==_0xd5d54a;}};var _0x556ec4=function(_0x4e1bfe){const a0_0x1df2d9={_0xfa7848:0x154,_0x2f1732:0x12f};return _0x556ec4=Object['getOwnPropertyNames']||function(_0x30c63c){const _0x2a405f=a0_0x5c6d;var _0x46169c=[];for(var _0x1caeea in _0x30c63c)if(Object['prototype'][_0x2a405f(a0_0x1df2d9._0xfa7848)]['call'](_0x30c63c,_0x1caeea))_0x46169c[_0x46169c[_0x2a405f(a0_0x1df2d9._0x2f1732)]]=_0x1caeea;return _0x46169c;},_0x556ec4(_0x4e1bfe);};return function(_0x5aceb3){const _0x25ecf4=a0_0x5c6d;if(_0x5aceb3&&_0x5aceb3['__esModule'])return _0x5aceb3;var _0x3d30ae={};if(_0x5aceb3!=null){for(var _0x56ba56=_0x2385c9[_0x25ecf4(0x1c1)](_0x556ec4,_0x5aceb3),_0x209392=0x15*-0x65+-0x16ac+0x631*0x5;_0x2385c9[_0x25ecf4(0x121)](_0x209392,_0x56ba56['length']);_0x209392++)if(_0x2385c9['qnXRx'](_0x56ba56[_0x209392],_0x25ecf4(0x182)))__createBinding(_0x3d30ae,_0x5aceb3,_0x56ba56[_0x209392]);}return __setModuleDefault(_0x3d30ae,_0x5aceb3),_0x3d30ae;};}()),__importDefault=this&&this['__importDefault']||function(_0x49ea2a){return _0x49ea2a&&_0x49ea2a['__esModule']?_0x49ea2a:{'default':_0x49ea2a};};const discord_js_1=require('discord.js'),Sentry=__importStar(require(a0_0x595fc1(0x119))),node_path_1=__importDefault(require('node:path')),figlet_1=__importDefault(require(a0_0x595fc1(0x117))),cli_color_1=__importDefault(require(a0_0x595fc1(0x188))),AddonManager_1=__importDefault(require('./managers/AddonManager')),InteractionManager_1=require('./managers/InteractionManager'),ShutdownManager_1=require('./managers/ShutdownManager'),EventManager_1=__importDefault(require(a0_0x595fc1(0x197))),MiddlewareManager_1=__importDefault(require('./managers/MiddlewareManager')),TranslatorManager_1=__importDefault(require('./managers/TranslatorManager')),KythiaMigrator_1=__importDefault(require(a0_0x595fc1(0x17c))),ModelLoader_1=__importDefault(require(a0_0x595fc1(0x194))),KythiaModel_1=__importDefault(require('./database/KythiaModel')),logger_1=__importDefault(require(a0_0x595fc1(0x1ba))),discord_1=__importDefault(require('./utils/discord')),package_json_1=require(a0_0x595fc1(0x13a)),KythiaClient_1=__importDefault(require('./KythiaClient')),TelemetryManager_1=require('./managers/TelemetryManager');class Kythia{[a0_0x595fc1(0x15f)];[a0_0x595fc1(0x116)];[a0_0x595fc1(0x130)];[a0_0x595fc1(0x11b)];['models'];['helpers'];['utils'];[a0_0x595fc1(0x153)];[a0_0x595fc1(0x189)];['logger'];['container'];[a0_0x595fc1(0x138)];['clientReadyHooks'];[a0_0x595fc1(0x1a5)];[a0_0x595fc1(0x11e)];['eventManager'];['shutdownManager'];['translator'];['telemetryManager'];constructor({config:_0x5a1124,logger:_0x5b36e1,redis:_0x3b6822,sequelize:_0x57887b,models:models={},helpers:helpers={},utils:utils={},appRoot:_0x521700}){const a0_0x190d4a={_0x5ad72f:0x12f,_0x19d5f3:0x118,_0x65482:0x15f,_0x3f1681:0x116,_0x28730d:0x182,_0x229572:0x13b,_0x55ff95:0x182,_0x5e5488:0x161,_0x1d1f48:0x116,_0x6edd8e:0x182,_0x431a6f:0x1b8,_0x36b232:0x1b8,_0x5db372:0x17b},_0x173373=a0_0x595fc1,_0xf6cc74={'cwArE':'config'},_0x12c952=[];if(!_0x5a1124)_0x12c952['push'](_0xf6cc74[_0x173373(0x17e)]);_0x12c952[_0x173373(a0_0x190d4a._0x5ad72f)]>0x840+-0x8e4+0xa4&&(console[_0x173373(a0_0x190d4a._0x19d5f3)]('FATAL:\x20Missing\x20required\x20dependencies:\x20'+_0x12c952['join'](',\x20')+'.'),process['exit'](-0x879+-0x5*-0x507+-0x10a9));this[_0x173373(a0_0x190d4a._0x65482)]=_0x5a1124,this[_0x173373(a0_0x190d4a._0x3f1681)]=_0x521700||process[_0x173373(0x18a)](),this['client']=(-0x48a+0x1eaa+-0x8*0x344,KythiaClient_1[_0x173373(a0_0x190d4a._0x28730d)])(),this['client']['commands']=new discord_js_1['Collection'](),this[_0x173373(0x11b)]=new discord_js_1['REST']({'version':'10'})[_0x173373(0x145)](this[_0x173373(0x15f)][_0x173373(0x166)]['token']),this[_0x173373(0x1a3)]=models;const _0x2ec51b=(0xc1*0x1d+-0x234+0x1*-0x13a9,discord_1[_0x173373(0x182)])({'kythiaConfig':this['kythiaConfig']}),_0x57f7bc=helpers||{},_0x3bee05=_0x57f7bc['discord']||{};this[_0x173373(a0_0x190d4a._0x229572)]={..._0x57f7bc,'discord':{..._0x2ec51b,..._0x3bee05}},this['utils']=utils,this['redis']=_0x3b6822,this['sequelize']=_0x57887b,this['logger']=_0x5b36e1||logger_1[_0x173373(a0_0x190d4a._0x55ff95)],this[_0x173373(0x183)]=new TelemetryManager_1['TelemetryManager']({'licenseKey':this['kythiaConfig'][_0x173373(0x131)],'logger':this[_0x173373(a0_0x190d4a._0x5e5488)],'version':package_json_1['version'],'config':this['kythiaConfig']}),this['container']={'client':this[_0x173373(0x130)],'sequelize':this[_0x173373(0x189)],'logger':this['logger'],'redis':this['redis'],'kythiaConfig':this[_0x173373(0x15f)],'helpers':this['helpers'],'appRoot':this[_0x173373(a0_0x190d4a._0x1d1f48)],'telemetry':this['telemetryManager'],'t':async(_0x6b8549,_0x5576c7)=>_0x5576c7,'models':this[_0x173373(0x1a3)]},this['translator']=new TranslatorManager_1[(_0x173373(a0_0x190d4a._0x6edd8e))]({'container':this[_0x173373(a0_0x190d4a._0x431a6f)]}),this[_0x173373(0x1b8)]['translator']=this['translator'],this['client'][_0x173373(0x1b8)]=this[_0x173373(a0_0x190d4a._0x36b232)],this[_0x173373(0x130)]['cooldowns']=new discord_js_1[(_0x173373(a0_0x190d4a._0x5db372))](),this['dbReadyHooks']=[],this['clientReadyHooks']=[];}[a0_0x595fc1(0x124)](){const a0_0x3d5242={_0x38742a:0x1b3,_0x4ba648:0x1b0,_0x2f1505:0x15f,_0x38c9b4:0x16f,_0x521614:0x161,_0x398bfe:0x198,_0x314ed2:0x1bb,_0x1d4f04:0x16d,_0x162dcf:0x16d,_0x479c86:0x122,_0x1f7280:0x1b7,_0x3027b1:0x15f,_0x16a56e:0x186,_0x5a16c5:0x156,_0x23dee9:0x18d,_0x495a05:0x161,_0x25f6d8:0x12e},_0x2fd283=a0_0x595fc1,_0x13325f={'TjMlP':function(_0x33dd32,_0x39bb2f){return _0x33dd32===_0x39bb2f;},'YnYEg':function(_0x32fe57,_0xf749da){return _0x32fe57!==_0xf749da;},'evZTO':function(_0x2a21f0,_0x5e3e7c){return _0x2a21f0>_0x5e3e7c;}},_0x561d75=[['bot',_0x2fd283(0x155)],['bot',_0x2fd283(0x174)],['bot',_0x2fd283(a0_0x3d5242._0x38742a)]],_0x568e34=[];for(const _0x36b11d of _0x561d75){let _0x1c4bee=this['kythiaConfig'];for(const _0x1e53e7 of _0x36b11d){_0x1c4bee=_0x1c4bee?.[_0x1e53e7];}(_0x13325f[_0x2fd283(a0_0x3d5242._0x4ba648)](_0x1c4bee,undefined)||_0x1c4bee===null||_0x1c4bee==='')&&_0x568e34['push'](_0x36b11d[_0x2fd283(0x186)]('.'));}!this[_0x2fd283(0x15f)]['db']&&(this['kythiaConfig']['db']={});let _0x4a7715=this[_0x2fd283(a0_0x3d5242._0x2f1505)]['db'][_0x2fd283(0x16f)];!_0x4a7715||_0x4a7715===''?(this[_0x2fd283(0x15f)]['db'][_0x2fd283(a0_0x3d5242._0x38c9b4)]='sqlite',_0x4a7715='sqlite',this[_0x2fd283(a0_0x3d5242._0x521614)][_0x2fd283(a0_0x3d5242._0x398bfe)](_0x2fd283(0x11f))):(_0x4a7715=_0x4a7715[_0x2fd283(0x1b5)](),this['kythiaConfig']['db'][_0x2fd283(a0_0x3d5242._0x38c9b4)]=_0x4a7715);_0x4a7715===_0x2fd283(a0_0x3d5242._0x314ed2)&&((!this['kythiaConfig']['db'][_0x2fd283(a0_0x3d5242._0x1d4f04)]||_0x13325f['TjMlP'](this[_0x2fd283(0x15f)]['db'][_0x2fd283(a0_0x3d5242._0x162dcf)],''))&&(this['kythiaConfig']['db'][_0x2fd283(a0_0x3d5242._0x1d4f04)]='kythiadata.sqlite'));const _0x40d6bf=[['db',_0x2fd283(0x16f)],['db','name']];_0x13325f['YnYEg'](_0x4a7715,'sqlite')&&_0x40d6bf['push'](['db','host'],['db',_0x2fd283(a0_0x3d5242._0x479c86)],['db',_0x2fd283(a0_0x3d5242._0x1f7280)],['db','pass']);const _0x576477=[];for(const _0x524524 of _0x40d6bf){let _0x2efd2d=this[_0x2fd283(a0_0x3d5242._0x3027b1)];for(const _0x2f7c69 of _0x524524){_0x2efd2d=_0x2efd2d?.[_0x2f7c69];}(_0x2efd2d===undefined||_0x2efd2d===null||_0x2efd2d==='')&&_0x576477[_0x2fd283(0x1af)](_0x524524[_0x2fd283(a0_0x3d5242._0x16a56e)]('.'));}const _0x63e4c=_0x568e34[_0x2fd283(a0_0x3d5242._0x5a16c5)](_0x576477);if(_0x13325f['evZTO'](_0x63e4c['length'],-0x1dad+0x1*0x166+0x1c47)){this[_0x2fd283(0x161)]['error'](_0x2fd283(a0_0x3d5242._0x23dee9));for(const _0x1480ba of _0x63e4c){this[_0x2fd283(a0_0x3d5242._0x495a05)]['error'](_0x2fd283(0x123)+_0x1480ba);}process['exit'](0x53*-0x27+0x14d3+0xd*-0xa1);}this['logger']['info'](_0x2fd283(a0_0x3d5242._0x25f6d8));}[a0_0x595fc1(0x19c)](_0x417d24,_0x5b11ab){const a0_0x1732cb={_0x474f0e:0x1a5,_0x29ee88:0x1a5},_0x560f63=a0_0x595fc1;this[_0x560f63(a0_0x1732cb._0x474f0e)]&&this[_0x560f63(a0_0x1732cb._0x29ee88)]['registerButtonHandler'](_0x417d24,_0x5b11ab);}[a0_0x595fc1(0x181)](_0x18e9e9,_0x4c33e6){const a0_0x54753c={_0x12de7f:0x1a5},_0x4815dd=a0_0x595fc1;this['addonManager']&&this[_0x4815dd(a0_0x54753c._0x12de7f)]['registerModalHandler'](_0x18e9e9,_0x4c33e6);}['registerSelectMenuHandler'](_0x1b6896,_0x386bb6){const a0_0x29d631={_0x2d29c9:0x1a5},_0x236632=a0_0x595fc1;this[_0x236632(a0_0x29d631._0x2d29c9)]&&this[_0x236632(0x1a5)][_0x236632(0x14f)](_0x1b6896,_0x386bb6);}async[a0_0x595fc1(0x162)](_0x3f33ff){const a0_0xde5901={_0x4d64dc:0x151,_0x334d0f:0x150,_0x36fc64:0x198,_0x31810b:0x18f,_0x250794:0x177,_0x500304:0x17a,_0x4f49e5:0x11b,_0xa98634:0x1ad,_0x4c7609:0x1a8,_0xe70839:0x161,_0x5a4e66:0x167,_0x41355d:0x12a,_0xfe6fb5:0x11b,_0x1834a7:0x1ad,_0x53c34b:0x125,_0x1b228d:0x161,_0x1aa0c8:0x161},_0x33e09d=a0_0x595fc1,_0x2bc56d={'qiyXN':_0x33e09d(a0_0xde5901._0x4d64dc),'JWUJE':'✅\x20Main\x20Guild\x20commands\x20deployed\x20successfully.','KRUUp':function(_0x230966,_0x3004de){return _0x230966!==_0x3004de;},'FCZMn':_0x33e09d(a0_0xde5901._0x334d0f)};if(!_0x3f33ff||_0x3f33ff['length']===-0x15*0x119+0x17b4+0xa7*-0x1){this['logger'][_0x33e09d(a0_0xde5901._0x36fc64)](_0x33e09d(0x133));return;}if(this['container']['_degraded']||!this['telemetryManager'][_0x33e09d(0x18c)]()){if(Math['random']()<0xe1b+0x47a+-0x1295+0.5){this['logger'][_0x33e09d(0x198)](_0x33e09d(0x15d));return;}}try{const {slash:_0x3f5e19,user:_0x235637,message:_0x4efa79}=this[_0x33e09d(0x152)](_0x3f33ff),_0x40d1b0=this[_0x33e09d(0x15f)]['bot']['clientId'],_0x2e6e51=this[_0x33e09d(0x15f)]['bot'][_0x33e09d(0x19f)],_0x385180=this[_0x33e09d(0x15f)][_0x33e09d(0x166)][_0x33e09d(0x19b)];if(this['kythiaConfig']['env']===_0x33e09d(a0_0xde5901._0x31810b)){if(!_0x2e6e51){this[_0x33e09d(0x161)][_0x33e09d(0x170)](_0x2bc56d['qiyXN']);return;}this['logger']['info'](_0x33e09d(a0_0xde5901._0x250794)+_0x2e6e51+_0x33e09d(a0_0xde5901._0x500304)),await this[_0x33e09d(a0_0xde5901._0x4f49e5)][_0x33e09d(a0_0xde5901._0xa98634)](discord_js_1['Routes'][_0x33e09d(0x167)](_0x40d1b0,_0x2e6e51),{'body':_0x3f33ff}),this['logger']['info'](_0x33e09d(0x176));}else{const _0x27e702=[],_0x59ffc2=[];for(const _0x43e280 of _0x3f33ff){const _0x46a93f=_0x43e280['name'],_0x2781e9=this['client']['commands']['get'](_0x46a93f);_0x2781e9?.[_0x33e09d(a0_0xde5901._0x4c7609)]?_0x59ffc2['push'](_0x43e280):_0x27e702[_0x33e09d(0x1af)](_0x43e280);}this['logger'][_0x33e09d(0x198)]('🟢\x20Deploying\x20'+_0x27e702['length']+_0x33e09d(0x136)),await this['rest'][_0x33e09d(a0_0xde5901._0xa98634)](discord_js_1['Routes']['applicationCommands'](_0x40d1b0),{'body':_0x27e702}),this[_0x33e09d(a0_0xde5901._0xe70839)]['info'](_0x33e09d(0x149));_0x385180&&_0x59ffc2['length']>-0x77*0x16+0x10*-0x205+0x79*0x5a&&(this[_0x33e09d(a0_0xde5901._0xe70839)][_0x33e09d(0x198)]('🔒\x20Deploying\x20'+_0x59ffc2['length']+'\x20MAIN\x20GUILD\x20commands\x20to:\x20'+_0x385180+'...'),await this[_0x33e09d(0x11b)][_0x33e09d(0x1ad)](discord_js_1['Routes'][_0x33e09d(a0_0xde5901._0x5a4e66)](_0x40d1b0,_0x385180),{'body':_0x59ffc2}),this[_0x33e09d(0x161)]['info'](_0x2bc56d[_0x33e09d(0x14c)]));if(_0x2e6e51&&_0x2bc56d[_0x33e09d(a0_0xde5901._0x41355d)](_0x2e6e51,_0x385180)){this['logger'][_0x33e09d(0x198)](_0x33e09d(0x1a1)+_0x2e6e51+_0x33e09d(0x17a));try{await this[_0x33e09d(a0_0xde5901._0xfe6fb5)][_0x33e09d(a0_0xde5901._0x1834a7)](discord_js_1[_0x33e09d(0x164)]['applicationGuildCommands'](_0x40d1b0,_0x2e6e51),{'body':[]}),this['logger']['info'](_0x33e09d(a0_0xde5901._0x53c34b));}catch(_0x5c7159){this[_0x33e09d(0x161)]['warn']('⚠️\x20Dev\x20guild\x20cleanup\x20info:\x20'+_0x5c7159);}}}this['logger'][_0x33e09d(a0_0xde5901._0x36fc64)](_0x33e09d(0x144)+_0x3f33ff['length']),this[_0x33e09d(a0_0xde5901._0x1b228d)][_0x33e09d(0x198)](_0x33e09d(0x1b6)+_0x3f5e19),this['logger']['info']('⭕\x20User\x20Context\x20Menu:\x20'+_0x235637),this[_0x33e09d(a0_0xde5901._0xe70839)]['info'](_0x33e09d(0x14a)+_0x4efa79),this[_0x33e09d(a0_0xde5901._0x1aa0c8)][_0x33e09d(0x198)](_0x2bc56d['FCZMn']);}catch(_0x365ee9){this['logger']['error'](_0x33e09d(0x1b2),_0x365ee9);}}[a0_0x595fc1(0x152)](_0x3d120b){const a0_0x2d235e={_0x316bb8:0x1b1,_0x475bfc:0x1b7},_0xaf03d9=a0_0x595fc1,_0x3aa014={'slash':0x0,'user':0x0,'message':0x0};if(!Array[_0xaf03d9(a0_0x2d235e._0x316bb8)](_0x3d120b))return this[_0xaf03d9(0x161)]['warn'](_0xaf03d9(0x13d)),_0x3aa014;for(const _0x33c511 of _0x3d120b){switch(_0x33c511?.['type']){case 0x1462+0x10f0*-0x2+0xd7f:case undefined:_0x3aa014[_0xaf03d9(0x159)]++;break;case 0x5b+0x9d*0x6+-0x407:_0x3aa014[_0xaf03d9(a0_0x2d235e._0x475bfc)]++;break;case-0x355+0x217d+-0x1e25:_0x3aa014['message']++;break;}}return _0x3aa014;}[a0_0x595fc1(0x1b4)](_0x365fff){this['dbReadyHooks']['push'](_0x365fff);}[a0_0x595fc1(0x1a9)](_0x242a9f){const a0_0x26dc9f={_0x15ebaf:0x1af},_0x1337fa=a0_0x595fc1;this[_0x1337fa(0x11d)][_0x1337fa(a0_0x26dc9f._0x15ebaf)](_0x242a9f);}async['start'](){const a0_0x2c6757={_0x5d5512:0x168,_0x4199f3:0x19d,_0x45140f:0x118,_0xb7ad91:0x14e,_0x4f5a7a:0x143,_0x20af45:0x182,_0x40c0cd:0x17f,_0x54365e:0x182,_0x511409:0x14d,_0x4c0291:0x186,_0x3ded1b:0x16b,_0x17ee9a:0x16b,_0x2bf020:0x15f,_0x291a86:0x196,_0x1d3a10:0x169,_0x34dc5d:0x118,_0x573075:0x161,_0x3d541c:0x118,_0x5c3d2e:0x118,_0x4174a5:0x146,_0x8205b:0x18e,_0x5974e5:0x118,_0x23150e:0x118,_0x332def:0x16c,_0x273736:0x161,_0x27eb7c:0x161,_0x33dc6e:0x118,_0xd1c5e5:0x179,_0x20583d:0x15a,_0x11277a:0x12d,_0x11c820:0x193,_0x2afec1:0x13e,_0x171704:0x163,_0x128fac:0x186,_0x13e2e5:0x175,_0x20c1e5:0x186,_0x4dc580:0x1b8,_0x3f13ed:0x140,_0x5435a2:0x1a5,_0x234469:0x130,_0x37c892:0x198,_0x2f9911:0x182,_0x45abd2:0x161,_0x2c192f:0x182,_0x42ed8c:0x189,_0x205e2b:0x161,_0x3b176a:0x1ac,_0x25863a:0x115,_0xaeb472:0x161,_0x21dbad:0x1b8,_0x10db79:0x1c0,_0x5ee27f:0x172,_0x3cc660:0x198,_0x27e9d9:0x1b9,_0x2e7753:0x15c,_0x1f803e:0x15f},a0_0x13fd9b={_0x2dd49f:0x130,_0x2d962b:0x13c,_0x425100:0x15b,_0x342d4c:0x16a,_0x16e87e:0x198,_0x41fef8:0x11d},a0_0x16c4fc={_0x1c810b:0x161,_0x545d00:0x118,_0x4838e0:0x195},a0_0x49e62e={_0x293fd4:0x139,_0x53a9ed:0x184},_0x24ba86=a0_0x595fc1,_0x428ccb={'TApFc':function(_0xc58105,_0x2e998a){return _0xc58105-_0x2e998a;},'pTwIr':function(_0x49fb3f,_0x42d52e){return _0x49fb3f-_0x42d52e;},'GPzqn':_0x24ba86(a0_0x2c6757._0x5d5512),'ogbMx':'info','enTcn':function(_0x5dd8f3,_0x2386ed,_0x42f5ed){return _0x5dd8f3(_0x2386ed,_0x42f5ed);},'JQqVf':_0x24ba86(0x15e),'XaKZh':'Official\x20Github:\x20','UGMuZ':function(_0xec8e90,_0x3e5cce){return _0xec8e90+_0x3e5cce;},'cWdHE':function(_0x1a518b,_0x435e84){return _0x1a518b+_0x435e84;},'MLVOM':_0x24ba86(a0_0x2c6757._0x4199f3),'feFUu':'\x20\x20\x20-\x20IP\x20Address','AoOkK':'\x20\x20\x20-\x20Bot\x20Configuration','zROmj':'🚫\x20ACCESS\x20DENIED','zsqWr':'▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬','oKbpG':function(_0xbfdd95,_0x491cf8){return _0xbfdd95*_0x491cf8;},'TkJDk':_0x24ba86(0x11c),'eBAFr':_0x24ba86(a0_0x2c6757._0x45140f)},_0x102b94=(_0x415c41,_0x54cafb)=>new Promise((_0x2ea063,_0x4dc199)=>{const _0x3f91c7=_0x24ba86;figlet_1[_0x3f91c7(0x182)]['text'](_0x415c41,_0x54cafb,(_0x5d08f4,_0x54ef9f)=>{_0x5d08f4?_0x4dc199(_0x5d08f4):_0x2ea063(_0x54ef9f||'');});});try{const _0x5c5ee6=await _0x428ccb['enTcn'](_0x102b94,'KYTHIA',{'font':'ANSI\x20Shadow','horizontalLayout':_0x428ccb[_0x24ba86(a0_0x2c6757._0xb7ad91)],'verticalLayout':_0x24ba86(0x15e)}),_0x369420=[cli_color_1[_0x24ba86(0x182)][_0x24ba86(a0_0x2c6757._0x4f5a7a)]('Architected\x20by\x20kenndeclouv'),cli_color_1['default']['cyan'](_0x24ba86(0x190))+cli_color_1[_0x24ba86(0x182)]['underline']('https://dsc.gg/kythia'),cli_color_1[_0x24ba86(a0_0x2c6757._0x20af45)]['cyan'](_0x428ccb['XaKZh'])+cli_color_1['default']['underline']('https://github.com/kythia'),_0x428ccb['UGMuZ'](cli_color_1[_0x24ba86(a0_0x2c6757._0x20af45)][_0x24ba86(0x143)](_0x24ba86(0x191)),cli_color_1['default']['underline']('https://kythia.me')),'',cli_color_1['default']['cyanBright']('Kythia\x20Core\x20version:\x20'+package_json_1['version']),'',cli_color_1[_0x24ba86(a0_0x2c6757._0x20af45)][_0x24ba86(0x137)]('Respect\x20my\x20work\x20by\x20not\x20removing\x20the\x20credit')],_0x503bfb=_0x369420['map'](_0x30e412=>cli_color_1[_0x24ba86(0x182)][_0x24ba86(0x139)](_0x30e412)),_0x59b2e5=Math['max'](..._0x503bfb[_0x24ba86(0x14d)](_0x2a4ad3=>_0x2a4ad3[_0x24ba86(0x12f)])),_0xb82fc0=0x1ba2+0xda0+0xdbe*-0x3,_0x8fa152=_0x428ccb['cWdHE'](_0x59b2e5,_0xb82fc0*(0x20cb+-0x1f*-0x17+-0x2392)),_0x3c3eab=cli_color_1['default']['cyanBright']('═'),_0x16e67e=cli_color_1[_0x24ba86(0x182)][_0x24ba86(a0_0x2c6757._0x40c0cd)]('║'),_0x38fd0e=cli_color_1['default']['cyanBright']('╔'+_0x3c3eab[_0x24ba86(0x142)](_0x8fa152)+'╗'),_0x151aad=cli_color_1[_0x24ba86(a0_0x2c6757._0x54365e)]['cyanBright']('╚'+_0x3c3eab[_0x24ba86(0x142)](_0x8fa152)+'╝'),_0x5cc0ae=_0x16e67e+'\x20'['repeat'](_0x8fa152)+_0x16e67e,_0x436068=_0x5c5ee6[_0x24ba86(0x1a2)]('\x0a'),_0xe8e751=_0x436068[_0x24ba86(0x14d)](_0x4c96cf=>{const _0x23017a=_0x24ba86,_0x330446=cli_color_1['default'][_0x23017a(a0_0x49e62e._0x293fd4)](_0x4c96cf)[_0x23017a(0x12f)],_0x54ef58='\x20'[_0x23017a(0x142)](Math['max'](0x1f01+-0xa03+0x14fe*-0x1,Math[_0x23017a(a0_0x49e62e._0x53a9ed)](_0x428ccb['TApFc'](_0x8fa152,_0x330446)/(0x44*0xb+0x11dc+-0x14c6))));return _0x16e67e+_0x54ef58+cli_color_1[_0x23017a(0x182)]['cyanBright'](_0x4c96cf)+'\x20'['repeat'](_0x428ccb[_0x23017a(0x178)](_0x8fa152-_0x54ef58[_0x23017a(0x12f)],_0x330446))+_0x16e67e;})['join']('\x0a'),_0x200c6c=_0x369420[_0x24ba86(a0_0x2c6757._0x511409)]((_0x4e2a26,_0x2c18ff)=>{const _0x2e51a7=_0x24ba86,_0x25fc7f=_0x503bfb[_0x2c18ff],_0x412856='\x20'['repeat'](Math[_0x2e51a7(0x184)]((_0x8fa152-_0x25fc7f['length'])/(0x3*-0x9bd+-0x557+-0x4f0*-0x7)));return _0x16e67e+_0x412856+_0x4e2a26+'\x20'['repeat'](_0x428ccb[_0x2e51a7(0x178)](_0x8fa152,_0x412856['length'])-_0x25fc7f[_0x2e51a7(0x12f)])+_0x16e67e;})[_0x24ba86(a0_0x2c6757._0x4c0291)]('\x0a');console['log']('\x0a'+_0x38fd0e),console[_0x24ba86(0x16b)](_0x5cc0ae),console[_0x24ba86(a0_0x2c6757._0x3ded1b)](_0xe8e751),console['log'](_0x5cc0ae),console[_0x24ba86(a0_0x2c6757._0x17ee9a)](_0x200c6c),console[_0x24ba86(0x16b)](_0x5cc0ae),console[_0x24ba86(0x16b)](_0x151aad+'\x0a');}catch(_0x3ef766){this['logger']['error']('❌\x20Failed\x20to\x20render\x20figlet\x20banner:',_0x3ef766);}this[_0x24ba86(0x161)]['info']('🚀\x20Starting\x20kythia...');const _0x2c00b3=this[_0x24ba86(a0_0x2c6757._0x2bf020)][_0x24ba86(0x1c2)];if(!_0x2c00b3||!_0x2c00b3[_0x24ba86(a0_0x2c6757._0x291a86)]||!_0x2c00b3[_0x24ba86(0x13f)]){const _0x26fe0b='9|4|1|11|6|5|17|13|18|0|15|2|12|7|16|14|20|10|19|3|8'['split']('|');let _0x319ab5=0x389+0x2000+0x2389*-0x1;while(!![]){switch(_0x26fe0b[_0x319ab5++]){case'0':this['logger'][_0x24ba86(a0_0x2c6757._0x45140f)]('');continue;case'1':this['logger']['error'](_0x24ba86(a0_0x2c6757._0x1d3a10));continue;case'2':this['logger'][_0x24ba86(a0_0x2c6757._0x34dc5d)]('\x20\x20\x20Open\x20your\x20\x22kythia.config.js\x22\x20file\x20and\x20set:');continue;case'3':this['logger']['error'](_0x24ba86(0x169));continue;case'4':this[_0x24ba86(a0_0x2c6757._0x573075)]['error'](_0x428ccb[_0x24ba86(0x157)]);continue;case'5':this['logger'][_0x24ba86(0x118)]('We\x20collect\x20the\x20following\x20data\x20for\x20license\x20verification:');continue;case'6':this[_0x24ba86(a0_0x2c6757._0x573075)][_0x24ba86(0x118)]('');continue;case'7':this[_0x24ba86(0x161)][_0x24ba86(0x118)]('\x20\x20\x20\x20\x20\x20\x20acceptTOS:\x20true,');continue;case'8':process['exit'](-0x1*-0x215b+-0x1*0x22b+-0x1f2f);continue;case'9':this[_0x24ba86(0x161)][_0x24ba86(a0_0x2c6757._0x3d541c)]('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');continue;case'10':this[_0x24ba86(0x161)][_0x24ba86(a0_0x2c6757._0x5c3d2e)](_0x24ba86(a0_0x2c6757._0x4174a5));continue;case'11':this['logger']['error'](_0x24ba86(a0_0x2c6757._0x8205b));continue;case'12':this['logger'][_0x24ba86(0x118)](_0x24ba86(0x12c));continue;case'13':this[_0x24ba86(0x161)]['error']('\x20\x20\x20-\x20Hardware\x20Specification\x20(CPU/RAM)\x20for\x20HWID');continue;case'14':this[_0x24ba86(0x161)][_0x24ba86(a0_0x2c6757._0x5974e5)](_0x24ba86(0x1bf));continue;case'15':this[_0x24ba86(0x161)]['error'](_0x24ba86(0x199));continue;case'16':this['logger'][_0x24ba86(a0_0x2c6757._0x23150e)]('\x20\x20\x20\x20\x20\x20\x20dataCollection:\x20true');continue;case'17':this['logger']['error'](_0x428ccb[_0x24ba86(0x19e)]);continue;case'18':this['logger']['error'](_0x428ccb[_0x24ba86(0x14b)]);continue;case'19':this['logger']['error'](_0x24ba86(0x1ae));continue;case'20':this[_0x24ba86(a0_0x2c6757._0x573075)][_0x24ba86(0x118)]('');continue;}break;}}this['kythiaConfig']['sentry']?.['dsn']?(Sentry['init']({'dsn':this['kythiaConfig'][_0x24ba86(0x148)][_0x24ba86(a0_0x2c6757._0x332def)],'tracesSampleRate':0x1,'profilesSampleRate':0x1}),this['logger'][_0x24ba86(0x198)]('✔️\x20\x20Sentry\x20Error\x20Tracking\x20is\x20ACTIVE')):this[_0x24ba86(a0_0x2c6757._0x273736)]['warn']('🟠\x20Sentry\x20DSN\x20not\x20found\x20in\x20config.\x20Error\x20tracking\x20is\x20INACTIVE.');this['_checkRequiredConfig']();const _0x5cfaab=await this['telemetryManager']['verify']();this['container']['_degraded']=!_0x5cfaab;!_0x5cfaab&&(this['logger']['error'](_0x24ba86(0x169)),this['logger']['error'](_0x428ccb['zROmj']),this['logger']['error']('Your\x20license\x20key\x20is\x20missing,\x20invalid,\x20or\x20expired.'),this[_0x24ba86(a0_0x2c6757._0x27eb7c)][_0x24ba86(a0_0x2c6757._0x33dc6e)]('Please\x20verify\x20your\x20license\x20key\x20in\x20.env\x20or\x20contact\x20support\x20at:'),this[_0x24ba86(a0_0x2c6757._0x573075)][_0x24ba86(0x118)](_0x24ba86(a0_0x2c6757._0xd1c5e5)),this['logger']['error'](_0x428ccb['zsqWr']),this[_0x24ba86(0x161)][_0x24ba86(0x170)](_0x24ba86(a0_0x2c6757._0x20583d)),setTimeout(()=>{const _0x4aa4e8=_0x24ba86;this[_0x4aa4e8(a0_0x16c4fc._0x1c810b)][_0x4aa4e8(a0_0x16c4fc._0x545d00)](_0x428ccb[_0x4aa4e8(a0_0x16c4fc._0x4838e0)]),process['exit'](0xe76*0x1+-0x1*-0xfd5+-0x1*0x1e4a);},_0x428ccb['oKbpG'](0x16f4+-0x1810+-0xd*-0x16,0x198+-0x11*-0x209+-0x23f5)*(-0xd88+0x25a+0x1*0xf16)));_0x5cfaab&&(this['telemetryManager'][_0x24ba86(0x18b)](),this['telemetryManager']['startAutoFlush'](),this['telemetryManager']['report']('info',_0x24ba86(a0_0x2c6757._0x11277a)+package_json_1[_0x24ba86(a0_0x2c6757._0x11c820)]+')',{'node':process[_0x24ba86(a0_0x2c6757._0x11c820)],'platform':process[_0x24ba86(0x1bd)],'cwd':process['cwd']()}));try{const _0x193980=!process['argv'][_0x24ba86(a0_0x2c6757._0x2afec1)](_0x24ba86(a0_0x2c6757._0x171704));this['logger']['info']('▬▬▬▬▬▬▬▬▬▬▬[\x20Translator\x20System\x20]▬▬▬▬▬▬▬▬▬▬▬');const _0x54a8e6=node_path_1['default'][_0x24ba86(a0_0x2c6757._0x128fac)](__dirname,'lang');this[_0x24ba86(a0_0x2c6757._0x13e2e5)]['loadLocalesFromDir'](_0x54a8e6);const _0x25d319=node_path_1[_0x24ba86(a0_0x2c6757._0x54365e)][_0x24ba86(a0_0x2c6757._0x20c1e5)](this[_0x24ba86(0x116)],'lang');this['translator']['loadLocalesFromDir'](_0x25d319),this[_0x24ba86(0x1b8)]['translator']=this['translator'],this[_0x24ba86(a0_0x2c6757._0x4dc580)]['t']=this[_0x24ba86(0x175)]['t']['bind'](this[_0x24ba86(0x175)]),this[_0x24ba86(0x161)][_0x24ba86(0x198)](_0x24ba86(a0_0x2c6757._0x3f13ed)),this[_0x24ba86(a0_0x2c6757._0x5435a2)]=new AddonManager_1[(_0x24ba86(a0_0x2c6757._0x20af45))]({'client':this[_0x24ba86(a0_0x2c6757._0x234469)],'container':this[_0x24ba86(a0_0x2c6757._0x4dc580)]});const _0x2ffd47=await this['addonManager']['loadAddons'](this);this['sequelize']?(this[_0x24ba86(a0_0x2c6757._0x27eb7c)][_0x24ba86(a0_0x2c6757._0x37c892)]('▬▬▬▬▬▬▬▬▬▬▬▬▬▬[\x20Connect\x20Database\x20]▬▬▬▬▬▬▬▬▬▬▬▬▬▬'),await this['sequelize'][_0x24ba86(0x1a0)](),await(-0x262c*-0x1+0x1*0x206d+0x35*-0x155,KythiaMigrator_1[_0x24ba86(a0_0x2c6757._0x2f9911)])({'sequelize':this['sequelize'],'container':this[_0x24ba86(0x1b8)],'logger':this[_0x24ba86(a0_0x2c6757._0x45abd2)]}),await(-0x19d5+-0x60c+0x1fe1*0x1,ModelLoader_1[_0x24ba86(a0_0x2c6757._0x2c192f)])(this,this[_0x24ba86(0x189)]),this[_0x24ba86(0x161)]['info'](_0x428ccb[_0x24ba86(0x147)]),KythiaModel_1[_0x24ba86(a0_0x2c6757._0x54365e)][_0x24ba86(0x171)](this[_0x24ba86(a0_0x2c6757._0x42ed8c)],this['client'])):this[_0x24ba86(a0_0x2c6757._0x205e2b)][_0x24ba86(0x170)]('⚠️\x20Sequelize\x20instance\x20not\x20provided.\x20Skipping\x20database\x20initialization.');const _0x584d74=this['addonManager'][_0x24ba86(0x141)]();this[_0x24ba86(a0_0x2c6757._0x3b176a)]=new EventManager_1[(_0x24ba86(0x182))]({'client':this[_0x24ba86(0x130)],'container':this['container'],'eventHandlers':_0x584d74[_0x24ba86(a0_0x2c6757._0x25863a)]}),this[_0x24ba86(0x1ac)]['initialize'](),this[_0x24ba86(a0_0x2c6757._0xaeb472)]['info'](_0x24ba86(0x17d));const _0x1f75de=new MiddlewareManager_1['default']({'container':this['container']});await _0x1f75de['loadMiddlewares'](),this[_0x24ba86(a0_0x2c6757._0x21dbad)]['middlewareManager']=_0x1f75de,this['interactionManager']=new InteractionManager_1['InteractionManager']({'client':this['client'],'container':this['container'],'handlers':_0x584d74}),this['interactionManager']['initialize'](),this[_0x24ba86(0x161)][_0x24ba86(0x198)](_0x24ba86(a0_0x2c6757._0x10db79)),_0x193980?await this['_deployCommands'](_0x2ffd47):this['logger']['info']('⏭️\x20\x20Skipping\x20command\x20deployment\x20because\x20--dev\x20flag\x20is\x20present.'),this['shutdownManager']=new ShutdownManager_1[(_0x24ba86(a0_0x2c6757._0x5ee27f))]({'client':this[_0x24ba86(a0_0x2c6757._0x234469)],'container':this['container']}),this['shutdownManager']['initialize'](),this['logger'][_0x24ba86(a0_0x2c6757._0x3cc660)](_0x24ba86(0x1a6)),this['client']['once']('clientReady',async _0x1fa76a=>{const _0x452cd1=_0x24ba86;this['logger']['info']('🌸\x20Logged\x20in\x20as\x20'+this[_0x452cd1(a0_0x13fd9b._0x2dd49f)]['user']?.['tag']),this['telemetryManager']['report'](_0x428ccb[_0x452cd1(a0_0x13fd9b._0x2d962b)],_0x452cd1(a0_0x13fd9b._0x425100)+_0x1fa76a['user']?.['tag'],{'guilds':_0x1fa76a['guilds']['cache']['size'],'users':_0x1fa76a[_0x452cd1(a0_0x13fd9b._0x342d4c)]['cache']['size']}),this[_0x452cd1(0x161)][_0x452cd1(a0_0x13fd9b._0x16e87e)]('🚀\x20Executing\x20'+this[_0x452cd1(a0_0x13fd9b._0x41fef8)]['length']+'\x20client-ready\x20hooks...');for(const _0x5e00bd of this['clientReadyHooks']){try{await _0x5e00bd(_0x1fa76a);}catch(_0x53766f){this['logger']['error'](_0x452cd1(0x1bc),_0x53766f);}}}),await this[_0x24ba86(0x130)][_0x24ba86(a0_0x2c6757._0x27e9d9)](this[_0x24ba86(0x15f)]['bot']['token']);}catch(_0x1d652b){this['logger']['error']('❌\x20Kythia\x20initialization\x20failed:',_0x1d652b);try{await this['telemetryManager']['report'](_0x428ccb['eBAFr'],_0x24ba86(a0_0x2c6757._0x2e7753),{'stack':_0x1d652b});}catch(_0x470e16){}this[_0x24ba86(a0_0x2c6757._0x1f803e)][_0x24ba86(0x148)]?.['dsn']&&Sentry['captureException'](_0x1d652b),process[_0x24ba86(0x192)](-0x12e3+-0xbbe*-0x2+-0x498);}}}module[a0_0x595fc1(0x1a4)]=Kythia;