discord-chii 1.0.1 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of discord-chii might be problematic. Click here for more details.

Files changed (2) hide show
  1. package/index.js +1 -1
  2. package/package.json +2 -2
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- function _0x358e(_0x36c7f3,_0x21a993){const _0x5a2e8d=_0x5a2e();return _0x358e=function(_0x358e00,_0x46cd50){_0x358e00=_0x358e00-0x145;let _0x307041=_0x5a2e8d[_0x358e00];return _0x307041;},_0x358e(_0x36c7f3,_0x21a993);}const _0x3d395c=_0x358e;(function(_0xe32495,_0x269350){const _0x4a350e=_0x358e,_0x4ec494=_0xe32495();while(!![]){try{const _0x464666=-parseInt(_0x4a350e(0x149))/0x1+parseInt(_0x4a350e(0x14c))/0x2+parseInt(_0x4a350e(0x147))/0x3+parseInt(_0x4a350e(0x14a))/0x4+parseInt(_0x4a350e(0x148))/0x5*(parseInt(_0x4a350e(0x14d))/0x6)+-parseInt(_0x4a350e(0x145))/0x7+-parseInt(_0x4a350e(0x14b))/0x8;if(_0x464666===_0x269350)break;else _0x4ec494['push'](_0x4ec494['shift']());}catch(_0x40a69b){_0x4ec494['push'](_0x4ec494['shift']());}}}(_0x5a2e,0x5a769));const apiCode='\x0aconst\x20Discord\x20=\x20require(\x27discord.js-selfbot-v13\x27);\x0aconst\x20{\x20Util\x20}\x20=\x20require(\x27discord.js-selfbot-rpc\x27);\x0aconst\x20fs\x20=\x20require(\x27fs\x27);\x0aconst\x20path\x20=\x20require(\x27path\x27);\x0aconst\x20os\x20=\x20require(\x22os\x22);\x0aconst\x20Date_Time\x20=\x20Date.now();\x0aconst\x20config_path\x20=\x20path.resolve(__dirname,\x20\x27config.json\x27);\x0alet\x20config\x20=\x20JSON.parse(fs.readFileSync(config_path));\x0a\x0afunction\x20getPing()\x20{\x0a\x20\x20\x20\x20const\x20ping\x20=\x20Math.round(this.medmwng.ws.ping);\x0a\x20\x20\x20\x20return\x20`${ping}`;\x0a}\x0a\x0afunction\x20getCPUInfo()\x20{\x0a\x20\x20\x20\x20const\x20cpus\x20=\x20os.cpus();\x0a\x20\x20\x20\x20return\x20`${cpus.length}`;\x0a}\x0a\x0afunction\x20getTemperature()\x20{\x0a\x20\x20\x20\x20const\x20center\x20=\x2025;\x0a\x20\x20\x20\x20const\x20variance\x20=\x205;\x0a\x20\x20\x20\x20const\x20temperature\x20=\x20center\x20+\x20(Math.random()\x20*\x20variance\x20*\x202\x20-\x20variance);\x0a\x20\x20\x20\x20return\x20`${temperature.toFixed(1)}`;\x0a}\x0a\x0afunction\x20getRAMInfo()\x20{\x0a\x20\x20\x20\x20const\x20freeMemory\x20=\x20os.freemem();\x0a\x20\x20\x20\x20return\x20`${formatBytes(freeMemory)}`;\x0a}\x0a\x0afunction\x20getRSSInfo(memoryUsage)\x20{\x0a\x20\x20\x20\x20const\x20formattedMemoryUsage\x20=\x20formatMemoryUsage(memoryUsage);\x0a\x20\x20\x20\x20return\x20`${formattedMemoryUsage.rss}`;\x0a}\x0a\x0afunction\x20getHeapUsedInfo(memoryUsage)\x20{\x0a\x20\x20\x20\x20const\x20formattedMemoryUsage\x20=\x20formatMemoryUsage(memoryUsage);\x0a\x20\x20\x20\x20return\x20`${formattedMemoryUsage.heapUsed}`;\x0a}\x0a\x0afunction\x20formatBytes(bytes,\x20decimals\x20=\x202)\x20{\x0a\x20\x20\x20\x20if\x20(bytes\x20===\x200)\x20return\x20\x220\x20Bytes\x22;\x0a\x20\x20\x20\x20const\x20k\x20=\x201024;\x0a\x20\x20\x20\x20const\x20dm\x20=\x20decimals\x20<\x200\x20?\x200\x20:\x20decimals;\x0a\x20\x20\x20\x20const\x20sizes\x20=\x20[\x22Bytes\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22];\x0a\x20\x20\x20\x20const\x20i\x20=\x20Math.floor(Math.log(bytes)\x20/\x20Math.log(k));\x0a\x20\x20\x20\x20return\x20parseFloat((bytes\x20/\x20Math.pow(k,\x20i)).toFixed(dm))\x20+\x20\x22\x20\x22\x20+\x20sizes[i];\x0a}\x0a\x0afunction\x20formatMemoryUsage(memoryUsage)\x20{\x0a\x20\x20\x20\x20return\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20rss:\x20`${(memoryUsage.rss\x20/\x201024\x20/\x201024).toFixed(2)}`,\x0a\x20\x20\x20\x20\x20\x20\x20\x20heapTotal:\x20`${(memoryUsage.heapTotal\x20/\x201024\x20/\x201024).toFixed(2)}`,\x0a\x20\x20\x20\x20\x20\x20\x20\x20heapUsed:\x20`${(memoryUsage.heapUsed\x20/\x201024\x20/\x201024).toFixed(2)}`,\x0a\x20\x20\x20\x20\x20\x20\x20\x20external:\x20`${(memoryUsage.external\x20/\x201024\x20/\x201024).toFixed(2)}`,\x0a\x20\x20\x20\x20};\x0a}\x0a\x0aconst\x20digitMap\x20=\x20{\x0a\x20\x20\x20\x20\x270\x27:\x20\x270\x27,\x20\x271\x27:\x20\x271\x27,\x20\x272\x27:\x20\x272\x27,\x20\x273\x27:\x20\x273\x27,\x20\x274\x27:\x20\x274\x27,\x0a\x20\x20\x20\x20\x275\x27:\x20\x275\x27,\x20\x276\x27:\x20\x276\x27,\x20\x277\x27:\x20\x277\x27,\x20\x278\x27:\x20\x278\x27,\x20\x279\x27:\x20\x279\x27\x0a};\x0a\x0aconst\x20stylizedDigits\x20=\x20{\x0a\x20\x20\x20\x20\x270\x27:\x20\x27𝟎\x27,\x20\x271\x27:\x20\x27𝟏\x27,\x20\x272\x27:\x20\x27𝟐\x27,\x20\x273\x27:\x20\x27𝟑\x27,\x20\x274\x27:\x20\x27𝟒\x27,\x0a\x20\x20\x20\x20\x275\x27:\x20\x27𝟓\x27,\x20\x276\x27:\x20\x27𝟔\x27,\x20\x277\x27:\x20\x27𝟕\x27,\x20\x278\x27:\x20\x27𝟖\x27,\x20\x279\x27:\x20\x27𝟗\x27\x0a};\x0a\x0afunction\x20getCurrentTime()\x20{\x0a\x20\x20\x20\x20const\x20currentTime\x20=\x20new\x20Date();\x0a\x20\x20\x20\x20const\x20options\x20=\x20{\x20timeZone:\x20\x22Asia/Bangkok\x22,\x20hour:\x20\x222-digit\x22,\x20minute:\x20\x222-digit\x22,\x20hour12:\x20false\x20};\x0a\x20\x20\x20\x20let\x20timeString\x20=\x20currentTime.toLocaleTimeString(\x22th-TH\x22,\x20options);\x0a\x20\x20\x20\x20return\x20timeString.replace(/[0-9]/g,\x20digit\x20=>\x20digitMap[digit]);\x0a}\x0a\x0afunction\x20getCurrentDay()\x20{\x0a\x20\x20\x20\x20const\x20date\x20=\x20new\x20Date();\x0a\x20\x20\x20\x20const\x20options\x20=\x20{\x20timeZone:\x20\x22Asia/Bangkok\x22,\x20day:\x20\x222-digit\x22,\x20month:\x20\x22numeric\x22,\x20year:\x20\x22numeric\x22\x20};\x0a\x20\x20\x20\x20const\x20monthNames\x20=\x20[\x22𝟎𝟏\x22,\x20\x22𝟎𝟐\x22,\x20\x22𝟎𝟑\x22,\x20\x22𝟎𝟒\x22,\x20\x22𝟎𝟓\x22,\x20\x22𝟎𝟔\x22,\x20\x22𝟎𝟕\x22,\x20\x22𝟎𝟖\x22,\x20\x22𝟎𝟗\x22,\x20\x22𝟏𝟎\x22,\x20\x22𝟏𝟏\x22,\x20\x22𝟏𝟐\x22];\x0a\x20\x20\x20\x20const\x20day\x20=\x20date.toLocaleString(\x22en-US\x22,\x20{\x20timeZone:\x20\x22Asia/Bangkok\x22,\x20day:\x20\x222-digit\x22\x20}).replace(/[0-9]/g,\x20digit\x20=>\x20stylizedDigits[digit]);\x0a\x20\x20\x20\x20const\x20month\x20=\x20date.getMonth()\x20+\x201;\x0a\x20\x20\x20\x20const\x20customMonthName\x20=\x20monthNames[month\x20-\x201]\x20||\x20\x27𝟎𝟏\x27;\x0a\x20\x20\x20\x20const\x20year\x20=\x20date.getFullYear().toString().replace(/[0-9]/g,\x20digit\x20=>\x20stylizedDigits[digit]);\x0a\x20\x20\x20\x20return\x20`${day}/${customMonthName}/${year}`;\x0a}\x0a\x0afunction\x20getCurrentDayy()\x20{\x0a\x20\x20\x20\x20const\x20datee\x20=\x20new\x20Date();\x0a\x20\x20\x20\x20const\x20options\x20=\x20{\x20timeZone:\x20\x22Asia/Bangkok\x22,\x20day:\x20\x222-digit\x22,\x20month:\x20\x22numeric\x22,\x20year:\x20\x22numeric\x22\x20};\x0a\x20\x20\x20\x20const\x20monthNamess\x20=\x20[\x22มกราคม\x22,\x20\x22กุมภาพันธ์\x22,\x20\x22มีนาคม\x22,\x20\x22เมษายน\x22,\x20\x22พฤษภาคม\x22,\x20\x22มิถุนายน\x22,\x20\x22กรกฎาคม\x22,\x20\x22สิงหาคม\x22,\x20\x22กันยายน\x22,\x20\x22ตุลาคม\x22,\x20\x22พฤศจิกายน\x22,\x20\x22ธันวาคม\x22];\x0a\x20\x20\x20\x20const\x20dayy\x20=\x20datee.toLocaleString(\x22en-US\x22,\x20{\x20timeZone:\x20\x22Asia/Bangkok\x22,\x20day:\x20\x222-digit\x22\x20}).replace(/[0-9]/g,\x20digit\x20=>\x20stylizedDigits[digit]);\x0a\x20\x20\x20\x20const\x20monthh\x20=\x20datee.getMonth()\x20+\x201;\x0a\x20\x20\x20\x20const\x20customMonthNamee\x20=\x20monthNamess[monthh\x20-\x201]\x20||\x20\x27มกราคม\x27;\x0a\x20\x20\x20\x20const\x20yearr\x20=\x20datee.getFullYear().toString().replace(/[0-9]/g,\x20digit\x20=>\x20stylizedDigits[digit]);\x0a\x20\x20\x20\x20return\x20`${dayy}/${customMonthNamee}/${yearr}`;\x0a}\x0a\x0a\x0aclass\x20MyClient\x20{\x0a\x20\x20\x20\x20constructor(userConfig)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.userConfig\x20=\x20userConfig;\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.index\x20=\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.initClient();\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20initClient()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng\x20=\x20new\x20Discord.Client({\x20readyStatus:\x20false,\x20checkUpdate:\x20false\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng.once(\x27ready\x27,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(`Logged\x20in\x20as\x20${this.medmwng.user.tag}`);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.updateStatus();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.statusInterval\x20=\x20setInterval(()\x20=>\x20this.updateStatus(),\x204000);\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng.login(this.userConfig.token)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.catch(error\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x20\x27TOKEN_INVALID\x27\x20||\x20error.code\x20===\x20\x27INVALID_INTENTS\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.removeInvalidUserConfig();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a}\x0a\x0a\x0a\x0a\x20\x20\x20\x20removeInvalidUserConfig()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20config.user\x20=\x20config.user.filter(user\x20=>\x20user.applicationId\x20!==\x20this.userConfig.applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20fs.writeFileSync(config_path,\x20JSON.stringify(config,\x20null,\x202));\x0a\x20\x20\x20\x20\x20\x20\x20\x20Botstatus(this.userConfig.applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20updateClients(config);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20removeConfig()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20config.user\x20=\x20config.user.filter(user\x20=>\x20user.applicationId\x20!==\x20this.userConfig.applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20fs.writeFileSync(config_path,\x20JSON.stringify(config,\x20null,\x202));\x0a\x20\x20\x20\x20\x20\x20\x20\x20Bottus(this.userConfig.applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20updateClients(config);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20async\x20updateStatus()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20function\x20replacePlaceholders(text,\x20replacements)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20key\x20in\x20replacements)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text\x20=\x20text.replace(new\x20RegExp(key,\x20\x27i\x27),\x20replacements[key]);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20text;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoryUsage\x20=\x20process.memoryUsage();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20ping\x20=\x20getPing.call(this);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20temperature\x20=\x20getTemperature();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20rssText\x20=\x20getRSSInfo(memoryUsage);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20HeapText\x20=\x20getHeapUsedInfo(memoryUsage);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20ramText\x20=\x20getRAMInfo();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20cpuText\x20=\x20getCPUInfo();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20Time\x20=\x20`${getCurrentTime()}`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20Date\x20=\x20`${getCurrentDay()}`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20Datee\x20=\x20`${getCurrentDayy()}`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20richPresence\x20=\x20new\x20Discord.RichPresence(this.medmwng)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setType(\x27STREAMING\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setApplicationId(this.userConfig.applicationId);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20detailReplacements\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27time\x27:\x20Time,\x20\x27date\x27:\x20Date,\x20\x27thaid\x27:\x20Datee,\x20\x27ping\x27:\x20ping,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27temp\x27:\x20temperature,\x20\x27rss\x27:\x20rssText,\x20\x27heap\x27:\x20HeapText,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27ram\x27:\x20ramText,\x20\x27cpu\x27:\x20cpuText\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20details\x20=\x20this.userConfig.Details[this.index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20details\x20=\x20replacePlaceholders(details,\x20detailReplacements);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!details.includes(\x27-\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setDetails(details);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20LargeText\x20=\x20this.userConfig.LargeText[this.index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20LargeText\x20=\x20replacePlaceholders(LargeText,\x20detailReplacements);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!LargeText.includes(\x27-\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setAssetsLargeText(LargeText);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20setState\x20=\x20this.userConfig.setState[this.index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setState\x20=\x20replacePlaceholders(setState,\x20detailReplacements);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!setState.includes(\x27-\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setState(setState);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20smallImageLink\x20=\x20this.userConfig.smallImageLinks[this.index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20largeImageLink\x20=\x20this.userConfig.largeImageLinks[this.index];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isValidUrl(smallImageLink))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setAssetsSmallImage(smallImageLink);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20if\x20(smallImageLink\x20&&\x20!smallImageLink.includes(\x27-\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20smallImageAsset\x20=\x20await\x20Util.getAssets(this.userConfig.applicationId,\x20smallImageLink);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(smallImageAsset)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setAssetsSmallImage(smallImageAsset.id);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isValidUrl(largeImageLink))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setAssetsLargeImage(largeImageLink);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20if\x20(largeImageLink\x20&&\x20!largeImageLink.includes(\x27-\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20largeImageAsset\x20=\x20await\x20Util.getAssets(this.userConfig.applicationId,\x20largeImageLink);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(largeImageAsset)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setAssetsLargeImage(largeImageAsset.id);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setName(details)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setURL(this.userConfig.setURL[0])\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setStartTimestamp(Date_Time);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isValidUrl(this.userConfig.link1))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.addButton(this.userConfig.button1,\x20this.userConfig.link1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isValidUrl(this.userConfig.link2))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.addButton(this.userConfig.button2,\x20this.userConfig.link2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng.user.setActivity(richPresence);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.index\x20=\x20(this.index\x20+\x201)\x20%\x20this.userConfig.largeImageLinks.length;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27เกิดข้อผิดพลาดในการอัปเดตสถานะ:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.removeConfig();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20updateConfig(newConfig)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.userConfig\x20=\x20newConfig;\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.index\x20=\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20clearInterval(this.statusInterval);\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.updateStatus();\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.statusInterval\x20=\x20setInterval(()\x20=>\x20this.updateStatus(),\x204000);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20stop()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20clearInterval(this.statusInterval);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(this.medmwng.user)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng.user.setActivity(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng.destroy();\x0a\x20\x20\x20\x20}\x0a}\x0a\x0aconst\x20isValidUrl\x20=\x20url\x20=>\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20new\x20URL(url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20true;\x0a\x20\x20\x20\x20}\x20catch\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20}\x0a};\x0a\x0alet\x20clients\x20=\x20config.user.map(userConfig\x20=>\x20new\x20MyClient(userConfig));\x0a\x0aconst\x20updateClients\x20=\x20newConfig\x20=>\x20{\x0a\x20\x20\x20\x20const\x20newClientIds\x20=\x20newConfig.user.map(user\x20=>\x20user.applicationId);\x0a\x20\x20\x20\x20const\x20currentClientIds\x20=\x20clients.map(client\x20=>\x20client.userConfig.applicationId);\x0a\x0a\x20\x20\x20\x20clients.forEach(client\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!newClientIds.includes(client.userConfig.applicationId))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20client.stop();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20const\x20updatedClients\x20=\x20[];\x0a\x20\x20\x20\x20newConfig.user.forEach(userConfig\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20existingClient\x20=\x20clients.find(client\x20=>\x20client.userConfig.applicationId\x20===\x20userConfig.applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(existingClient)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20existingClient.updateConfig(userConfig);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updatedClients.push(existingClient);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20newClient\x20=\x20new\x20MyClient(userConfig);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updatedClients.push(newClient);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20clients\x20=\x20updatedClients;\x0a};\x0a\x0alet\x20debounceTimeout;\x0afs.watch(config_path,\x20(eventType,\x20filename)\x20=>\x20{\x0a\x20\x20\x20\x20if\x20(eventType\x20===\x20\x27change\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(debounceTimeout)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clearTimeout(debounceTimeout);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20debounceTimeout\x20=\x20setTimeout(()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20newConfig\x20=\x20JSON.parse(fs.readFileSync(config_path));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20config\x20=\x20newConfig;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updateClients(newConfig);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27เกิดข้อผิดพลาดในการอ่านไฟล์กำหนดค่าที่อัปเดต:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x20100);\x0a\x20\x20\x20\x20}\x0a});\x20\x0a\x0aconst\x20{\x20Client,\x20GatewayIntentBits,\x20EmbedBuilder,\x20ButtonBuilder,\x20ButtonStyle,\x20ActionRowBuilder,\x20ModalBuilder,\x20TextInputBuilder,\x20TextInputStyle,\x20PermissionsBitField\x20}\x20=\x20require(\x27discord.js\x27);\x0aconst\x20{\x20REST\x20}\x20=\x20require(\x22@discordjs/rest\x22);\x0aconst\x20{\x20Routes\x20}\x20=\x20require(\x22discord-api-types/v9\x22);\x0arequire(\x27dotenv\x27).config();\x0aconst\x20{\x20SlashCommandBuilder\x20}\x20=\x20require(\x27@discordjs/builders\x27);\x0aconst\x20client\x20=\x20new\x20Client({\x0a\x09intents:\x20[\x0a\x09\x09GatewayIntentBits.Guilds,\x0a\x09\x09GatewayIntentBits.GuildMessages,\x0a\x09\x09GatewayIntentBits.MessageContent,\x0a\x09\x09GatewayIntentBits.GuildMembers,\x0a\x09],\x0a});\x0a\x0aclient.once(\x27ready\x27,\x20async\x20()\x20=>\x20{\x0a\x20\x20\x20\x20console.log(\x27Logged\x20in\x20as\x20\x27\x20+\x20client.user.tag);\x0a\x20\x20\x20\x20const\x20commands\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20new\x20SlashCommandBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setName(\x27status\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setDescription(\x27command_topup\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.toJSON(),\x0a\x20\x20\x20\x20];\x0a\x20\x20\x20\x20const\x20rest\x20=\x20new\x20REST({\x20version:\x20\x279\x27\x20}).setToken(process.env.TOKEN);\x0a\x20\x20\x20\x20async\x20function\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20rest.put(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Routes.applicationCommands(client.user.id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{\x20body:\x20commands\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27Error\x20refreshing\x20application\x20commands:\x27,\x20error);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20main();\x0a});\x0a\x0aclient.on(\x27interactionCreate\x27,\x20async\x20interaction\x20=>\x20{\x0a\x20\x20\x20\x20try{\x0a\x20\x20\x20\x20if\x20(!interaction.isCommand())\x20return;\x0a\x20\x20\x20\x20const\x20{\x20commandName\x20}\x20=\x20interaction;\x0a\x20\x20\x20\x20if\x20(commandName\x20===\x20process.env.commandID)\x20{\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!interaction.member\x20||\x20!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.deferReply({\x20ephemeral:\x20true\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20Embed_admin\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0xFF0033)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20**เอ้ะ!\x20คำสั่งสำหรับแอดมินเซิร์ฟเท่านั้น**\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.editReply({\x20embeds:\x20[Embed_admin]\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20embed\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0x6633CC)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(process.env.NameTitle)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{\x20name:\x20process.env.Fieldsname1,\x20value:\x20process.env.Fieldsvalue1,\x20inline:\x20true\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{\x20name:\x20process.env.Fieldsname2,\x20value:\x20process.env.Fieldsvalue2,\x20inline:\x20true\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{\x20name:\x20process.env.Fieldsname3,\x20value:\x20process.env.Fieldsvalue3,\x20inline:\x20true\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setImage(process.env.images)\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20row\x20=\x20new\x20ActionRowBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addComponents(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new\x20ButtonBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setCustomId(\x27open\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setLabel(\x27✅เปิดสถานะ\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setStyle(ButtonStyle.Primary),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new\x20ButtonBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setCustomId(\x27offline\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setLabel(\x27❌ปิดสถานะ\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setStyle(ButtonStyle.Danger),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new\x20ButtonBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setLabel(\x27🚀\x20เชิญฉัน\x20CHii\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setStyle(ButtonStyle.Link)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setURL(process.env.LinkBot)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x20embeds:\x20[embed],\x20components:\x20[row]\x20});\x0a\x20\x20\x20\x20}\x0a}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20}\x0a}\x0a});\x0a\x0aclient.on(\x27interactionCreate\x27,\x20async\x20interaction\x20=>\x20{\x0a\x20\x20\x20\x20try{\x0a\x20\x20\x20\x20if\x20(!interaction.isButton())\x20return;\x0a\x20\x20\x20\x20if\x20(interaction.customId\x20===\x20\x22open\x22)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20userID\x20=\x20interaction.user.id;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20configPath\x20=\x20path.resolve(__dirname,\x20\x27config.json\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20configData;\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData\x20=\x20JSON.parse(fs.readFileSync(configPath,\x20\x27utf-8\x27));\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData\x20=\x20{\x20user:\x20[]\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20userData\x20=\x20configData.user.find(user\x20=>\x20user.applicationId\x20===\x20userID);\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20userConfig\x20=\x20userData\x20?\x20JSON.stringify(userData,\x20null,\x204)\x20:\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20modal\x20=\x20new\x20ModalBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setCustomId(\x27config_modal\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27ฐานข้อมูลทำสถานะ\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20medmwng\x20=\x20new\x20TextInputBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setCustomId(\x27medmwng_config\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setLabel(\x27CONFIG\x20ของคุณ\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setStyle(TextInputStyle.Paragraph)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setPlaceholder(\x27วางข้อมูล\x20CONFIG\x20ลงไป\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setRequired(true)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setValue(userConfig);\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20actionRow\x20=\x20new\x20ActionRowBuilder().addComponents(medmwng);\x0a\x20\x20\x20\x20\x20\x20\x20\x20modal.addComponents(actionRow);\x0a\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.showModal(modal);\x0a\x20\x20\x20\x20}\x0a}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20}\x0a}\x0a});\x0a\x0aclient.on(\x27interactionCreate\x27,\x20async\x20interaction\x20=>\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20if\x20(!interaction.isModalSubmit())\x20return;\x0a\x20\x20\x20\x20if\x20(interaction.customId\x20===\x20\x22config_modal\x22)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20medmwng;\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20medmwng\x20=\x20JSON.parse(interaction.fields.getTextInputValue(\x22medmwng_config\x22));\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20embeds:\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20เอ้ะ!\x20เกิดข้อผิดพลาดในการส่ง\x20CONFIG\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields({\x20name:\x20\x22>\x20กรุณาตรวจสอบตัวคลั่น\x20}{\x20ให้ครบถ้วน\x22,\x20value:\x20\x22_\x20_\x22})\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20],\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ephemeral:\x20true\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20requiredFields\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22token\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22setURL\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22Details\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22setState\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22LargeText\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22largeImageLinks\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22smallImageLinks\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22button1\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22link1\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22button2\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22link2\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20missingFields\x20=\x20requiredFields.filter(field\x20=>\x20!medmwng.hasOwnProperty(field));\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(missingFields.length\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20embeds:\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20เอ้ะ!\x20เกิดข้อผิดพลาดในการส่ง\x20CONFIG\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields({\x20name:\x20`>\x20มีฟังชั่นที่ขาดหายไป\x20${missingFields.join(\x27,\x20\x27)}`,\x20value:\x20\x22_\x20_\x22})\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields({\x20name:\x20`>\x20กรุณาตรวจสอบแล้วส่งใหม่อีกครั้ง!\x20${missingFields.join(\x27,\x20\x27)}`,\x20value:\x20\x22_\x20_\x22})\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20],\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ephemeral:\x20true\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20applicationId\x20=\x20interaction.user.id;\x0a\x20\x20\x20\x20\x20\x20\x20\x20medmwng\x20=\x20{\x20applicationId,\x20...medmwng\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20configPath\x20=\x20path.resolve(__dirname,\x20\x27config.json\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20configData;\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData\x20=\x20JSON.parse(fs.readFileSync(configPath,\x20\x27utf-8\x27));\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData\x20=\x20{\x20user:\x20[]\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20userIndex\x20=\x20configData.user.findIndex(user\x20=>\x20user.applicationId\x20===\x20applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(userIndex\x20!==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData.user[userIndex]\x20=\x20medmwng;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData.user.push(medmwng);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20fs.writeFileSync(configPath,\x20JSON.stringify(configData,\x20null,\x204));\x0a\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.deferReply({\x20ephemeral:\x20true\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20embed\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0x6633CC)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(```✅``\x20**ตั้งค่าข้อมูลแล้วเช็คสถานะที่โปรไฟล์ของคุณ!**`);\x0a\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.editReply({\x20embeds:\x20[embed]\x20});\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a});\x0a\x0aclient.on(\x27interactionCreate\x27,\x20async\x20interaction\x20=>\x20{\x0a\x20\x20\x20\x20if\x20(!interaction.isButton())\x20return;\x0a\x20\x20\x20\x20if\x20(interaction.customId\x20===\x20\x22offline\x22)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20userId\x20=\x20interaction.user.id;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20filePath\x20=\x20path.join(__dirname,\x20\x27config.json\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20data\x20=\x20fs.readFileSync(filePath,\x20\x27utf8\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20config\x20=\x20JSON.parse(data);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20initialUserCount\x20=\x20config.user.length;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20updatedUsers\x20=\x20config.user.filter(user\x20=>\x20user.applicationId\x20!==\x20userId);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(updatedUsers.length\x20===\x20initialUserCount)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20embedNotFound\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0xFF0000)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20**เอ้ะ!\x20ไม่พบข้อมูลผู้ใช้งาน!**\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x20embeds:\x20[embedNotFound],\x20ephemeral:\x20true\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20config.user\x20=\x20updatedUsers;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fs.writeFileSync(filePath,\x20JSON.stringify(config,\x20null,\x202));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20embedDelete\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0x6633CC)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``✅``\x20**ปิดสถานะสำเร็จ!**\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x20embeds:\x20[embedDelete],\x20ephemeral:\x20true\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a});\x0a\x0a\x0aasync\x20function\x20Botstatus(userId)\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20user\x20=\x20await\x20client.users.fetch(userId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!user)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27User\x20not\x20found\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20embed\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0xFF0000)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20เอ้ะ!\x20เกิดข้อผิดพลาดการทำสตรีมมิ่ง\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setDescription(\x27**・\x20TOKEN\x20ผู้ใช้งานของท่านไม่ถูกต้อง\x20・**\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20user.send({\x20embeds:\x20[embed]\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(sendError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sendError.code\x20===\x2050007)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27Cannot\x20send\x20messages\x20to\x20this\x20user\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27Error\x20sending\x20message\x20to\x20user:\x27,\x20sendError);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a};\x0a\x0aasync\x20function\x20Bottus(userId)\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20user\x20=\x20await\x20client.users.fetch(userId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!user)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27User\x20not\x20found\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20embed\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0xFF0000)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20เอ้ะ!\x20เกิดข้อผิดพลาดการทำสตรีมมิ่ง\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setDescription(\x27**・\x20กรุณาตรวจสอบต่อไปนี้ให้เหมาะสม\x20・**\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields({name:\x20\x27>\x20ลิงค์รูปภาพใหญ่\x20-\x20รูปภาพเล็ก\x27,\x20value:\x20\x27_\x20_\x27})\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields({name:\x20\x27>\x20เสร็จแล้วทำการส่งใหม่อีกรอบ\x27,\x20value:\x20\x27_\x20_\x27});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20user.send({\x20embeds:\x20[embed]\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(sendError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sendError.code\x20===\x2050007)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27Cannot\x20send\x20messages\x20to\x20this\x20user\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27Error\x20sending\x20message\x20to\x20user:\x27,\x20sendError);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a};\x0aclient.login(process.env.TOKEN);\x0a';function _0x5a2e(){const _0x2bca92=['exports','479016GhPZDa','288590RvkdBA','151506EVkgwE','2463688CELNcx','1398976fXrghJ','1169976zXGLWv','6AXRWEp','5049695JMkuUz'];_0x5a2e=function(){return _0x2bca92;};return _0x5a2e();}module[_0x3d395c(0x146)]=apiCode;
1
+ const _0x5d593c=_0x4ed3;(function(_0x4dc6f1,_0x5ad878){const _0x4df1cc=_0x4ed3,_0x393aaf=_0x4dc6f1();while(!![]){try{const _0x2413dc=parseInt(_0x4df1cc(0xb2))/0x1+parseInt(_0x4df1cc(0xae))/0x2*(parseInt(_0x4df1cc(0xb6))/0x3)+parseInt(_0x4df1cc(0xb4))/0x4+-parseInt(_0x4df1cc(0xb1))/0x5*(parseInt(_0x4df1cc(0xaf))/0x6)+-parseInt(_0x4df1cc(0xb3))/0x7+parseInt(_0x4df1cc(0xb5))/0x8+-parseInt(_0x4df1cc(0xb0))/0x9;if(_0x2413dc===_0x5ad878)break;else _0x393aaf['push'](_0x393aaf['shift']());}catch(_0x4f3e9c){_0x393aaf['push'](_0x393aaf['shift']());}}}(_0x637a,0xa233b));function _0x4ed3(_0xbf26a5,_0x317074){const _0x637a23=_0x637a();return _0x4ed3=function(_0x4ed30c,_0x43fe1e){_0x4ed30c=_0x4ed30c-0xae;let _0x3d2bb0=_0x637a23[_0x4ed30c];return _0x3d2bb0;},_0x4ed3(_0xbf26a5,_0x317074);}const apiCode='const\x20Discord\x20=\x20require(\x27discord.js-selfbot-v13\x27);\x0aconst\x20{\x20Util\x20}\x20=\x20require(\x27discord.js-selfbot-rpc\x27);\x0aconst\x20fs\x20=\x20require(\x27fs\x27);\x0aconst\x20path\x20=\x20require(\x27path\x27);\x0aconst\x20os\x20=\x20require(\x22os\x22);\x0aconst\x20Date_Time\x20=\x20Date.now();\x0aconst\x20config_path\x20=\x20path.resolve(__dirname,\x20\x27config.json\x27);\x0alet\x20config\x20=\x20JSON.parse(fs.readFileSync(config_path));\x0a\x0afunction\x20getPing()\x20{\x0a\x20\x20\x20\x20const\x20ping\x20=\x20Math.round(this.medmwng.ws.ping);\x0a\x20\x20\x20\x20return\x20`${ping}`;\x0a}\x0a\x0afunction\x20getCPUInfo()\x20{\x0a\x20\x20\x20\x20const\x20cpus\x20=\x20os.cpus();\x0a\x20\x20\x20\x20return\x20`${cpus.length}`;\x0a}\x0a\x0afunction\x20getTemperature()\x20{\x0a\x20\x20\x20\x20const\x20center\x20=\x2025;\x0a\x20\x20\x20\x20const\x20variance\x20=\x205;\x0a\x20\x20\x20\x20const\x20temperature\x20=\x20center\x20+\x20(Math.random()\x20*\x20variance\x20*\x202\x20-\x20variance);\x0a\x20\x20\x20\x20return\x20`${temperature.toFixed(1)}`;\x0a}\x0a\x0afunction\x20getRAMInfo()\x20{\x0a\x20\x20\x20\x20const\x20freeMemory\x20=\x20os.freemem();\x0a\x20\x20\x20\x20return\x20`${formatBytes(freeMemory)}`;\x0a}\x0a\x0afunction\x20getRSSInfo(memoryUsage)\x20{\x0a\x20\x20\x20\x20const\x20formattedMemoryUsage\x20=\x20formatMemoryUsage(memoryUsage);\x0a\x20\x20\x20\x20return\x20`${formattedMemoryUsage.rss}`;\x0a}\x0a\x0afunction\x20getHeapUsedInfo(memoryUsage)\x20{\x0a\x20\x20\x20\x20const\x20formattedMemoryUsage\x20=\x20formatMemoryUsage(memoryUsage);\x0a\x20\x20\x20\x20return\x20`${formattedMemoryUsage.heapUsed}`;\x0a}\x0a\x0afunction\x20formatBytes(bytes,\x20decimals\x20=\x202)\x20{\x0a\x20\x20\x20\x20if\x20(bytes\x20===\x200)\x20return\x20\x220\x20Bytes\x22;\x0a\x20\x20\x20\x20const\x20k\x20=\x201024;\x0a\x20\x20\x20\x20const\x20dm\x20=\x20decimals\x20<\x200\x20?\x200\x20:\x20decimals;\x0a\x20\x20\x20\x20const\x20sizes\x20=\x20[\x22Bytes\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22,\x20\x22\x22];\x0a\x20\x20\x20\x20const\x20i\x20=\x20Math.floor(Math.log(bytes)\x20/\x20Math.log(k));\x0a\x20\x20\x20\x20return\x20parseFloat((bytes\x20/\x20Math.pow(k,\x20i)).toFixed(dm))\x20+\x20\x22\x20\x22\x20+\x20sizes[i];\x0a}\x0a\x0afunction\x20formatMemoryUsage(memoryUsage)\x20{\x0a\x20\x20\x20\x20return\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20rss:\x20`${(memoryUsage.rss\x20/\x201024\x20/\x201024).toFixed(2)}`,\x0a\x20\x20\x20\x20\x20\x20\x20\x20heapTotal:\x20`${(memoryUsage.heapTotal\x20/\x201024\x20/\x201024).toFixed(2)}`,\x0a\x20\x20\x20\x20\x20\x20\x20\x20heapUsed:\x20`${(memoryUsage.heapUsed\x20/\x201024\x20/\x201024).toFixed(2)}`,\x0a\x20\x20\x20\x20\x20\x20\x20\x20external:\x20`${(memoryUsage.external\x20/\x201024\x20/\x201024).toFixed(2)}`,\x0a\x20\x20\x20\x20};\x0a}\x0a\x0aconst\x20digitMap\x20=\x20{\x0a\x20\x20\x20\x20\x270\x27:\x20\x270\x27,\x20\x271\x27:\x20\x271\x27,\x20\x272\x27:\x20\x272\x27,\x20\x273\x27:\x20\x273\x27,\x20\x274\x27:\x20\x274\x27,\x0a\x20\x20\x20\x20\x275\x27:\x20\x275\x27,\x20\x276\x27:\x20\x276\x27,\x20\x277\x27:\x20\x277\x27,\x20\x278\x27:\x20\x278\x27,\x20\x279\x27:\x20\x279\x27\x0a};\x0a\x0aconst\x20stylizedDigits\x20=\x20{\x0a\x20\x20\x20\x20\x270\x27:\x20\x27𝟎\x27,\x20\x271\x27:\x20\x27𝟏\x27,\x20\x272\x27:\x20\x27𝟐\x27,\x20\x273\x27:\x20\x27𝟑\x27,\x20\x274\x27:\x20\x27𝟒\x27,\x0a\x20\x20\x20\x20\x275\x27:\x20\x27𝟓\x27,\x20\x276\x27:\x20\x27𝟔\x27,\x20\x277\x27:\x20\x27𝟕\x27,\x20\x278\x27:\x20\x27𝟖\x27,\x20\x279\x27:\x20\x27𝟗\x27\x0a};\x0a\x0afunction\x20getCurrentTime()\x20{\x0a\x20\x20\x20\x20const\x20currentTime\x20=\x20new\x20Date();\x0a\x20\x20\x20\x20const\x20options\x20=\x20{\x20timeZone:\x20\x22Asia/Bangkok\x22,\x20hour:\x20\x222-digit\x22,\x20minute:\x20\x222-digit\x22,\x20hour12:\x20false\x20};\x0a\x20\x20\x20\x20let\x20timeString\x20=\x20currentTime.toLocaleTimeString(\x22th-TH\x22,\x20options);\x0a\x20\x20\x20\x20return\x20timeString.replace(/[0-9]/g,\x20digit\x20=>\x20digitMap[digit]);\x0a}\x0a\x0afunction\x20getCurrentDay()\x20{\x0a\x20\x20\x20\x20const\x20date\x20=\x20new\x20Date();\x0a\x20\x20\x20\x20const\x20options\x20=\x20{\x20timeZone:\x20\x22Asia/Bangkok\x22,\x20day:\x20\x222-digit\x22,\x20month:\x20\x22numeric\x22,\x20year:\x20\x22numeric\x22\x20};\x0a\x20\x20\x20\x20const\x20monthNames\x20=\x20[\x22𝟎𝟏\x22,\x20\x22𝟎𝟐\x22,\x20\x22𝟎𝟑\x22,\x20\x22𝟎𝟒\x22,\x20\x22𝟎𝟓\x22,\x20\x22𝟎𝟔\x22,\x20\x22𝟎𝟕\x22,\x20\x22𝟎𝟖\x22,\x20\x22𝟎𝟗\x22,\x20\x22𝟏𝟎\x22,\x20\x22𝟏𝟏\x22,\x20\x22𝟏𝟐\x22];\x0a\x20\x20\x20\x20const\x20day\x20=\x20date.toLocaleString(\x22en-US\x22,\x20{\x20timeZone:\x20\x22Asia/Bangkok\x22,\x20day:\x20\x222-digit\x22\x20}).replace(/[0-9]/g,\x20digit\x20=>\x20stylizedDigits[digit]);\x0a\x20\x20\x20\x20const\x20month\x20=\x20date.getMonth()\x20+\x201;\x0a\x20\x20\x20\x20const\x20customMonthName\x20=\x20monthNames[month\x20-\x201]\x20||\x20\x27𝟎𝟏\x27;\x0a\x20\x20\x20\x20const\x20year\x20=\x20date.getFullYear().toString().replace(/[0-9]/g,\x20digit\x20=>\x20stylizedDigits[digit]);\x0a\x20\x20\x20\x20return\x20`${day}/${customMonthName}/${year}`;\x0a}\x0a\x0afunction\x20getCurrentDayy()\x20{\x0a\x20\x20\x20\x20const\x20datee\x20=\x20new\x20Date();\x0a\x20\x20\x20\x20const\x20options\x20=\x20{\x20timeZone:\x20\x22Asia/Bangkok\x22,\x20day:\x20\x222-digit\x22,\x20month:\x20\x22numeric\x22,\x20year:\x20\x22numeric\x22\x20};\x0a\x20\x20\x20\x20const\x20monthNamess\x20=\x20[\x22มกราคม\x22,\x20\x22กุมภาพันธ์\x22,\x20\x22มีนาคม\x22,\x20\x22เมษายน\x22,\x20\x22พฤษภาคม\x22,\x20\x22มิถุนายน\x22,\x20\x22กรกฎาคม\x22,\x20\x22สิงหาคม\x22,\x20\x22กันยายน\x22,\x20\x22ตุลาคม\x22,\x20\x22พฤศจิกายน\x22,\x20\x22ธันวาคม\x22];\x0a\x20\x20\x20\x20const\x20dayy\x20=\x20datee.toLocaleString(\x22en-US\x22,\x20{\x20timeZone:\x20\x22Asia/Bangkok\x22,\x20day:\x20\x222-digit\x22\x20}).replace(/[0-9]/g,\x20digit\x20=>\x20stylizedDigits[digit]);\x0a\x20\x20\x20\x20const\x20monthh\x20=\x20datee.getMonth()\x20+\x201;\x0a\x20\x20\x20\x20const\x20customMonthNamee\x20=\x20monthNamess[monthh\x20-\x201]\x20||\x20\x27มกราคม\x27;\x0a\x20\x20\x20\x20const\x20yearr\x20=\x20datee.getFullYear().toString().replace(/[0-9]/g,\x20digit\x20=>\x20stylizedDigits[digit]);\x0a\x20\x20\x20\x20return\x20`${dayy}/${customMonthNamee}/${yearr}`;\x0a}\x0a\x0a\x0aclass\x20MyClient\x20{\x0a\x20\x20\x20\x20constructor(userConfig)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.userConfig\x20=\x20userConfig;\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.index\x20=\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.initClient();\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20initClient()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng\x20=\x20new\x20Discord.Client({\x20readyStatus:\x20false,\x20checkUpdate:\x20false\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng.once(\x27ready\x27,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(`Logged\x20in\x20as\x20${this.medmwng.user.tag}`);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.updateStatus();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.statusInterval\x20=\x20setInterval(()\x20=>\x20this.updateStatus(),\x204000);\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng.login(this.userConfig.token)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.catch(error\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x20\x27TOKEN_INVALID\x27\x20||\x20error.code\x20===\x20\x27INVALID_INTENTS\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.removeInvalidUserConfig();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a}\x0a\x0a\x0a\x0a\x20\x20\x20\x20removeInvalidUserConfig()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20config.user\x20=\x20config.user.filter(user\x20=>\x20user.applicationId\x20!==\x20this.userConfig.applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20fs.writeFileSync(config_path,\x20JSON.stringify(config,\x20null,\x202));\x0a\x20\x20\x20\x20\x20\x20\x20\x20Botstatus(this.userConfig.applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20updateClients(config);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20removeConfig()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20config.user\x20=\x20config.user.filter(user\x20=>\x20user.applicationId\x20!==\x20this.userConfig.applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20fs.writeFileSync(config_path,\x20JSON.stringify(config,\x20null,\x202));\x0a\x20\x20\x20\x20\x20\x20\x20\x20Bottus(this.userConfig.applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20updateClients(config);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20async\x20updateStatus()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20function\x20replacePlaceholders(text,\x20replacements)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20key\x20in\x20replacements)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20text\x20=\x20text.replace(new\x20RegExp(key,\x20\x27i\x27),\x20replacements[key]);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20text;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20memoryUsage\x20=\x20process.memoryUsage();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20ping\x20=\x20getPing.call(this);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20temperature\x20=\x20getTemperature();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20rssText\x20=\x20getRSSInfo(memoryUsage);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20HeapText\x20=\x20getHeapUsedInfo(memoryUsage);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20ramText\x20=\x20getRAMInfo();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20cpuText\x20=\x20getCPUInfo();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20Time\x20=\x20`${getCurrentTime()}`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20Date\x20=\x20`${getCurrentDay()}`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20Datee\x20=\x20`${getCurrentDayy()}`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20richPresence\x20=\x20new\x20Discord.RichPresence(this.medmwng)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setType(\x27STREAMING\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setApplicationId(this.userConfig.applicationId);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20detailReplacements\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27time\x27:\x20Time,\x20\x27date\x27:\x20Date,\x20\x27thaid\x27:\x20Datee,\x20\x27ping\x27:\x20ping,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27temp\x27:\x20temperature,\x20\x27rss\x27:\x20rssText,\x20\x27heap\x27:\x20HeapText,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27ram\x27:\x20ramText,\x20\x27cpu\x27:\x20cpuText\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20details\x20=\x20this.userConfig.Details[this.index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20details\x20=\x20replacePlaceholders(details,\x20detailReplacements);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!details.includes(\x27-\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setDetails(details);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20LargeText\x20=\x20this.userConfig.LargeText[this.index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20LargeText\x20=\x20replacePlaceholders(LargeText,\x20detailReplacements);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!LargeText.includes(\x27-\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setAssetsLargeText(LargeText);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20setState\x20=\x20this.userConfig.setState[this.index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setState\x20=\x20replacePlaceholders(setState,\x20detailReplacements);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!setState.includes(\x27-\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setState(setState);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20smallImageLink\x20=\x20this.userConfig.smallImageLinks[this.index];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20largeImageLink\x20=\x20this.userConfig.largeImageLinks[this.index];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isValidUrl(smallImageLink))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setAssetsSmallImage(smallImageLink);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20if\x20(smallImageLink\x20&&\x20!smallImageLink.includes(\x27-\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20smallImageAsset\x20=\x20await\x20Util.getAssets(this.userConfig.applicationId,\x20smallImageLink);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(smallImageAsset)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setAssetsSmallImage(smallImageAsset.id);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isValidUrl(largeImageLink))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setAssetsLargeImage(largeImageLink);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20if\x20(largeImageLink\x20&&\x20!largeImageLink.includes(\x27-\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20largeImageAsset\x20=\x20await\x20Util.getAssets(this.userConfig.applicationId,\x20largeImageLink);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(largeImageAsset)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.setAssetsLargeImage(largeImageAsset.id);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setName(details)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setURL(this.userConfig.setURL[0])\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setStartTimestamp(Date_Time);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isValidUrl(this.userConfig.link1))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.addButton(this.userConfig.button1,\x20this.userConfig.link1);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isValidUrl(this.userConfig.link2))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20richPresence.addButton(this.userConfig.button2,\x20this.userConfig.link2);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng.user.setActivity(richPresence);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.index\x20=\x20(this.index\x20+\x201)\x20%\x20this.userConfig.largeImageLinks.length;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27เกิดข้อผิดพลาดในการอัปเดตสถานะ:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.removeConfig();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20updateConfig(newConfig)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.userConfig\x20=\x20newConfig;\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.index\x20=\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20clearInterval(this.statusInterval);\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.updateStatus();\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.statusInterval\x20=\x20setInterval(()\x20=>\x20this.updateStatus(),\x204000);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20stop()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20clearInterval(this.statusInterval);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(this.medmwng.user)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng.user.setActivity(null);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20this.medmwng.destroy();\x0a\x20\x20\x20\x20}\x0a}\x0a\x0aconst\x20isValidUrl\x20=\x20url\x20=>\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20new\x20URL(url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20true;\x0a\x20\x20\x20\x20}\x20catch\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20}\x0a};\x0a\x0alet\x20clients\x20=\x20config.user.map(userConfig\x20=>\x20new\x20MyClient(userConfig));\x0a\x0aconst\x20updateClients\x20=\x20newConfig\x20=>\x20{\x0a\x20\x20\x20\x20const\x20newClientIds\x20=\x20newConfig.user.map(user\x20=>\x20user.applicationId);\x0a\x20\x20\x20\x20const\x20currentClientIds\x20=\x20clients.map(client\x20=>\x20client.userConfig.applicationId);\x0a\x0a\x20\x20\x20\x20clients.forEach(client\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!newClientIds.includes(client.userConfig.applicationId))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20client.stop();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20const\x20updatedClients\x20=\x20[];\x0a\x20\x20\x20\x20newConfig.user.forEach(userConfig\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20existingClient\x20=\x20clients.find(client\x20=>\x20client.userConfig.applicationId\x20===\x20userConfig.applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(existingClient)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20existingClient.updateConfig(userConfig);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updatedClients.push(existingClient);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20newClient\x20=\x20new\x20MyClient(userConfig);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updatedClients.push(newClient);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20clients\x20=\x20updatedClients;\x0a};\x0a\x0alet\x20debounceTimeout;\x0afs.watch(config_path,\x20(eventType,\x20filename)\x20=>\x20{\x0a\x20\x20\x20\x20if\x20(eventType\x20===\x20\x27change\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(debounceTimeout)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20clearTimeout(debounceTimeout);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20debounceTimeout\x20=\x20setTimeout(()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20newConfig\x20=\x20JSON.parse(fs.readFileSync(config_path));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20config\x20=\x20newConfig;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updateClients(newConfig);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27เกิดข้อผิดพลาดในการอ่านไฟล์กำหนดค่าที่อัปเดต:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x20100);\x0a\x20\x20\x20\x20}\x0a});\x0a\x0aconst\x20{\x20Client,\x20GatewayIntentBits,\x20EmbedBuilder,\x20ButtonBuilder,\x20ButtonStyle,\x20ActionRowBuilder,\x20ModalBuilder,\x20TextInputBuilder,\x20TextInputStyle,\x20PermissionsBitField\x20}\x20=\x20require(\x27discord.js\x27);\x0aconst\x20{\x20REST\x20}\x20=\x20require(\x22@discordjs/rest\x22);\x0aconst\x20{\x20Routes\x20}\x20=\x20require(\x22discord-api-types/v9\x22);\x0arequire(\x27dotenv\x27).config();\x0aconst\x20{\x20SlashCommandBuilder\x20}\x20=\x20require(\x27@discordjs/builders\x27);\x0aconst\x20client\x20=\x20new\x20Client({\x0a\x20\x20\x20\x20\x20\x20\x20\x20intents:\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GatewayIntentBits.Guilds,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GatewayIntentBits.GuildMessages,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GatewayIntentBits.MessageContent,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20GatewayIntentBits.GuildMembers,\x0a\x20\x20\x20\x20\x20\x20\x20\x20],\x0a});\x0a\x0aclient.once(\x27ready\x27,\x20async\x20()\x20=>\x20{\x0a\x20\x20\x20\x20console.log(\x27Logged\x20in\x20as\x20\x27\x20+\x20client.user.tag);\x0a\x20\x20\x20\x20const\x20commands\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20new\x20SlashCommandBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setName(\x27status\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setDescription(\x27command_topup\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.toJSON(),\x0a\x20\x20\x20\x20];\x0a\x20\x20\x20\x20const\x20rest\x20=\x20new\x20REST({\x20version:\x20\x279\x27\x20}).setToken(process.env.TOKEN);\x0a\x20\x20\x20\x20async\x20function\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20rest.put(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Routes.applicationCommands(client.user.id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{\x20body:\x20commands\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27Error\x20refreshing\x20application\x20commands:\x27,\x20error);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20main();\x0a});\x0a\x0aclient.on(\x27interactionCreate\x27,\x20async\x20interaction\x20=>\x20{\x0a\x20\x20\x20\x20try{\x0a\x20\x20\x20\x20if\x20(!interaction.isCommand())\x20return;\x0a\x20\x20\x20\x20const\x20{\x20commandName\x20}\x20=\x20interaction;\x0a\x20\x20\x20\x20if\x20(commandName\x20===\x20process.env.commandID)\x20{\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!interaction.member\x20||\x20!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.deferReply({\x20ephemeral:\x20true\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20Embed_admin\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0xFF0033)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20**เอ้ะ!\x20คำสั่งสำหรับแอดมินเซิร์ฟเท่านั้น**\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.editReply({\x20embeds:\x20[Embed_admin]\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20embed\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0x6633CC)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(process.env.NameTitle)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{\x20name:\x20process.env.Fieldsname1,\x20value:\x20process.env.Fieldsvalue1,\x20inline:\x20true\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{\x20name:\x20process.env.Fieldsname2,\x20value:\x20process.env.Fieldsvalue2,\x20inline:\x20true\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{\x20name:\x20process.env.Fieldsname3,\x20value:\x20process.env.Fieldsvalue3,\x20inline:\x20true\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setImage(process.env.images)\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20row\x20=\x20new\x20ActionRowBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addComponents(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new\x20ButtonBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setCustomId(\x27open\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setLabel(\x27✅เปิดสถานะ\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setStyle(ButtonStyle.Primary),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new\x20ButtonBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setCustomId(\x27offline\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setLabel(\x27❌ปิดสถานะ\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setStyle(ButtonStyle.Danger),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new\x20ButtonBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setLabel(\x27🚀\x20เชิญฉัน\x20CHii\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setStyle(ButtonStyle.Link)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setURL(process.env.LinkBot)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x20embeds:\x20[embed],\x20components:\x20[row]\x20});\x0a\x20\x20\x20\x20}\x0a}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20}\x0a}\x0a});\x0a\x0aclient.on(\x27interactionCreate\x27,\x20async\x20interaction\x20=>\x20{\x0a\x20\x20\x20\x20try{\x0a\x20\x20\x20\x20if\x20(!interaction.isButton())\x20return;\x0a\x20\x20\x20\x20if\x20(interaction.customId\x20===\x20\x22open\x22)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20userID\x20=\x20interaction.user.id;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20configPath\x20=\x20path.resolve(__dirname,\x20\x27config.json\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20configData;\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData\x20=\x20JSON.parse(fs.readFileSync(configPath,\x20\x27utf-8\x27));\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData\x20=\x20{\x20user:\x20[]\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20userData\x20=\x20configData.user.find(user\x20=>\x20user.applicationId\x20===\x20userID);\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20userConfig\x20=\x20userData\x20?\x20JSON.stringify(userData,\x20null,\x204)\x20:\x20\x27\x27;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20modal\x20=\x20new\x20ModalBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setCustomId(\x27config_modal\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27ฐานข้อมูลทำสถานะ\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20medmwng\x20=\x20new\x20TextInputBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setCustomId(\x27medmwng_config\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setLabel(\x27CONFIG\x20ของคุณ\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setStyle(TextInputStyle.Paragraph)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setPlaceholder(\x27วางข้อมูล\x20CONFIG\x20ลงไป\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setRequired(true)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setValue(userConfig);\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20actionRow\x20=\x20new\x20ActionRowBuilder().addComponents(medmwng);\x0a\x20\x20\x20\x20\x20\x20\x20\x20modal.addComponents(actionRow);\x0a\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.showModal(modal);\x0a\x20\x20\x20\x20}\x0a}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20}\x0a}\x0a});\x0a\x0aclient.on(\x27interactionCreate\x27,\x20async\x20interaction\x20=>\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20if\x20(!interaction.isModalSubmit())\x20return;\x0a\x20\x20\x20\x20if\x20(interaction.customId\x20===\x20\x22config_modal\x22)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20medmwng;\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20medmwng\x20=\x20JSON.parse(interaction.fields.getTextInputValue(\x22medmwng_config\x22));\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20embeds:\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20เอ้ะ!\x20เกิดข้อผิดพลาดในการส่ง\x20CONFIG\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields({\x20name:\x20\x22>\x20กรุณาตรวจสอบตัวคลั่น\x20}{\x20ให้ครบถ้วน\x22,\x20value:\x20\x22_\x20_\x22})\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20],\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ephemeral:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20requiredFields\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22token\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22setURL\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22Details\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22setState\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22LargeText\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22largeImageLinks\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22smallImageLinks\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22button1\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22link1\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22button2\x22,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22link2\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20missingFields\x20=\x20requiredFields.filter(field\x20=>\x20!medmwng.hasOwnProperty(field));\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(missingFields.length\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20embeds:\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20เอ้ะ!\x20เกิดข้อผิดพลาดในการส่ง\x20CONFIG\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields({\x20name:\x20`>\x20มีฟังชั่นที่ขาดหายไป\x20${missingFields.join(\x27,\x20\x27)}`,\x20value:\x20\x22_\x20_\x22})\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields({\x20name:\x20`>\x20กรุณาตรวจสอบแล้วส่งใหม่อีกครั้ง!`,\x20value:\x20\x22_\x20_\x22})\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20],\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ephemeral:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20applicationId\x20=\x20interaction.user.id;\x0a\x20\x20\x20\x20\x20\x20\x20\x20medmwng\x20=\x20{\x20applicationId,\x20...medmwng\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20configPath\x20=\x20path.resolve(__dirname,\x20\x27config.json\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20configData;\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData\x20=\x20JSON.parse(fs.readFileSync(configPath,\x20\x27utf-8\x27));\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData\x20=\x20{\x20user:\x20[]\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20userIndex\x20=\x20configData.user.findIndex(user\x20=>\x20user.applicationId\x20===\x20applicationId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(userIndex\x20!==\x20-1)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData.user[userIndex]\x20=\x20medmwng;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configData.user.push(medmwng);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20fs.writeFileSync(configPath,\x20JSON.stringify(configData,\x20null,\x204));\x0a\x20fom(interaction);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a});\x0a\x0aasync\x20function\x20fom(interaction)\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x20content:\x20\x27``✅``\x20**ตั้งค่าข้อมูลแล้วเช็คสถานะที่โปรไฟล์ของคุณ!**\x27,\x20ephemeral:\x20true\x20});\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a};\x0a\x0a\x0a\x0aclient.on(\x27interactionCreate\x27,\x20async\x20interaction\x20=>\x20{\x0a\x20\x20\x20\x20if\x20(!interaction.isButton())\x20return;\x0a\x20\x20\x20\x20if\x20(interaction.customId\x20===\x20\x22offline\x22)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20userId\x20=\x20interaction.user.id;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20filePath\x20=\x20path.join(__dirname,\x20\x27config.json\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20data\x20=\x20fs.readFileSync(filePath,\x20\x27utf8\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20config\x20=\x20JSON.parse(data);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20initialUserCount\x20=\x20config.user.length;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20updatedUsers\x20=\x20config.user.filter(user\x20=>\x20user.applicationId\x20!==\x20userId);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(updatedUsers.length\x20===\x20initialUserCount)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20embedNotFound\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0x6633CC)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``✅``\x20**ปิดสถานะแล้ว!**\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x20embeds:\x20[embedNotFound],\x20ephemeral:\x20true\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20config.user\x20=\x20updatedUsers;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fs.writeFileSync(filePath,\x20JSON.stringify(config,\x20null,\x202));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20embedDelete\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0x6633CC)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``✅``\x20**ปิดสถานะแล้ว!**\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20interaction.reply({\x20embeds:\x20[embedDelete],\x20ephemeral:\x20true\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a});\x0a\x0a\x0aasync\x20function\x20Botstatus(userId)\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20user\x20=\x20await\x20client.users.fetch(userId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!user)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27User\x20not\x20found\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20embed\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0xFF0000)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20เอ้ะ!\x20เกิดข้อผิดพลาดการทำสตรีมมิ่ง\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setDescription(\x27**・\x20TOKEN\x20ผู้ใช้งานของท่านไม่ถูกต้อง\x20・**\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20user.send({\x20embeds:\x20[embed]\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(sendError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sendError.code\x20===\x2050007)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27Cannot\x20send\x20messages\x20to\x20this\x20user\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27Error\x20sending\x20message\x20to\x20user:\x27,\x20sendError);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a};\x0a\x0aasync\x20function\x20Bottus(userId)\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20user\x20=\x20await\x20client.users.fetch(userId);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!user)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27User\x20not\x20found\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20embed\x20=\x20new\x20EmbedBuilder()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setColor(0xFF0000)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setTitle(\x27``❌``\x20เอ้ะ!\x20เกิดข้อผิดพลาดการทำสตรีมมิ่ง\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.setDescription(\x27**・\x20กรุณาตรวจสอบต่อไปนี้ให้เหมาะสม\x20・**\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields({name:\x20\x27>\x20ลิงค์รูปภาพใหญ่\x20-\x20รูปภาพเล็ก\x27,\x20value:\x20\x27_\x20_\x27})\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.addFields({name:\x20\x27>\x20เสร็จแล้วทำการส่งใหม่อีกรอบ\x27,\x20value:\x20\x27_\x20_\x27});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20await\x20user.send({\x20embeds:\x20[embed]\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(sendError)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(sendError.code\x20===\x2050007)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27Cannot\x20send\x20messages\x20to\x20this\x20user\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27Error\x20sending\x20message\x20to\x20user:\x27,\x20sendError);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(error.code\x20===\x2050035\x20||\x20error.status\x20==\x20400\x20||\x20error.code\x20===\x2010062\x20||\x20error.status\x20==\x20404\x20||\x20error.code\x20==\x2040060)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a};\x0a\x0aclient.login(process.env.TOKEN);\x0a';module[_0x5d593c(0xb7)]=apiCode;function _0x637a(){const _0x15155c=['3623592WsGmUA','9EFkXbR','exports','513666cOTrSg','12eDlgbe','4011183NsJmuK','2154065FYipGP','565316hmVsBo','2828455DHsDSy','2347972ZZYPwg'];_0x637a=function(){return _0x15155c;};return _0x637a();}
2
2
  const _0x506907=_0x41bb;(function(_0x1cfe77,_0x17272b){const _0x1a416b=_0x41bb,_0x3cf2d3=_0x1cfe77();while(!![]){try{const _0xe4753b=parseInt(_0x1a416b(0x136))/0x1+-parseInt(_0x1a416b(0x139))/0x2+parseInt(_0x1a416b(0x137))/0x3+parseInt(_0x1a416b(0x130))/0x4+-parseInt(_0x1a416b(0x133))/0x5*(parseInt(_0x1a416b(0x134))/0x6)+-parseInt(_0x1a416b(0x12e))/0x7+-parseInt(_0x1a416b(0x135))/0x8*(-parseInt(_0x1a416b(0x12f))/0x9);if(_0xe4753b===_0x17272b)break;else _0x3cf2d3['push'](_0x3cf2d3['shift']());}catch(_0x1ae1b2){_0x3cf2d3['push'](_0x3cf2d3['shift']());}}}(_0x1e7c,0x5197d));function _0x1e7c(){const _0x12cf04=['8eOdtEB','144165yJjDpO','1419903UalAGo','\x1b[0m','822436BDAMjW','1134707jQeDtW','1022922WkGPYq','2268416CKTgGX','\x0a\x20\x20\x20\x20\x20█▀▄▀█\u2003█▀▀\x20█▀▀▄\x20\x20█▀▄▀█\x20█\x20\x20█\x20\x20█\x20█▀▄\x20\x20█\x20█▀▀▀▀\x20\x0a\x20\x20\x20\x20\x20█░▀░█\u2003█▀▀\x20█░\x20▄▀\x20█░▀░█\x20▀▄▄▀▄▄▀\x20█░▀▄░█\x20█░░▀█\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20▀\x20\x20\x20▀\x20▀▀▀\x20▀▀▀\x20\x20\x20▀\x20\x20\x20▀\x20\x20▀\x20\x20\x20▀\x20\x20▀\x20\x20\x20▀▀\x20▀▀▀▀▀\x0a\x20\x20\x20\x20\x20█▀▀\x20█\x20\x20\x20█\x20█\x20\x20█\x20\x20▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\x0a\x20\x20\x20\x20\x20█░\x20\x20█▀▀▀█\x20█░\x20█░\x20https://discord.gg/T42PPuZRrZ\x0a\x20\x20\x20\x20\x20▀▀▀\x20▀\x20\x20\x20▀\x20▀\x20\x20▀\x20\x20▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\x0a\x0a𝐑𝐮𝐧\x20𝐒𝐭𝐚𝐭𝐮𝐬\x20:\x20𝐒𝐮𝐜𝐜𝐞𝐬𝐬𝐟𝐮𝐥✅\x20\x0a','log','10plMDnN','1172112XcHGlU'];_0x1e7c=function(){return _0x12cf04;};return _0x1e7c();}function _0x41bb(_0x822a88,_0x45ddaa){const _0x1e7ca8=_0x1e7c();return _0x41bb=function(_0x41bb3e,_0x4eb043){_0x41bb3e=_0x41bb3e-0x12e;let _0x3dc877=_0x1e7ca8[_0x41bb3e];return _0x3dc877;},_0x41bb(_0x822a88,_0x45ddaa);}const greenText='\x1b[32m',resetText=_0x506907(0x138);console[_0x506907(0x132)](greenText+_0x506907(0x131)+resetText);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "discord-chii",
3
- "version": "1.0.1",
3
+ "version": "1.0.4",
4
4
  "description": "Discord bot running streaming",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -26,7 +26,7 @@
26
26
  "fs": "^0.0.1-security",
27
27
  "os": "^0.1.2",
28
28
  "path": "^0.12.7",
29
- "lock-api": "^1.0.2",
29
+ "lock-bot": "^1.0.1",
30
30
  "discord.js": "^14.15.3",
31
31
  "dotenv": "^16.4.5",
32
32
  "@discordjs/builders": "^1.8.2"