From 172e06c3b11a18bcefcadac85fc7d876b1681270 Mon Sep 17 00:00:00 2001 From: AnxietyisReal <96593068+AnxietyisReal@users.noreply.github.com> Date: Thu, 22 Dec 2022 18:19:56 +1100 Subject: [PATCH] revise the bannedWords command --- src/commands/addBannedWord.ts | 19 --------------- src/commands/bannedWords.ts | 44 +++++++++++++++++++++++++++++++++++ src/database.ts | 2 -- 3 files changed, 44 insertions(+), 21 deletions(-) delete mode 100644 src/commands/addBannedWord.ts create mode 100644 src/commands/bannedWords.ts diff --git a/src/commands/addBannedWord.ts b/src/commands/addBannedWord.ts deleted file mode 100644 index 84b0fe9..0000000 --- a/src/commands/addBannedWord.ts +++ /dev/null @@ -1,19 +0,0 @@ -import Discord,{SlashCommandBuilder} from 'discord.js'; -import { TClient } from 'src/client'; -export default { - async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){ - if (!client.isStaff(interaction.member) && !client.config.eval.whitelist.includes(interaction.member.id)) return client.youNeedRole(interaction, 'admin') - const word = interaction.options.getString('word'); - if (client.bannedWords._content.includes(word)) return interaction.reply({content: 'That word is already added to the list.', ephemeral: true}); - client.bannedWords.addData(word).forceSave(); - interaction.reply(`Successfully added \`${word}\` to the list.`) - }, - data: new SlashCommandBuilder() - .setName('addbannedword') - .setDescription('Add a word to bannedWords file') - .setDMPermission(false) - .addStringOption((opt)=>opt - .setName('word') - .setDescription('What word do you want automod to ban?') - .setRequired(true)) -} diff --git a/src/commands/bannedWords.ts b/src/commands/bannedWords.ts new file mode 100644 index 0000000..72ef914 --- /dev/null +++ b/src/commands/bannedWords.ts @@ -0,0 +1,44 @@ +import Discord,{SlashCommandBuilder} from 'discord.js'; +import { TClient } from 'src/client'; +export default { + async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){ + if (!client.isStaff(interaction.member) && !client.config.eval.whitelist.includes(interaction.member.id)) return client.youNeedRole(interaction, 'admin') + const Sub = interaction.options.getSubcommand(); + const word = interaction.options.getString('word'); + switch(Sub){ + case 'view': + interaction.reply({content: 'Here is a complete list of banned words!\n*You can open it with a web browser, e.g Chrome/Firefox/Safari, or you can use Visual Studio Code/Notepad++*', files: ['src/database/bannedWords.json'], ephemeral: true}) + break; + case 'add': + if (client.bannedWords._content.includes(word)) return interaction.reply({content: `\`${word}\` is already added.`, ephemeral: true}); + client.bannedWords.addData(word).forceSave(); + interaction.reply(`Successfully added \`${word}\` to the list.`) + break; + case 'remove': + if (client.bannedWords._content.includes(!word)) return interaction.reply({content: `\`${word}\` doesn't exist on the list.`, ephemeral: true}); + client.bannedWords.removeData(word, 1, 0).forceSave(); + interaction.reply(`Successfully removed \`${word}\` from the list.`) + } + }, + data: new SlashCommandBuilder() + .setName('bannedwords') + .setDescription('description placeholder') + .setDMPermission(false) + .addSubcommand((opt)=>opt + .setName('view') + .setDescription('View the list of currently banned words.')) + .addSubcommand((opt)=>opt + .setName('add') + .setDescription('What word do you want to add?') + .addStringOption((optt)=>optt + .setName('word') + .setDescription('Add the specific word to automod\'s bannedWords list.') + .setRequired(true))) + .addSubcommand((opt)=>opt + .setName('remove') + .setDescription('What word do you want to remove?') + .addStringOption((optt)=>optt + .setName('word') + .setDescription('Remove the specific word from automod\'s bannedWords list.') + .setRequired(true))) +} diff --git a/src/database.ts b/src/database.ts index 6cb9162..fafadae 100644 --- a/src/database.ts +++ b/src/database.ts @@ -31,8 +31,6 @@ export class Database { case 1: this._content = this._content.filter((x:any)=>x[element] != key); break; - default: - return 'Type must be properly specified'; } } else if (this._dataType === 'object'){ delete this._content[key];