kythia-core 0.12.6-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.
- package/dist/Kythia.d.ts.map +1 -1
- package/dist/Kythia.js +1 -521
- package/dist/Kythia.js.map +1 -1
- package/dist/KythiaClient.js +1 -78
- package/dist/cli/Command.js +1 -16
- package/dist/cli/commands/AboutCommand.js +1 -114
- package/dist/cli/commands/CacheClearCommand.js +1 -97
- package/dist/cli/commands/DIGenerateCommand.js +1 -168
- package/dist/cli/commands/LangCheckCommand.js +1 -478
- package/dist/cli/commands/LangSyncCommand.js +1 -253
- package/dist/cli/commands/LangTranslateCommand.js +1 -224
- package/dist/cli/commands/MakeMigrationCommand.js +1 -55
- package/dist/cli/commands/MakeModelCommand.js +1 -56
- package/dist/cli/commands/MigrateCommand.js +1 -190
- package/dist/cli/commands/NamespaceCommand.js +1 -92
- package/dist/cli/commands/StructureCommand.js +1 -51
- package/dist/cli/commands/UpversionCommand.js +1 -68
- package/dist/cli/index.js +1 -43
- package/dist/cli/utils/db.js +1 -93
- package/dist/database/KythiaMigrator.js +1 -94
- package/dist/database/KythiaModel.js +1 -1128
- package/dist/database/KythiaSequelize.js +1 -99
- package/dist/database/KythiaStorage.js +1 -80
- package/dist/database/ModelLoader.js +1 -54
- package/dist/index.js +1 -36
- package/dist/lang/lang/en.json +85 -0
- package/dist/managers/AddonManager.js +1 -1097
- package/dist/managers/EventManager.js +1 -106
- package/dist/managers/InteractionManager.d.ts.map +1 -1
- package/dist/managers/InteractionManager.js +1 -482
- package/dist/managers/InteractionManager.js.map +1 -1
- package/dist/managers/MiddlewareManager.js +1 -106
- package/dist/managers/ShutdownManager.js +1 -179
- package/dist/managers/TelemetryManager.d.ts +7 -0
- package/dist/managers/TelemetryManager.d.ts.map +1 -1
- package/dist/managers/TelemetryManager.js +1 -201
- package/dist/managers/TelemetryManager.js.map +1 -1
- package/dist/managers/TranslatorManager.js +1 -145
- package/dist/middlewares/botPermissions.js +1 -28
- package/dist/middlewares/cooldown.js +1 -42
- package/dist/middlewares/isInMainGuild.js +1 -52
- package/dist/middlewares/ownerOnly.js +1 -24
- package/dist/middlewares/userPermissions.js +1 -28
- package/dist/structures/BaseCommand.js +1 -42
- package/dist/types/AddonManager.js +1 -3
- package/dist/types/DiscordHelpers.js +1 -3
- package/dist/types/EventManager.js +1 -3
- package/dist/types/InteractionManager.js +1 -3
- package/dist/types/KythiaClient.js +1 -3
- package/dist/types/KythiaConfig.js +1 -3
- package/dist/types/KythiaContainer.d.ts +1 -0
- package/dist/types/KythiaContainer.d.ts.map +1 -1
- package/dist/types/KythiaContainer.js +1 -3
- package/dist/types/KythiaLogger.js +1 -3
- package/dist/types/KythiaMigrator.js +1 -3
- package/dist/types/KythiaModel.js +1 -3
- package/dist/types/KythiaOptions.js +1 -3
- package/dist/types/KythiaSequelize.js +1 -3
- package/dist/types/KythiaStorage.js +1 -3
- package/dist/types/MiddlewareManager.js +1 -3
- package/dist/types/ModelLoader.js +1 -3
- package/dist/types/ShutdownManager.js +1 -3
- package/dist/types/TranslatorManager.js +1 -3
- package/dist/types/error.js +1 -3
- package/dist/types/index.js +1 -29
- package/dist/utils/InteractionFactory.js +1 -334
- package/dist/utils/color.js +1 -156
- package/dist/utils/discord.js +1 -19
- package/dist/utils/formatter.js +1 -89
- package/dist/utils/index.js +1 -56
- package/dist/utils/logger.js +1 -204
- package/package.json +5 -2
package/dist/Kythia.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,521 +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.telemetryManager = new TelemetryManager_1.TelemetryManager({
|
|
108
|
-
licenseKey: this.kythiaConfig.licenseKey,
|
|
109
|
-
logger: this.logger,
|
|
110
|
-
version: package_json_1.version,
|
|
111
|
-
config: this.kythiaConfig,
|
|
112
|
-
});
|
|
113
|
-
this.container = {
|
|
114
|
-
client: this.client,
|
|
115
|
-
sequelize: this.sequelize,
|
|
116
|
-
logger: this.logger,
|
|
117
|
-
redis: this.redis,
|
|
118
|
-
kythiaConfig: this.kythiaConfig,
|
|
119
|
-
helpers: this.helpers,
|
|
120
|
-
appRoot: this.appRoot,
|
|
121
|
-
telemetry: this.telemetryManager,
|
|
122
|
-
t: async (_interaction, key) => key,
|
|
123
|
-
models: this.models,
|
|
124
|
-
};
|
|
125
|
-
this.translator = new TranslatorManager_1.default({ container: this.container });
|
|
126
|
-
this.container.translator = this.translator;
|
|
127
|
-
this.client.container = this.container;
|
|
128
|
-
this.client.cooldowns = new discord_js_1.Collection();
|
|
129
|
-
this.dbReadyHooks = [];
|
|
130
|
-
this.clientReadyHooks = [];
|
|
131
|
-
}
|
|
132
|
-
_checkRequiredConfig() {
|
|
133
|
-
const requiredBotConfig = [
|
|
134
|
-
['bot', 'token'],
|
|
135
|
-
['bot', 'clientId'],
|
|
136
|
-
['bot', 'clientSecret'],
|
|
137
|
-
];
|
|
138
|
-
const missingBotConfigs = [];
|
|
139
|
-
for (const pathArr of requiredBotConfig) {
|
|
140
|
-
let value = this.kythiaConfig;
|
|
141
|
-
for (const key of pathArr) {
|
|
142
|
-
value = value?.[key];
|
|
143
|
-
}
|
|
144
|
-
if (value === undefined || value === null || value === '') {
|
|
145
|
-
missingBotConfigs.push(pathArr.join('.'));
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
if (!this.kythiaConfig.db) {
|
|
149
|
-
this.kythiaConfig.db = {};
|
|
150
|
-
}
|
|
151
|
-
let driver = this.kythiaConfig.db.driver;
|
|
152
|
-
if (!driver || driver === '') {
|
|
153
|
-
this.kythiaConfig.db.driver = 'sqlite';
|
|
154
|
-
driver = 'sqlite';
|
|
155
|
-
this.logger.info('💡 DB driver not specified. Defaulting to: sqlite');
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
driver = driver.toLowerCase();
|
|
159
|
-
this.kythiaConfig.db.driver = driver;
|
|
160
|
-
}
|
|
161
|
-
if (driver === 'sqlite') {
|
|
162
|
-
if (!this.kythiaConfig.db.name || this.kythiaConfig.db.name === '') {
|
|
163
|
-
this.kythiaConfig.db.name = 'kythiadata.sqlite';
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
const requiredDbConfig = [
|
|
167
|
-
['db', 'driver'],
|
|
168
|
-
['db', 'name'],
|
|
169
|
-
];
|
|
170
|
-
if (driver !== 'sqlite') {
|
|
171
|
-
requiredDbConfig.push(['db', 'host'], ['db', 'port'], ['db', 'user'], ['db', 'pass']);
|
|
172
|
-
}
|
|
173
|
-
const missingDbConfigs = [];
|
|
174
|
-
for (const pathArr of requiredDbConfig) {
|
|
175
|
-
let value = this.kythiaConfig;
|
|
176
|
-
for (const key of pathArr) {
|
|
177
|
-
value = value?.[key];
|
|
178
|
-
}
|
|
179
|
-
if (value === undefined || value === null || value === '') {
|
|
180
|
-
missingDbConfigs.push(pathArr.join('.'));
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
const missingConfigs = missingBotConfigs.concat(missingDbConfigs);
|
|
184
|
-
if (missingConfigs.length > 0) {
|
|
185
|
-
this.logger.error('❌ Required configurations are not set:');
|
|
186
|
-
for (const missing of missingConfigs) {
|
|
187
|
-
this.logger.error(` - ${missing}`);
|
|
188
|
-
}
|
|
189
|
-
process.exit(1);
|
|
190
|
-
}
|
|
191
|
-
this.logger.info('✔️ All required configurations are set');
|
|
192
|
-
}
|
|
193
|
-
registerButtonHandler(customId, handler) {
|
|
194
|
-
if (this.addonManager) {
|
|
195
|
-
this.addonManager.registerButtonHandler(customId, handler);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
registerModalHandler(customIdPrefix, handler) {
|
|
199
|
-
if (this.addonManager) {
|
|
200
|
-
this.addonManager.registerModalHandler(customIdPrefix, handler);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
registerSelectMenuHandler(customIdPrefix, handler) {
|
|
204
|
-
if (this.addonManager) {
|
|
205
|
-
this.addonManager.registerSelectMenuHandler(customIdPrefix, handler);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
async _deployCommands(commands) {
|
|
209
|
-
if (!commands || commands.length === 0) {
|
|
210
|
-
this.logger.info('No commands to deploy.');
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
try {
|
|
214
|
-
const { slash, user, message } = this._getCommandCounts(commands);
|
|
215
|
-
const clientId = this.kythiaConfig.bot.clientId;
|
|
216
|
-
const devGuildId = this.kythiaConfig.bot.devGuildId;
|
|
217
|
-
const mainGuildId = this.kythiaConfig.bot.mainGuildId;
|
|
218
|
-
if (this.kythiaConfig.env === 'development') {
|
|
219
|
-
if (!devGuildId) {
|
|
220
|
-
this.logger.warn('⚠️ devGuildId not set in config. Skipping guild command deployment.');
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
this.logger.info(`🟠 Deploying to GUILD ${devGuildId}...`);
|
|
224
|
-
await this.rest.put(discord_js_1.Routes.applicationGuildCommands(clientId, devGuildId), { body: commands });
|
|
225
|
-
this.logger.info('✅ Guild commands deployed instantly!');
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
const globalCommands = [];
|
|
229
|
-
const mainGuildCommands = [];
|
|
230
|
-
for (const cmdJSON of commands) {
|
|
231
|
-
const cmdName = cmdJSON.name;
|
|
232
|
-
const originalCmd = this.client.commands.get(cmdName);
|
|
233
|
-
if (originalCmd?.mainGuildOnly) {
|
|
234
|
-
mainGuildCommands.push(cmdJSON);
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
globalCommands.push(cmdJSON);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
this.logger.info(`🟢 Deploying ${globalCommands.length} global commands...`);
|
|
241
|
-
await this.rest.put(discord_js_1.Routes.applicationCommands(clientId), {
|
|
242
|
-
body: globalCommands,
|
|
243
|
-
});
|
|
244
|
-
this.logger.info('✅ Global commands deployed successfully!');
|
|
245
|
-
if (mainGuildId && mainGuildCommands.length > 0) {
|
|
246
|
-
this.logger.info(`🔒 Deploying ${mainGuildCommands.length} MAIN GUILD commands to: ${mainGuildId}...`);
|
|
247
|
-
await this.rest.put(discord_js_1.Routes.applicationGuildCommands(clientId, mainGuildId), { body: mainGuildCommands });
|
|
248
|
-
this.logger.info('✅ Main Guild commands deployed successfully.');
|
|
249
|
-
}
|
|
250
|
-
if (devGuildId && devGuildId !== mainGuildId) {
|
|
251
|
-
this.logger.info(`🧹 Clearing lingering commands from dev guild: ${devGuildId}...`);
|
|
252
|
-
try {
|
|
253
|
-
await this.rest.put(discord_js_1.Routes.applicationGuildCommands(clientId, devGuildId), { body: [] });
|
|
254
|
-
this.logger.info('✅ Dev guild commands cleaned up.');
|
|
255
|
-
}
|
|
256
|
-
catch (e) {
|
|
257
|
-
this.logger.warn(`⚠️ Dev guild cleanup info: ${e}`);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
this.logger.info(`⭕ All Slash Commands: ${commands.length}`);
|
|
262
|
-
this.logger.info(`⭕ Top Level Slash Commands: ${slash}`);
|
|
263
|
-
this.logger.info(`⭕ User Context Menu: ${user}`);
|
|
264
|
-
this.logger.info(`⭕ Message Context Menu: ${message}`);
|
|
265
|
-
this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
266
|
-
}
|
|
267
|
-
catch (err) {
|
|
268
|
-
this.logger.error('❌ Failed to deploy slash commands:', err);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
_getCommandCounts(commandJsonArray) {
|
|
272
|
-
const counts = { slash: 0, user: 0, message: 0 };
|
|
273
|
-
if (!Array.isArray(commandJsonArray)) {
|
|
274
|
-
this.logger.warn('commandJsonArray is not iterable. Returning zero counts.');
|
|
275
|
-
return counts;
|
|
276
|
-
}
|
|
277
|
-
for (const cmd of commandJsonArray) {
|
|
278
|
-
switch (cmd?.type) {
|
|
279
|
-
case 1:
|
|
280
|
-
case undefined:
|
|
281
|
-
counts.slash++;
|
|
282
|
-
break;
|
|
283
|
-
case 2:
|
|
284
|
-
counts.user++;
|
|
285
|
-
break;
|
|
286
|
-
case 3:
|
|
287
|
-
counts.message++;
|
|
288
|
-
break;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
return counts;
|
|
292
|
-
}
|
|
293
|
-
addDbReadyHook(callback) {
|
|
294
|
-
this.dbReadyHooks.push(callback);
|
|
295
|
-
}
|
|
296
|
-
addClientReadyHook(callback) {
|
|
297
|
-
this.clientReadyHooks.push(callback);
|
|
298
|
-
}
|
|
299
|
-
async start() {
|
|
300
|
-
const figletText = (text, opts) => new Promise((resolve, reject) => {
|
|
301
|
-
figlet_1.default.text(text, opts, (err, data) => {
|
|
302
|
-
if (err) {
|
|
303
|
-
reject(err);
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
306
|
-
resolve(data || '');
|
|
307
|
-
}
|
|
308
|
-
});
|
|
309
|
-
});
|
|
310
|
-
try {
|
|
311
|
-
const data = await figletText('KYTHIA', {
|
|
312
|
-
font: 'ANSI Shadow',
|
|
313
|
-
horizontalLayout: 'full',
|
|
314
|
-
verticalLayout: 'full',
|
|
315
|
-
});
|
|
316
|
-
const infoLines = [
|
|
317
|
-
cli_color_1.default.cyan('Architected by kenndeclouv'),
|
|
318
|
-
cli_color_1.default.cyan('Discord Support: ') + cli_color_1.default.underline('https://dsc.gg/kythia'),
|
|
319
|
-
cli_color_1.default.cyan('Official Github: ') +
|
|
320
|
-
cli_color_1.default.underline('https://github.com/kythia'),
|
|
321
|
-
cli_color_1.default.cyan('Official Website: ') + cli_color_1.default.underline('https://kythia.me'),
|
|
322
|
-
'',
|
|
323
|
-
cli_color_1.default.cyanBright(`Kythia Core version: ${package_json_1.version}`),
|
|
324
|
-
'',
|
|
325
|
-
cli_color_1.default.yellowBright('Respect my work by not removing the credit'),
|
|
326
|
-
];
|
|
327
|
-
const rawInfoLines = infoLines.map((line) => cli_color_1.default.strip(line));
|
|
328
|
-
const infoMaxLen = Math.max(...rawInfoLines.map((l) => l.length));
|
|
329
|
-
const pad = 8;
|
|
330
|
-
const borderWidth = infoMaxLen + pad * 2;
|
|
331
|
-
const borderChar = cli_color_1.default.cyanBright('═');
|
|
332
|
-
const sideChar = cli_color_1.default.cyanBright('║');
|
|
333
|
-
const topBorder = cli_color_1.default.cyanBright(`╔${borderChar.repeat(borderWidth)}╗`);
|
|
334
|
-
const bottomBorder = cli_color_1.default.cyanBright(`╚${borderChar.repeat(borderWidth)}╝`);
|
|
335
|
-
const emptyLine = sideChar + ' '.repeat(borderWidth) + sideChar;
|
|
336
|
-
const figletLines = data.split('\n');
|
|
337
|
-
const centeredFigletInBorder = figletLines
|
|
338
|
-
.map((line) => {
|
|
339
|
-
const rawLen = cli_color_1.default.strip(line).length;
|
|
340
|
-
const spaces = ' '.repeat(Math.max(0, Math.floor((borderWidth - rawLen) / 2)));
|
|
341
|
-
return (sideChar +
|
|
342
|
-
spaces +
|
|
343
|
-
cli_color_1.default.cyanBright(line) +
|
|
344
|
-
' '.repeat(borderWidth - spaces.length - rawLen) +
|
|
345
|
-
sideChar);
|
|
346
|
-
})
|
|
347
|
-
.join('\n');
|
|
348
|
-
const centeredInfo = infoLines
|
|
349
|
-
.map((line, idx) => {
|
|
350
|
-
const raw = rawInfoLines[idx];
|
|
351
|
-
const spaces = ' '.repeat(Math.floor((borderWidth - raw.length) / 2));
|
|
352
|
-
return (sideChar +
|
|
353
|
-
spaces +
|
|
354
|
-
line +
|
|
355
|
-
' '.repeat(borderWidth - spaces.length - raw.length) +
|
|
356
|
-
sideChar);
|
|
357
|
-
})
|
|
358
|
-
.join('\n');
|
|
359
|
-
console.log(`\n${topBorder}`);
|
|
360
|
-
console.log(emptyLine);
|
|
361
|
-
console.log(centeredFigletInBorder);
|
|
362
|
-
console.log(emptyLine);
|
|
363
|
-
console.log(centeredInfo);
|
|
364
|
-
console.log(emptyLine);
|
|
365
|
-
console.log(`${bottomBorder}\n`);
|
|
366
|
-
}
|
|
367
|
-
catch (err) {
|
|
368
|
-
this.logger.error('❌ Failed to render figlet banner:', err);
|
|
369
|
-
}
|
|
370
|
-
this.logger.info('🚀 Starting kythia...');
|
|
371
|
-
const legalConfig = this.kythiaConfig.legal;
|
|
372
|
-
if (!legalConfig || !legalConfig.acceptTOS || !legalConfig.dataCollection) {
|
|
373
|
-
this.logger.error('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
374
|
-
this.logger.error('🛑 ACTION REQUIRED: TERMS OF SERVICE AGREEMENT');
|
|
375
|
-
this.logger.error('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
376
|
-
this.logger.error('To use Kythia Core, you MUST accept our Terms of Service.');
|
|
377
|
-
this.logger.error('');
|
|
378
|
-
this.logger.error('We collect the following data for license verification:');
|
|
379
|
-
this.logger.error(' - IP Address');
|
|
380
|
-
this.logger.error(' - Hardware Specification (CPU/RAM) for HWID');
|
|
381
|
-
this.logger.error(' - Bot Configuration');
|
|
382
|
-
this.logger.error('');
|
|
383
|
-
this.logger.error('👉 HOW TO FIX:');
|
|
384
|
-
this.logger.error(' Open your "kythia.config.js" file and set:');
|
|
385
|
-
this.logger.error(' legal: {');
|
|
386
|
-
this.logger.error(' acceptTOS: true,');
|
|
387
|
-
this.logger.error(' dataCollection: true');
|
|
388
|
-
this.logger.error(' }');
|
|
389
|
-
this.logger.error('');
|
|
390
|
-
this.logger.error('By setting true, you agree to our Privacy Policy at:');
|
|
391
|
-
this.logger.error('https://kythia.me/privacy');
|
|
392
|
-
this.logger.error('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
393
|
-
process.exit(1);
|
|
394
|
-
}
|
|
395
|
-
if (this.kythiaConfig.sentry?.dsn) {
|
|
396
|
-
Sentry.init({
|
|
397
|
-
dsn: this.kythiaConfig.sentry.dsn,
|
|
398
|
-
tracesSampleRate: 1.0,
|
|
399
|
-
profilesSampleRate: 1.0,
|
|
400
|
-
});
|
|
401
|
-
this.logger.info('✔️ Sentry Error Tracking is ACTIVE');
|
|
402
|
-
}
|
|
403
|
-
else {
|
|
404
|
-
this.logger.warn('🟠 Sentry DSN not found in config. Error tracking is INACTIVE.');
|
|
405
|
-
}
|
|
406
|
-
this._checkRequiredConfig();
|
|
407
|
-
const isLicenseValid = await this.telemetryManager.verify();
|
|
408
|
-
if (!isLicenseValid) {
|
|
409
|
-
this.logger.error('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
410
|
-
this.logger.error('🚫 ACCESS DENIED');
|
|
411
|
-
this.logger.error('Your license key is missing, invalid, or expired.');
|
|
412
|
-
this.logger.error('Please verify your license key in .env or contact support at:');
|
|
413
|
-
this.logger.error('👉 https://dsc.gg/kythia');
|
|
414
|
-
this.logger.error('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
415
|
-
}
|
|
416
|
-
if (isLicenseValid) {
|
|
417
|
-
this.telemetryManager.startHeartbeat();
|
|
418
|
-
this.telemetryManager.startAutoFlush();
|
|
419
|
-
this.telemetryManager.report('info', `Bot Process Started (v${package_json_1.version})`, {
|
|
420
|
-
node: process.version,
|
|
421
|
-
platform: process.platform,
|
|
422
|
-
cwd: process.cwd(),
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
try {
|
|
426
|
-
const shouldDeploy = !process.argv.includes('--dev');
|
|
427
|
-
this.logger.info('▬▬▬▬▬▬▬▬▬▬▬[ Translator System ]▬▬▬▬▬▬▬▬▬▬▬');
|
|
428
|
-
const coreLangPath = node_path_1.default.join(__dirname, 'lang');
|
|
429
|
-
this.translator.loadLocalesFromDir(coreLangPath);
|
|
430
|
-
const userLangPath = node_path_1.default.join(this.appRoot, 'lang');
|
|
431
|
-
this.translator.loadLocalesFromDir(userLangPath);
|
|
432
|
-
this.container.translator = this.translator;
|
|
433
|
-
this.container.t = this.translator.t.bind(this.translator);
|
|
434
|
-
this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬[ Kythia Addons ]▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
435
|
-
this.addonManager = new AddonManager_1.default({
|
|
436
|
-
client: this.client,
|
|
437
|
-
container: this.container,
|
|
438
|
-
});
|
|
439
|
-
const allCommands = (await this.addonManager.loadAddons(this));
|
|
440
|
-
if (this.sequelize) {
|
|
441
|
-
this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬▬[ Connect Database ]▬▬▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
442
|
-
await this.sequelize.authenticate();
|
|
443
|
-
await (0, KythiaMigrator_1.default)({
|
|
444
|
-
sequelize: this.sequelize,
|
|
445
|
-
container: this.container,
|
|
446
|
-
logger: this.logger,
|
|
447
|
-
});
|
|
448
|
-
await (0, ModelLoader_1.default)(this, this.sequelize);
|
|
449
|
-
this.logger.info('🪝 Attaching Cache Hooks...');
|
|
450
|
-
KythiaModel_1.default.attachHooksToAllModels(this.sequelize, this.client);
|
|
451
|
-
}
|
|
452
|
-
else {
|
|
453
|
-
this.logger.warn('⚠️ Sequelize instance not provided. Skipping database initialization.');
|
|
454
|
-
}
|
|
455
|
-
const handlers = this.addonManager.getHandlers();
|
|
456
|
-
this.eventManager = new EventManager_1.default({
|
|
457
|
-
client: this.client,
|
|
458
|
-
container: this.container,
|
|
459
|
-
eventHandlers: handlers.eventHandlers,
|
|
460
|
-
});
|
|
461
|
-
this.eventManager.initialize();
|
|
462
|
-
this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬[ Middleware ]▬▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
463
|
-
const middlewareManager = new MiddlewareManager_1.default({
|
|
464
|
-
container: this.container,
|
|
465
|
-
});
|
|
466
|
-
await middlewareManager.loadMiddlewares();
|
|
467
|
-
this.container.middlewareManager = middlewareManager;
|
|
468
|
-
this.interactionManager = new InteractionManager_1.InteractionManager({
|
|
469
|
-
client: this.client,
|
|
470
|
-
container: this.container,
|
|
471
|
-
handlers: handlers,
|
|
472
|
-
});
|
|
473
|
-
this.interactionManager.initialize();
|
|
474
|
-
this.logger.info('▬▬▬▬▬▬▬▬▬▬▬▬▬[ Deploy Commands ]▬▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
475
|
-
if (shouldDeploy) {
|
|
476
|
-
await this._deployCommands(allCommands);
|
|
477
|
-
}
|
|
478
|
-
else {
|
|
479
|
-
this.logger.info('⏭️ Skipping command deployment because --dev flag is present.');
|
|
480
|
-
}
|
|
481
|
-
this.shutdownManager = new ShutdownManager_1.ShutdownManager({
|
|
482
|
-
client: this.client,
|
|
483
|
-
container: this.container,
|
|
484
|
-
});
|
|
485
|
-
this.shutdownManager.initialize();
|
|
486
|
-
this.logger.info('▬▬▬▬▬▬▬▬▬▬▬[ Systems Initializing ]▬▬▬▬▬▬▬▬▬▬▬▬');
|
|
487
|
-
this.client.once('clientReady', async (c) => {
|
|
488
|
-
this.logger.info(`🌸 Logged in as ${this.client.user?.tag}`);
|
|
489
|
-
this.telemetryManager.report('info', `Bot Client Ready: ${c.user?.tag}`, {
|
|
490
|
-
guilds: c.guilds.cache.size,
|
|
491
|
-
users: c.users.cache.size,
|
|
492
|
-
});
|
|
493
|
-
this.logger.info(`🚀 Executing ${this.clientReadyHooks.length} client-ready hooks...`);
|
|
494
|
-
for (const hook of this.clientReadyHooks) {
|
|
495
|
-
try {
|
|
496
|
-
await hook(c);
|
|
497
|
-
}
|
|
498
|
-
catch (error) {
|
|
499
|
-
this.logger.error('Failed to execute a client-ready hook:', error);
|
|
500
|
-
}
|
|
501
|
-
}
|
|
502
|
-
});
|
|
503
|
-
await this.client.login(this.kythiaConfig.bot.token);
|
|
504
|
-
}
|
|
505
|
-
catch (error) {
|
|
506
|
-
this.logger.error('❌ Kythia initialization failed:', error);
|
|
507
|
-
try {
|
|
508
|
-
await this.telemetryManager.report('error', `Startup Fatal Crash`, {
|
|
509
|
-
stack: error,
|
|
510
|
-
});
|
|
511
|
-
}
|
|
512
|
-
catch (_e) { }
|
|
513
|
-
if (this.kythiaConfig.sentry?.dsn) {
|
|
514
|
-
Sentry.captureException(error);
|
|
515
|
-
}
|
|
516
|
-
process.exit(1);
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
module.exports = Kythia;
|
|
521
|
-
//# 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;
|