UNPKG

music-start-pro

Version:

Music Start Pro is a discord bot that can play YouTube music by slash command.

567 lines (566 loc) 33.5 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.main = main; var discord_js_1 = require("discord.js"); var ytdl_core_1 = __importDefault(require("@distube/ytdl-core")); var musicInfo_1 = require("./musicInfo"); var util_1 = require("./util"); var bucket_1 = require("./bucket"); var commands_1 = require("./commands"); var language_json_1 = require("./language.json"); var fs = __importStar(require("node:fs")); var yaml_1 = __importDefault(require("yaml")); var node_path_1 = __importDefault(require("node:path")); var logFile = 'data.json'; function main(token, useLog) { var _this = this; // load buckets if (useLog) { console.log("The log file will be read/written at:", logFile); console.log("You can disable log file by -d or --disable-log"); bucket_1.Bucket.load(logFile); } else { console.log("Log file: disable"); bucket_1.Bucket.disableLog(); } var progressBarLen = 35; var client = new discord_js_1.Client({ intents: [discord_js_1.GatewayIntentBits.Guilds, discord_js_1.GatewayIntentBits.GuildMessages, discord_js_1.GatewayIntentBits.GuildVoiceStates] }); client.login(token); client.once(discord_js_1.Events.ClientReady, function (client) { var _a; console.log("Logged in as ".concat((_a = client.user) === null || _a === void 0 ? void 0 : _a.tag, "!")); }); client.on(discord_js_1.Events.GuildCreate, function (guild) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) { console.log("guild crated! ".concat(guild.id)); commands_1.Commands.register(guild); return [2 /*return*/]; }); }); }); client.on(discord_js_1.Events.Error, function (e) { console.log('client on error', e); }); client.on(discord_js_1.Events.InteractionCreate, function (interaction) { return __awaiter(_this, void 0, void 0, function () { var bucket, ids, currentPage, _a, url, res, info, currentState, query, e_1, description, index, index1, index2, index, offset, vol, batch, j, url, i, list, downloadListener_1, e_2, file, data, done, lang; var _b, _c, _d, _e, _f, _g, _h, _j; return __generator(this, function (_k) { switch (_k.label) { case 0: if (!interaction.guildId) return [2 /*return*/]; bucket = bucket_1.Bucket.find(interaction.guildId); if (!interaction.isButton()) return [3 /*break*/, 15]; ids = interaction.customId.split('-'); if (!(ids.length === 2 || ids.length === 3)) return [3 /*break*/, 10]; currentPage = parseInt(ids[1]); _a = ids[0]; switch (_a) { case 'next': return [3 /*break*/, 1]; case 'pre': return [3 /*break*/, 3]; case 'nextSearch': return [3 /*break*/, 5]; case 'preSearch': return [3 /*break*/, 7]; } return [3 /*break*/, 9]; case 1: return [4 /*yield*/, interaction.update(bucket.queue.showList(bucket.lang, bucket.queue.genericPage(currentPage + 1), false))]; case 2: _k.sent(); return [3 /*break*/, 9]; case 3: return [4 /*yield*/, interaction.update(bucket.queue.showList(bucket.lang, bucket.queue.genericPage(currentPage - 1), false))]; case 4: _k.sent(); return [3 /*break*/, 9]; case 5: return [4 /*yield*/, interaction.update(bucket.queue.showList(bucket.lang, bucket.queue.genericPage(currentPage + 1), true))]; case 6: _k.sent(); return [3 /*break*/, 9]; case 7: return [4 /*yield*/, interaction.update(bucket.queue.showList(bucket.lang, bucket.queue.genericPage(currentPage - 1), true))]; case 8: _k.sent(); return [3 /*break*/, 9]; case 9: return [3 /*break*/, 14]; case 10: if (!(ids.length === 1)) return [3 /*break*/, 14]; if (!(ids[0] === 'refresh')) return [3 /*break*/, 12]; return [4 /*yield*/, interaction.update(bucket.queue.showList(bucket.lang))]; case 11: _k.sent(); return [3 /*break*/, 14]; case 12: if (!(ids[0] === 'refreshSearch')) return [3 /*break*/, 14]; // search again bucket.queue.search(null); return [4 /*yield*/, interaction.update(bucket.queue.showList(bucket.lang, 0, true))]; case 13: _k.sent(); _k.label = 14; case 14: return [3 /*break*/, 124]; case 15: if (!interaction.isCommand()) return [3 /*break*/, 124]; if (!(interaction.commandName === 'attach')) return [3 /*break*/, 20]; commands_1.Commands.register(interaction.guild, bucket === null || bucket === void 0 ? void 0 : bucket.lang); if (!bucket.connect(interaction)) return [3 /*break*/, 17]; return [4 /*yield*/, interaction.reply("\u2606".concat(language_json_1.messages.hello[bucket.lang], " ").concat(util_1.Util.randomHappy(), " \u2606"))]; case 16: _k.sent(); return [3 /*break*/, 19]; case 17: return [4 /*yield*/, interaction.reply("".concat(language_json_1.messages.attach_fail[bucket.lang], " ").concat(util_1.Util.randomCry()))]; case 18: _k.sent(); _k.label = 19; case 19: return [3 /*break*/, 124]; case 20: if (!(interaction.commandName === 'detach')) return [3 /*break*/, 22]; bucket.player.pause(); bucket.disconnect(); return [4 /*yield*/, interaction.reply("".concat(language_json_1.messages.detach[bucket.lang], " ").concat(util_1.Util.randomHappy()))]; case 21: _k.sent(); return [3 /*break*/, 124]; case 22: if (!(interaction.commandName === 'append')) return [3 /*break*/, 31]; return [4 /*yield*/, interaction.deferReply()]; case 23: _k.sent(); url = (_b = interaction.options.get('youtube')) === null || _b === void 0 ? void 0 : _b.value; if (!(!ytdl_core_1.default.validateURL(url) && !ytdl_core_1.default.validateID(url))) return [3 /*break*/, 25]; return [4 /*yield*/, interaction.editReply(util_1.Util.createEmbedMessage(language_json_1.messages.error[bucket.lang], "".concat(language_json_1.messages.song_is_not_found[bucket.lang], " ").concat(util_1.Util.randomCry()), true))]; case 24: _k.sent(); return [2 /*return*/]; case 25: return [4 /*yield*/, ytdl_core_1.default.getInfo(url)]; case 26: res = _k.sent(); info = musicInfo_1.MusicInfo.fromDetails(res); if (!(info !== null)) return [3 /*break*/, 28]; bucket.queue.add(info); return [4 /*yield*/, interaction.editReply(new discord_js_1.MessagePayload(interaction, util_1.Util.createEmbedMessage(language_json_1.messages.appended_to_the_playlist[bucket.lang], info.title)))]; case 27: _k.sent(); return [3 /*break*/, 30]; case 28: return [4 /*yield*/, interaction.editReply(new discord_js_1.MessagePayload(interaction, util_1.Util.createEmbedMessage(language_json_1.messages.error[bucket.lang], "".concat(language_json_1.messages.song_is_not_found[bucket.lang], " ").concat(util_1.Util.randomCry()), true)))]; case 29: _k.sent(); _k.label = 30; case 30: return [3 /*break*/, 124]; case 31: if (!(interaction.commandName === 'pause' || interaction.commandName === 'resume')) return [3 /*break*/, 40]; if (!bucket.queue.isEmpty()) return [3 /*break*/, 33]; return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_empty_error[bucket.lang])]; case 32: _k.sent(); return [3 /*break*/, 39]; case 33: if (!(interaction.commandName === 'pause' && bucket.player.pause())) return [3 /*break*/, 35]; return [4 /*yield*/, interaction.reply(language_json_1.messages.paused[bucket.lang])]; case 34: _k.sent(); return [3 /*break*/, 39]; case 35: if (!(interaction.commandName === 'resume' && bucket.player.unpause())) return [3 /*break*/, 37]; return [4 /*yield*/, interaction.reply(language_json_1.messages.resume[bucket.lang])]; case 36: _k.sent(); return [3 /*break*/, 39]; case 37: return [4 /*yield*/, interaction.reply(new discord_js_1.MessagePayload(interaction, util_1.Util.createEmbedMessage(language_json_1.messages.error[bucket.lang], "".concat(language_json_1.messages.pause_error[bucket.lang], " ").concat(util_1.Util.randomCry()), true)))]; case 38: _k.sent(); _k.label = 39; case 39: return [3 /*break*/, 124]; case 40: if (!(interaction.commandName === 'stop')) return [3 /*break*/, 45]; if (!bucket.queue.isEmpty()) return [3 /*break*/, 42]; return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_empty_error[bucket.lang])]; case 41: _k.sent(); return [3 /*break*/, 44]; case 42: bucket.player.pause(); bucket.queue.jump(0); return [4 /*yield*/, interaction.reply(language_json_1.messages.stopped[bucket.lang])]; case 43: _k.sent(); _k.label = 44; case 44: return [3 /*break*/, 124]; case 45: if (!(interaction.commandName === 'repeat')) return [3 /*break*/, 52]; if (!bucket.queue.isEmpty()) return [3 /*break*/, 47]; return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_empty_error[bucket.lang])]; case 46: _k.sent(); return [3 /*break*/, 51]; case 47: currentState = bucket.toggleRepeat(); if (!currentState) return [3 /*break*/, 49]; return [4 /*yield*/, interaction.reply(language_json_1.messages.repeat_on[bucket.lang])]; case 48: _k.sent(); return [3 /*break*/, 51]; case 49: return [4 /*yield*/, interaction.reply(language_json_1.messages.repeat_off[bucket.lang])]; case 50: _k.sent(); _k.label = 51; case 51: return [3 /*break*/, 124]; case 52: if (!(interaction.commandName === 'list' || interaction.commandName === 'distinct')) return [3 /*break*/, 54]; if (interaction.commandName === 'distinct') { // remove duplicate songs and show list bucket.queue.removeDuplicate(); } return [4 /*yield*/, interaction.reply(new discord_js_1.MessagePayload(interaction, bucket.queue.showList(bucket.lang)))]; case 53: _k.sent(); return [3 /*break*/, 124]; case 54: if (!(interaction.commandName === 'search')) return [3 /*break*/, 60]; query = null; _k.label = 55; case 55: _k.trys.push([55, 56, , 58]); query = new RegExp((_c = interaction.options.get('regexp')) === null || _c === void 0 ? void 0 : _c.value, "i"); return [3 /*break*/, 58]; case 56: e_1 = _k.sent(); return [4 /*yield*/, interaction.reply(new discord_js_1.MessagePayload(interaction, util_1.Util.createEmbedMessage(language_json_1.messages.error[bucket.lang], "Invalid Regular Expression ".concat(util_1.Util.randomCry(), "\n").concat(e_1), true)))]; case 57: _k.sent(); return [2 /*return*/]; case 58: bucket.queue.search(query); return [4 /*yield*/, interaction.reply(new discord_js_1.MessagePayload(interaction, bucket.queue.showList(bucket.lang, 0, true)))]; case 59: _k.sent(); return [3 /*break*/, 124]; case 60: if (!(interaction.commandName === 'current')) return [3 /*break*/, 64]; description = "Volume: ".concat(bucket.volume, "\n"); description += "Is playing: ".concat(bucket.playing ? "yes" : "no", "\n"); description += "Number of songs: ".concat(bucket.queue.len); return [4 /*yield*/, interaction.reply(new discord_js_1.MessagePayload(interaction, util_1.Util.createEmbedMessage("current", description)))]; case 61: _k.sent(); if (!bucket.playing) return [3 /*break*/, 63]; return [4 /*yield*/, interaction.followUp(new discord_js_1.MessagePayload(interaction, util_1.Util.createMusicInfoMessage(bucket.queue.current)))]; case 62: _k.sent(); _k.label = 63; case 63: return [3 /*break*/, 124]; case 64: if (!(interaction.commandName === 'jump' || interaction.commandName === 'go')) return [3 /*break*/, 69]; if (!bucket.queue.isEmpty()) return [3 /*break*/, 66]; return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_empty_error[bucket.lang])]; case 65: _k.sent(); return [2 /*return*/]; case 66: return [4 /*yield*/, interaction.deferReply()]; case 67: _k.sent(); index = (_d = interaction.options.get('index')) === null || _d === void 0 ? void 0 : _d.value; bucket.queue.jump(index); return [4 /*yield*/, bucket.playAndEditReplyDefault(bucket.queue.current, interaction)]; case 68: _k.sent(); return [3 /*break*/, 124]; case 69: if (!(interaction.commandName === 'swap')) return [3 /*break*/, 73]; if (!bucket.queue.isEmpty()) return [3 /*break*/, 71]; return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_empty_error[bucket.lang])]; case 70: _k.sent(); return [2 /*return*/]; case 71: index1 = (_e = interaction.options.get('index1')) === null || _e === void 0 ? void 0 : _e.value; index2 = (_f = interaction.options.get('index2')) === null || _f === void 0 ? void 0 : _f.value; bucket.queue.swap(index1, index2); return [4 /*yield*/, interaction.reply("Done!")]; case 72: _k.sent(); return [3 /*break*/, 124]; case 73: if (!(interaction.commandName === 'remove')) return [3 /*break*/, 79]; if (!bucket.queue.isEmpty()) return [3 /*break*/, 75]; return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_empty_error[bucket.lang])]; case 74: _k.sent(); return [2 /*return*/]; case 75: index = (_g = interaction.options.get('index')) === null || _g === void 0 ? void 0 : _g.value; if (!bucket.queue.remove(index, bucket.playing)) return [3 /*break*/, 77]; return [4 /*yield*/, interaction.reply(new discord_js_1.MessagePayload(interaction, util_1.Util.createEmbedMessage(language_json_1.messages.success[bucket.lang], "".concat(language_json_1.messages.removed_successfully[bucket.lang], " ").concat(util_1.Util.randomHappy()))))]; case 76: _k.sent(); return [2 /*return*/]; case 77: return [4 /*yield*/, interaction.reply(new discord_js_1.MessagePayload(interaction, util_1.Util.createEmbedMessage(language_json_1.messages.error[bucket.lang], "".concat(language_json_1.messages.cannot_remove_the_playing_song[bucket.lang], " ").concat(util_1.Util.randomCry()), true)))]; case 78: _k.sent(); return [3 /*break*/, 124]; case 79: if (!(interaction.commandName === 'clear')) return [3 /*break*/, 81]; if (bucket.playing) { bucket.player.stop(); } bucket.queue.removeAll(); bucket.store(); return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_reset[bucket.lang])]; case 80: _k.sent(); return [3 /*break*/, 124]; case 81: if (!(interaction.commandName === 'sort')) return [3 /*break*/, 85]; if (!bucket.queue.isEmpty()) return [3 /*break*/, 83]; return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_empty_error[bucket.lang])]; case 82: _k.sent(); return [2 /*return*/]; case 83: bucket.queue.sort(); return [4 /*yield*/, interaction.reply("".concat(language_json_1.messages.is_sorted[bucket.lang], " ").concat(util_1.Util.randomHappy()))]; case 84: _k.sent(); return [3 /*break*/, 124]; case 85: if (!(interaction.commandName === 'shuffle')) return [3 /*break*/, 87]; bucket.queue.shuffle(); return [4 /*yield*/, interaction.reply("".concat(language_json_1.messages.is_shuffled[bucket.lang], " ").concat(util_1.Util.randomHappy()))]; case 86: _k.sent(); return [3 /*break*/, 124]; case 87: if (!(interaction.commandName === 'next')) return [3 /*break*/, 92]; if (!bucket.queue.isEmpty()) return [3 /*break*/, 89]; return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_empty_error[bucket.lang])]; case 88: _k.sent(); return [2 /*return*/]; case 89: offset = 1; if (interaction.options.get("offset") != null) { offset = interaction.options.get("offset").value; } return [4 /*yield*/, interaction.deferReply()]; case 90: _k.sent(); bucket.queue.next(offset); return [4 /*yield*/, bucket.playAndEditReplyDefault(bucket.queue.current, interaction)]; case 91: _k.sent(); return [3 /*break*/, 124]; case 92: if (!(interaction.commandName === 'pre')) return [3 /*break*/, 97]; if (!bucket.queue.isEmpty()) return [3 /*break*/, 94]; return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_empty_error[bucket.lang])]; case 93: _k.sent(); return [2 /*return*/]; case 94: return [4 /*yield*/, interaction.deferReply()]; case 95: _k.sent(); bucket.queue.next(-1); return [4 /*yield*/, bucket.playAndEditReplyDefault(bucket.queue.current, interaction)]; case 96: _k.sent(); return [3 /*break*/, 124]; case 97: if (!(interaction.commandName === 'vol')) return [3 /*break*/, 99]; return [4 /*yield*/, interaction.deferReply()]; case 98: _k.sent(); if (interaction.options.get('volume') === null) { interaction.editReply("".concat(language_json_1.messages.current_volume[bucket.lang]).concat(bucket.volume, " ").concat(util_1.Util.randomHappy())); } else { vol = interaction.options.get('volume').value; if (vol < 0 || vol > 1) { interaction.editReply("".concat(language_json_1.messages.volume_format_error[bucket.lang], " ").concat(util_1.Util.randomCry())); } else { bucket.volume = vol; interaction.editReply("".concat(language_json_1.messages.volume_is_changed_to[bucket.lang], "\u3000").concat(vol, " ").concat(util_1.Util.randomHappy())); } } return [3 /*break*/, 124]; case 99: if (!(interaction.commandName === 'verbose')) return [3 /*break*/, 100]; bucket.verbose = (_h = interaction.options.get('truth')) === null || _h === void 0 ? void 0 : _h.value; interaction.reply(new discord_js_1.MessagePayload(interaction, util_1.Util.createEmbedMessage('verbose: ', bucket.verbose ? 'on' : 'off'))); return [3 /*break*/, 124]; case 100: if (!(interaction.commandName === 'json')) return [3 /*break*/, 115]; return [4 /*yield*/, interaction.deferReply()]; case 101: _k.sent(); if (!(interaction.options.get('json') === null)) return [3 /*break*/, 111]; batch = 100; if (!bucket.queue.isEmpty()) return [3 /*break*/, 103]; return [4 /*yield*/, interaction.reply(language_json_1.messages.playlist_is_empty[bucket.lang])]; case 102: _k.sent(); _k.label = 103; case 103: j = 0; _k.label = 104; case 104: if (!(j < bucket.queue.len / batch)) return [3 /*break*/, 110]; url = []; for (i = batch * j; i < Math.min(bucket.queue.len, batch * (j + 1)); i++) { url.push(bucket.queue.list[i].url.replace('https://www.youtube.com/watch?v=', '')); } if (!(j == 0)) return [3 /*break*/, 106]; return [4 /*yield*/, interaction.editReply('```\n' + JSON.stringify(url, null, '') + '\n```')]; case 105: _k.sent(); return [3 /*break*/, 109]; case 106: return [4 /*yield*/, interaction.followUp("".concat(j * batch, "~").concat(Math.min(bucket.queue.len, batch * (j + 1))))]; case 107: _k.sent(); return [4 /*yield*/, interaction.followUp('```\n' + JSON.stringify(url, null, '') + '\n```')]; case 108: _k.sent(); _k.label = 109; case 109: j++; return [3 /*break*/, 104]; case 110: return [3 /*break*/, 114]; case 111: _k.trys.push([111, 112, , 114]); list = JSON.parse(interaction.options.get('json').value); downloadListener_1 = util_1.Util.sequentialEnqueueWithBatchListener(); downloadListener_1.on('progress', function (current, all) { interaction.editReply('```yaml\n' + util_1.Util.progressBar(current, all, progressBarLen) + '\n```'); }); downloadListener_1.once('done', function (all, fail) { downloadListener_1.removeAllListeners(); interaction.editReply('```yaml\n' + util_1.Util.progressBar(all, all, progressBarLen) + ' ✅\n\n' + "\u2705: ".concat(all - fail, " \u274C: ").concat(fail) + '```'); }); downloadListener_1.once('error', function (e) { downloadListener_1.removeAllListeners(); interaction.editReply(util_1.Util.createEmbedMessage('Error sequentialEnQueueWithBatch()', "".concat(util_1.Util.randomCry(), "\n").concat(e), true)); }); util_1.Util.sequentialEnQueueWithBatch(list, bucket.queue, downloadListener_1); return [3 /*break*/, 114]; case 112: e_2 = _k.sent(); return [4 /*yield*/, interaction.editReply(util_1.Util.createEmbedMessage('Error JSON.parse()', "".concat(util_1.Util.randomCry(), "\n").concat(e_2), true))]; case 113: _k.sent(); return [2 /*return*/]; case 114: return [3 /*break*/, 124]; case 115: if (!(interaction.commandName === 'aqours' || interaction.commandName === 'llss' || interaction.commandName === 'genjitsu' || interaction.commandName === 'azalea' || interaction.commandName === 'muse' || interaction.commandName === 'liella' || interaction.commandName === 'nijigasaki' || interaction.commandName === 'q4' || interaction.commandName === 'hasunosora' || interaction.commandName === '5yncri5e')) return [3 /*break*/, 117]; file = fs.readFileSync(node_path_1.default.join(__dirname, "../recommend/".concat(interaction.commandName, ".yaml")), 'utf-8'); data = yaml_1.default.parse(file); done = ""; if (interaction.commandName === 'aqours' || interaction.commandName === 'llss' || interaction.commandName === 'genjitsu') { done = 'Aqours SunShine!'; } else if (interaction.commandName === 'azalea') { done = '恋の喜び咲かせます、AZALEAです! '; } else if (interaction.commandName === 'muse') { done = "μ's music start!"; } else if (interaction.commandName === 'liella') { done = 'Song for me, song for you, song for all!'; } return [4 /*yield*/, interaction.deferReply()]; case 116: _k.sent(); util_1.Util.enQueueCached(data.list, bucket.queue); interaction.editReply('```yaml\n' + util_1.Util.progressBar(data.list.length, data.list.length, 35) + ' ✅\n```' + "".concat(done)); return [3 /*break*/, 124]; case 117: if (!(interaction.commandName === 'lang')) return [3 /*break*/, 122]; lang = (_j = interaction.options.get('language')) === null || _j === void 0 ? void 0 : _j.value; if (!['zh', 'en'].includes(lang)) return [3 /*break*/, 119]; bucket.lang = lang; return [4 /*yield*/, interaction.reply(language_json_1.messages.language_changed_successfully[bucket.lang])]; case 118: _k.sent(); return [3 /*break*/, 121]; case 119: return [4 /*yield*/, interaction.reply("Should be either zh or en!")]; case 120: _k.sent(); _k.label = 121; case 121: return [3 /*break*/, 124]; case 122: return [4 /*yield*/, interaction.reply("Command not found")]; case 123: _k.sent(); _k.label = 124; case 124: return [2 /*return*/]; } }); }); }); }