Haha-Yes/commands/admin/banword.js
2020-03-29 18:49:20 +02:00

71 lines
No EOL
2.1 KiB
JavaScript

const { Command } = require('discord-akairo');
const safe = require('safe-regex');
const BannedWords = require('../../models').bannedWords;
class BannedWordsCommand extends Command {
constructor() {
super('BannedWords', {
aliases: ['bannedword', 'banword', 'unbanword', 'censor', 'uncensor'],
category: 'admin',
userPermissions: ['MANAGE_MESSAGES'],
clientPermissions: ['MANAGE_MESSAGES', 'SEND_MESSAGES'],
args: [
{
id: 'word',
type: 'string',
match: 'rest'
},
{
id: 'remove',
match: 'flag',
flag: '--remove'
},
{
id: 'removeall',
match: 'flag',
flag: '--removeall'
}
],
channel: 'guild',
description: {
content: 'Ban word on the server. use the unbanword alias to delete a banned word, unbanword alias and --removeaall to remove every banned word',
usage: '[word to ban]',
examples: ['owo']
}
});
}
async exec(message, args) {
if (!safe(message.content)) return;
if (!args.word) args.word = '';
args.word = args.word.replace(/[\u0250-\ue007]/g, '');
const bannedWords = await BannedWords.findOne({where: {word: args.word.toLowerCase(), serverID: message.guild.id}});
if (message.util.parsed.alias == 'unbanword' || args.remove) {
if (args.removeall) {
BannedWords.destroy({where: {serverID: message.guild.id}});
return message.channel.send('The banned words have been reset.');
}
if (bannedWords) {
BannedWords.destroy({where: {word: args.word.toLowerCase(), serverID: message.guild.id}});
return message.channel.send(`The word ${args.word.toLowerCase()} is no longer banned`);
} else {
return message.channel.send('There was no word to unban');
}
}
if (!args.word) return message.channel.send('Please specify a word to ban!');
if (!bannedWords) {
const body = {word: args.word.toLowerCase(), serverID: message.guild.id};
await BannedWords.create(body);
return message.channel.send(`The word ${args.word.toLowerCase()} has been banned`);
} else {
message.channel.send('This word is already banned');
}
}
}
module.exports = BannedWordsCommand;