diff options
Diffstat (limited to 'src/commands/info/pronouns.ts')
-rw-r--r-- | src/commands/info/pronouns.ts | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/src/commands/info/pronouns.ts b/src/commands/info/pronouns.ts deleted file mode 100644 index f30a981..0000000 --- a/src/commands/info/pronouns.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { BushCommand } from '../../lib/extensions/BushCommand'; -import { User, Message, MessageEmbed } from 'discord.js'; -import got, { HTTPError } from 'got'; -import { CommandInteraction } from 'discord.js'; -import { ApplicationCommandOptionType } from 'discord-api-types'; -import { SlashCommandOption } from '../../lib/extensions/Util'; - -export const pronounMapping = { - unspecified: 'Unspecified', - hh: 'He/Him', - hi: 'He/It', - hs: 'He/She', - ht: 'He/They', - ih: 'It/Him', - ii: 'It/Its', - is: 'It/She', - it: 'It/They', - shh: 'She/He', - sh: 'She/Her', - si: 'She/It', - st: 'She/They', - th: 'They/He', - ti: 'They/It', - ts: 'They/She', - tt: 'They/Them', - any: 'Any pronouns', - other: 'Other pronouns', - ask: 'Ask me my pronouns', - avoid: 'Avoid pronouns, use my name' -}; -export type pronounsType = keyof typeof pronounMapping; - -export default class PronounsCommand extends BushCommand { - constructor() { - super('pronouns', { - aliases: ['pronouns', 'pronoun'], - category: 'utilities', - description: { - usage: 'pronouns <user>', - examples: ['pronouns IRONM00N'], - content: 'Finds the pronouns of a user using https://pronoundb.org.' - }, - args: [ - { - id: 'user', - type: 'user', - default: null - } - ], - clientPermissions: ['SEND_MESSAGES'], - slashCommandOptions: [ - { - type: ApplicationCommandOptionType.USER, - name: 'user', - description: 'The user to get pronouns for', - required: false - } - ], - slashEmphemeral: true // I'll add dynamic checking to this later - }); - } - async sendResponse( - message: Message | CommandInteraction, - user: User, - author: boolean - ): Promise<void> { - try { - const apiRes: { pronouns: pronounsType } = await got - .get( - `https://pronoundb.org/api/v1/lookup?platform=discord&id=${user.id}` - ) - .json(); - if (message instanceof Message) { - message.reply( - new MessageEmbed({ - title: `${author ? 'Your' : `${user.tag}'s`} pronouns:`, - description: pronounMapping[apiRes.pronouns], - footer: { - text: 'Data provided by https://pronoundb.org/' - } - }) - ); - } else { - message.reply({ - embeds: [ - new MessageEmbed({ - title: `${author ? 'Your' : `${user.tag}'s`} pronouns:`, - description: pronounMapping[apiRes.pronouns], - footer: { - text: 'Data provided by https://pronoundb.org/' - } - }) - ] - }); - } - } catch (e) { - if (e instanceof HTTPError && e.response.statusCode === 404) { - if (author) { - await message.reply( - 'You do not appear to have any pronouns set. Please go to https://pronoundb.org/ and set your pronouns.' - ); - } else { - await message.reply( - `${user.tag} does not appear to have any pronouns set. Please tell them to go to https://pronoundb.org/ and set their pronouns.` - ); - } - } else throw e; - } - } - async exec(message: Message, { user }: { user?: User }): Promise<void> { - const u = user || message.author; - await this.sendResponse(message, u, u.id === message.author.id); - } - async execSlash( - message: CommandInteraction, - { user }: { user?: SlashCommandOption<void> } - ): Promise<void> { - const u = user?.user || message.user; - await this.sendResponse(message, u, u.id === message.user.id); - } -} |