From 42e8d9ae70ba568eeb161e14cb4ad330b58ae927 Mon Sep 17 00:00:00 2001 From: Dragon Fire Date: Wed, 20 Nov 2024 22:57:50 -0500 Subject: [PATCH] Check for dectalk files on startup --- Xiao.js | 27 ++++++++++++++++++++++++--- package.json | 2 +- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/Xiao.js b/Xiao.js index e9646e88..17e203bb 100644 --- a/Xiao.js +++ b/Xiao.js @@ -36,7 +36,7 @@ const client = new Client({ GatewayIntentBits.MessageContent ] }); -const { formatNumber, checkFileExists } = require('./util/Util'); +const { formatNumber, list, checkFileExists } = require('./util/Util'); client.registry .registerDefaultTypes() @@ -78,8 +78,29 @@ client.on('ready', async () => { // Make temp directories const tmpFolderExists = await checkFileExists(path.join(__dirname, 'tmp')); if (!tmpFolderExists) await mkdir(path.join(__dirname, 'tmp')); - const decTalkFolderExists = await checkFileExists(path.join(__dirname, 'tmp', 'dec-talk')); - if (!decTalkFolderExists) await mkdir(path.join(__dirname, 'tmp', 'dec-talk')); + const decTalkTmpFolderExists = await checkFileExists(path.join(__dirname, 'tmp', 'dec-talk')); + if (!decTalkTmpFolderExists) await mkdir(path.join(__dirname, 'tmp', 'dec-talk')); + + // Check for DECTalk files and disable it if not present + const dectalkFolderExists = await checkFileExists(path.join(__dirname, 'dectalk')); + if (dectalkFolderExists) { + const sayExists = await checkFileExists(path.join(__dirname, 'dectalk', 'say.exe')); + const dicExists = await checkFileExists(path.join(__dirname, 'dectalk', 'dtalk_us.dic')); + const dllExists = await checkFileExists(path.join(__dirname, 'dectalk', 'dectalk.dll')); + const msvExists = await checkFileExists(path.join(__dirname, 'dectalk', 'MSVCRTd.DLL')); + if (!sayExists || !dicExists || !dllExists || !msvExists) { + const missing = []; + if (!sayExists) missing.push('say.exe'); + if (!dicExists) missing.push('dtalk_us.dic'); + if (!dllExists) missing.push('dectalk.dll'); + if (!msvExists) missing.push('MSVCRTd.DLL'); + client.registry.commands.get('dec-talk').disable(); + client.logger.info(`[DISABLED] ${list(missing)} not present in dectalk/ folder. dectalk has been disabled.`); + } + } else { + client.registry.commands.get('dec-talk').disable(); + client.logger.info('[DISABLED] No dectalk/ folder. dectalk has been disabled.'); + } // Check for API keys and disable commands that need them if not present if (!process.env.REDIS_HOST || !process.env.REDIS_PASS) { diff --git a/package.json b/package.json index 56661f31..14cead13 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiao", - "version": "152.4.4", + "version": "152.4.5", "description": "Your personal server companion.", "main": "Xiao.js", "scripts": {