diff --git a/commands/misc/custom.js b/commands/misc/custom.js index 39e7ad4..d31404f 100644 --- a/commands/misc/custom.js +++ b/commands/misc/custom.js @@ -20,11 +20,7 @@ module.exports = { "custom variables - list all variables you can use", "custom count - display the amount of custom commands" ], - execute({message, args, client, prefix, owners}) { - const customPath = 'data/customCommands.json'; - if(!fs.existsSync(customPath)){ - fs.writeFileSync(customPath,"[]") - } + async execute({message, args, client, prefix, owners}) { let sendText; let isEmbed = false; if (args){ @@ -37,7 +33,7 @@ module.exports = { message.channel.send("Message can't be empty"); return; } - sendText = addCustomCommand(customName, customMessage, message.author.id); + sendText = await addCustomCommand(client, customName, customMessage, message.author.id); break; } case "remove": diff --git a/util/custom_commands/addCustomCommand.js b/util/custom_commands/addCustomCommand.js index 3ac6417..a9c1013 100644 --- a/util/custom_commands/addCustomCommand.js +++ b/util/custom_commands/addCustomCommand.js @@ -1,25 +1,33 @@ -const fs = require('fs'); -module.exports = function(customName, customMessage, author){ - let sendText; - const customPath = './data/customCommands.json'; - - let json = fs.readFileSync(customPath, 'utf8'); - let customCommands = JSON.parse(json) +const sqlite3 = require('sqlite3').verbose(); +module.exports = async function(client, customName, customMessage, author){ + + let sendText = ""; + let isExists = client.customCommands.get(customName); - let isExists = false; - customCommands.forEach(function (customCommand) { - if (customCommand.customName === customName) { - sendText = "This custom command already exists"; - isExists = true; - } - }); if (!isExists) { - let newCustomCommand = { - "customName": customName, "customMessage": customMessage, "author": author - } - customCommands.push(newCustomCommand) - sendText = `New custom command with the name "${customName}" added` + const db = new sqlite3.Database("data/database.db"); + sendText = await new Promise((resolve, reject)=>{ + + db.run(`INSERT INTO customCommands ( + customName, + customMessage, + author, + isDeleted + ) VALUES (?, ?, ?, ?)`, [customName, customMessage, author, false], + + function(error){ + if(error){ + console.error(error) + let sendText = "Error while inserting new custom command."; + reject(sendText); + }else{ + client.customCommands.set(customName, customMessage) + let sendText = `New custom command with the name "${customName}" added` + resolve(sendText) + } + }) + }) + db.close(); } - fs.writeFileSync(customPath, JSON.stringify(customCommands, null, 4)) return sendText; } \ No newline at end of file