diff options
author | IRONM00N <64110067+IRONM00N@users.noreply.github.com> | 2022-08-05 23:24:51 -0400 |
---|---|---|
committer | IRONM00N <64110067+IRONM00N@users.noreply.github.com> | 2022-08-05 23:24:51 -0400 |
commit | 1feb515882cfbbf33dc98d75a54898c1735cf5cb (patch) | |
tree | 20386e9d6ca6b5cb978283d672528c03647ec32f /src/commands/info/inviteInfo.ts | |
parent | e68a0193b9f5888455f631d72c8783fc50e35faf (diff) | |
parent | 060349fcabe9e073eca9f6fd334e3355a9756096 (diff) | |
download | tanzanite-1feb515882cfbbf33dc98d75a54898c1735cf5cb.tar.gz tanzanite-1feb515882cfbbf33dc98d75a54898c1735cf5cb.tar.bz2 tanzanite-1feb515882cfbbf33dc98d75a54898c1735cf5cb.zip |
Merge branch 'wip'
Diffstat (limited to 'src/commands/info/inviteInfo.ts')
-rw-r--r-- | src/commands/info/inviteInfo.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/commands/info/inviteInfo.ts b/src/commands/info/inviteInfo.ts new file mode 100644 index 0000000..5df86ad --- /dev/null +++ b/src/commands/info/inviteInfo.ts @@ -0,0 +1,43 @@ +import { Arg, ArgType, BushCommand, clientSendAndPermCheck, colors, type CommandMessage, type SlashMessage } from '#lib'; +import { ApplicationCommandOptionType, EmbedBuilder, Invite, PermissionFlagsBits } from 'discord.js'; + +export default class InviteInfoCommand extends BushCommand { + public constructor() { + super('inviteInfo', { + aliases: ['invite-info', 'ii'], + category: 'info', + description: 'Get info about an invite.', + usage: ['invite-info [invite]'], + examples: ['invite-info discord.gg/moulberry'], + args: [ + { + id: 'invite', + description: 'The guild to find information about.', + type: 'invite', + prompt: 'What invite would you like to find information about?', + retry: '{error} Choose a valid invite to find information about.', + slashType: ApplicationCommandOptionType.String + } + ], + slash: true, + clientPermissions: (m) => clientSendAndPermCheck(m, [PermissionFlagsBits.EmbedLinks], true), + userPermissions: [] + }); + } + + public override async exec(message: CommandMessage | SlashMessage, args: { invite: ArgType<'invite' | 'string'> }) { + const invite = message.util.isSlashMessage(message) + ? ((await Arg.cast('invite', message, args.invite as string)) as ArgType<'invite'>) + : (args.invite as Invite); + + const inviteInfoEmbed = new EmbedBuilder().setTitle(`Invite to ${invite.guild!.name}`).setColor(colors.default); + + this.generateAboutField(inviteInfoEmbed, invite); + } + + private generateAboutField(embed: EmbedBuilder, invite: Invite) { + const about = [`**code:** ${invite.code}`, `**channel:** ${invite.channel!.name}`]; + + embed.addFields({ name: 'ยป About', value: about.join('\n') }); + } +} |