diff options
Diffstat (limited to 'src/commands/moulberry-bush/rule.ts')
-rw-r--r-- | src/commands/moulberry-bush/rule.ts | 135 |
1 files changed, 79 insertions, 56 deletions
diff --git a/src/commands/moulberry-bush/rule.ts b/src/commands/moulberry-bush/rule.ts index 300dca2..3d1f549 100644 --- a/src/commands/moulberry-bush/rule.ts +++ b/src/commands/moulberry-bush/rule.ts @@ -4,6 +4,68 @@ import AllowedMentions from '../../lib/utils/AllowedMentions'; import { BotCommand } from '../../lib/extensions/BotCommand'; export default class RuleCommand extends BotCommand { + private rules = [ + { + title: "Follow Discord's TOS", + description: + "Be sure to follow discord's TOS found at <https://discordapp.com/tos>, you must be 13 to use discord so if you admit to being under 13 you will be banned from the server." + }, + { + title: 'Be Respectful', + description: + 'Racist, sexist, homophobic, xenophobic, transphobic, ableist, hate speech, slurs, or any other derogatory, toxic, or discriminatory behavior will not be tolerated.' + }, + { + title: 'No Spamming', + description: + 'Including but not limited to: any messages that do not contribute to the conversation, repeated messages, randomly tagging users, and chat flood.' + }, + { + title: 'English', + description: + 'The primary language of the server is English, please keep all discussions in English.' + }, + { + title: 'Safe for Work', + description: + 'Please keep NSFW and NSFL content out of this server, avoid borderline images as well as keeping your status and profile picture SFW.' + }, + { + title: 'No Advertising', + description: + 'Do not promote anything without prior approval from a staff member, this includes DM advertising.' + }, + { + title: 'Impersonation', + description: + 'Do not try to impersonate others for the express intent of being deceitful, defamation , and/or personal gain.' + }, + { + title: 'Swearing', + description: 'Swearing is allowed only when not used as an insult.' + }, + { + title: 'Only ping @emergency in emergencies', + description: + 'Pinging <@&833802660209229854> for no reason will result in severe punishment. <@&833802660209229854> is only to be pinged in true emergencies.' + }, + { + title: 'No Backseat Moderating', + description: + 'If you see a rule being broken be broken, please report it using: `-report <user> [evidence]`.' + }, + { + title: 'Staff may moderate at their discretion', + description: + 'If there are loopholes in our rules, the staff team may moderate based on what they deem appropriate. The staff team holds final discretion.' + }, + { + title: "Sending media that are able to crash a user's Discord", + description: + "Sending videos, GIFs, emojis, etc. that are able to crash someone's discord will result in a **permanent** mute that cannot be appealed." + } + ]; + public constructor() { super('rule', { aliases: ['rule', 'rules'], @@ -57,69 +119,30 @@ export default class RuleCommand extends BotCommand { `Triggered by ${message.author.tag}`, message.author.avatarURL({ dynamic: true }) ); - const rules = { - t1: "1.) Follow Discord's TOS", - d1: - "Be sure to follow discord's TOS found at <https://discordapp.com/tos>, you must be 13 to use discord so if you admit to being under 13 you will be banned from the server.", - t2: '2.) Be Respectful', - d2: - 'Racist, sexist, homophobic, xenophobic, transphobic, ableist, hate speech, slurs, or any other derogatory, toxic, or discriminatory behavior will not be tolerated.', - t3: '3.) No Spamming', - d3: - 'Including but not limited to: any messages that do not contribute to the conversation, repeated messages, randomly tagging users, and chat flood.', - t4: '4.) English', - d4: - 'The primary language of the server is English, please keep all discussions in English.', - t5: '5.) Safe for Work', - d5: - 'Please keep NSFW and NSFL content out of this server, avoid borderline images as well as keeping your status and profile picture SFW.', - t6: '6.) No Advertising', - d6: - 'Do not promote anything without prior approval from a staff member, this includes DM advertising.', - t7: '7.) Impersonation', - d7: - 'Do not try to impersonate others for the express intent of being deceitful, defamation , and/or personal gain.', - t8: '8.) Swearing', - d8: 'Swearing is allowed only when not used as an insult.', - t9: '9.) Only ping @emergency in emergencies', - d9: - 'Pinging <@&833802660209229854> for no reason will result in severe punishment. <@&833802660209229854> is only to be pinged in true emergencies.', - t10: '10.) No Backseat Moderating', - d10: - 'If you see a rule being broken be broken, please report it using: `-report <user> [evidence]`.', - t11: '11.) Staff may moderate at their discretion', - d11: - 'If there are loopholes in our rules, the staff team may moderate based on what they deem appropriate. The staff team holds final discretion.', - t12: "12.) Sending media that are able to crash a user's Discord", - d12: - "Sending videos, GIFs, emojis, etc. that are able to crash someone's discord will result in a **permanent** mute that cannot be appealed." - }; if (rule) { - rulesEmbed.addField(rules[`t${rule}`], rules[`d${rule}`]); + const foundRule = this.rules[rule]; + rulesEmbed.addField(foundRule.title, foundRule.description); } else { - for (let i = 1; i <= 12; i++) { - rulesEmbed.addField(rules[`t${i}`], rules[`d${i}`]); + for (const curRule of this.rules) { + rulesEmbed.addField(curRule.title, curRule.description); } } - await respond(); - // eslint-disable-next-line @typescript-eslint/no-empty-function - await message.delete().catch(() => {}); - function respond(): unknown { - if (!user) { - return ( - // If the original message was a reply -> imamate it - message.util.send({ - embed: rulesEmbed, - allowedMentions: AllowedMentions.users() - }) - ); - } else { - return message.util.send(`<@!${user.id}>`, { + if (!user) { + return ( + // If the original message was a reply -> imamate it + message.util.send({ embed: rulesEmbed, allowedMentions: AllowedMentions.users() - }); - } + }) + ); + } else { + await message.util.send(`<@!${user.id}>`, { + embed: rulesEmbed, + allowedMentions: AllowedMentions.users() + }); } + // eslint-disable-next-line @typescript-eslint/no-empty-function + await message.delete().catch(() => {}); } } |