Add custom commands

This commit is contained in:
SileNce5k 2021-07-02 11:57:53 +02:00
parent ea65547701
commit 49a3c50980
No known key found for this signature in database
GPG key ID: C507260E7F2583AD
6 changed files with 152 additions and 0 deletions

60
commands/custom.js Normal file
View file

@ -0,0 +1,60 @@
const addCustomCommand = require("../util/addCustomCommand");
const deleteCustomCommand = require("../util/deleteCustomCommand");
const getAllCustomCommands = require("../util/getAllCustomCommands");
const getOwnerOfCustomCommand = require("../util/getOwnerOfCustomCommand");
const Discord = require('discord.js');
module.exports = {
name: 'custom',
description: 'Add custom commands, see <prefix>help custom for more',
moreHelp: ["<prefix>custom add - Add new custom commands",
"<prefix>custom remove - Delete your custom commands.",
"<prefix>custom owner - check owner of custom command",
"<prefix>custom list - list all custom commands"
],
execute({message, args, client}) {
let sendText;
if (args){
let customName = args[1];
let customMessage = args.slice(2, args.length).join(" ");
switch (args[0].toLowerCase()) {
case "add":
sendText = addCustomCommand(args[0], customMessage, message.author.id);
break;
case "remove":
case "delete":
sendText = deleteCustomCommand(customName, message.author.id);
break;
case "owner":
let author = getOwnerOfCustomCommand(customName);
let user;
if(!author)
sendText = `${customName} does not exist`
else{
client.guilds.cache.each(guild => {
user = guild.members.cache.get(author);
});
sendText = `The owner of ${customName} is ${user.user.username}`
}
break;
case "list":
const embed = new Discord.MessageEmbed();
sendText = getAllCustomCommands();
if(sendText != ""){
embed.setColor(15780145)
embed.addFields(
{ name: "Custom commands", value: sendText },
)
sendText = embed
}else sendText = "NO CUSTOM COMMANDS"
break;
default:
sendText = "Argument not recognized."
break;
}
}
message.channel.send(sendText);
}
};

View file

@ -1,3 +1,5 @@
const fs = require('fs');
module.exports = function(client, owners, message, globalPrefix){
let prefix = globalPrefix;
if (client.serverPrefixes.get(message.guild.id)) {
@ -17,6 +19,17 @@ module.exports = function(client, owners, message, globalPrefix){
}catch(e){
console.log(e)
}
return;
}
const customPath = './data/customCommands.json';
if(fs.existsSync(customPath)){
let json = fs.readFileSync(customPath, 'utf8');
let customCommands = JSON.parse(json)
customCommands.forEach(function (customCommand) {
if (customCommand.customName === commandName) {
message.channel.send(customCommand.customMessage)
}
});
}
return;
}

28
util/addCustomCommand.js Normal file
View file

@ -0,0 +1,28 @@
const fs = require('fs');
module.exports = function(customName, customMessage, author){
let sendText;
const customPath = './data/customCommands.json';
if(!fs.existsSync(customPath)){
fs.writeFileSync(customPath,"[]")
}
let json = fs.readFileSync(customPath, 'utf8');
let customCommands = JSON.parse(json)
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 has been added."
}
fs.writeFileSync(customPath, JSON.stringify(customCommands, null, 4))
return sendText;
}

View file

@ -0,0 +1,23 @@
const fs = require('fs')
module.exports = function(customName, author){
const customPath = './data/customCommands.json';
let sendText = "This custom command does not exist.";
let json = fs.readFileSync(customPath, 'utf8');
let customCommands = JSON.parse(json)
let index = 0;
customCommands.forEach(function (customCommand) {
if (customCommand.customName === customName) {
if(customCommand.author === author){
customCommands.splice(index, 1)
sendText = `The custom command "${customName}" has been deleted.`
fs.writeFileSync(customPath, JSON.stringify(customCommands, null, 4))
}else {
sendText = "You do not own this custom command.\nOnly the one who created the custom command can delete it."
}
}
index++
});
return sendText;
}

View file

@ -0,0 +1,13 @@
const fs = require('fs');
module.exports = function(){
const customPath = './data/customCommands.json';
let list = "";
let json = fs.readFileSync(customPath, 'utf8');
let customCommands = JSON.parse(json)
customCommands.forEach(function (customCommand) {
list = list + customCommand.customName+"\n";
});
return list;
}

View file

@ -0,0 +1,15 @@
const fs = require('fs');
module.exports = function(customName){
let author = false;
const customPath = './data/customCommands.json';
let json = fs.readFileSync(customPath, 'utf8');
let customCommands = JSON.parse(json)
customCommands.forEach(function (customCommand) {
if (customCommand.customName === customName) {
author = customCommand.author;
}
});
return author;
}