diff --git a/src/commands/roleinfo.ts b/src/commands/roleinfo.ts index 5b501f7..d618117 100644 --- a/src/commands/roleinfo.ts +++ b/src/commands/roleinfo.ts @@ -11,89 +11,95 @@ export default class Roleinfo extends Command { this.enabled = true; } - public async run(message: Message, args: Array) { - if (!args[0]) return this.client.createMessage(message.channel.id, `${this.client.util.emojis.ERROR} You need to specifiy a role ID or a role name.`); + public async run(message: Message, args: any) { + try { + if (!args[0]) return this.client.createMessage(message.channel.id, `${this.client.util.emojis.ERROR} You need to specifiy a role ID or a role name.`); - let role: any; - if (!isNaN(args[0])) { // if it's a role id + let role: any; + if (!isNaN(args[0])) { // if it's a role id // @ts-ignore - role = message.channel.guild.roles.find((role) => role.id == args[0]); - } else if (isNaN(args[0])) { // if it's a role name - // @ts-ignore - role = message.channel.guild.roles.find((role) => role.name == args[0]); + role = message.channel.guild.roles.find((role) => role.id == args[0]); + } else if (isNaN(args[0])) { // if it's a role name + args = args.join(' '); + // @ts-ignore + role = message.channel.guild.roles.find((role) => role.name == args); + } + if (!role) return this.client.createMessage(message.channel.id, `${this.client.util.emojis.ERROR} Could not find role.`); + + const ms = role.createdAt; + const date = new Date(ms).toLocaleDateString('en-us'); + const time = new Date(ms).toLocaleTimeString('en-us'); + + const perms = role.permissions; + let permsArray: any = []; + if (perms.has('administrator')) permsArray.push('Administrator'); + if (perms.has('manageGuild')) permsArray.push('Manage Server'); + if (perms.has('manageChannels')) permsArray.push('Manage Channels'); + if (perms.has('manageRoles')) permsArray.push('Manage Roles'); + if (perms.has('manageMessages')) permsArray.push('Manage Messages'); + if (perms.has('manageNicknames')) permsArray.push('Manage Nicknames'); + if (perms.has('manageEmojis')) permsArray.push('Manage Emojis'); + if (perms.has('banMembers')) permsArray.push('Ban Members'); + if (perms.has('kickMembers')) permsArray.push('Kick Members'); + + let hasPerms: boolean; + if (permsArray.length > 0) { + permsArray = permsArray.join(', '); + hasPerms = true; + } + + const embed = { embed: { + description: `<@&${role.id}> ID: \`${role.id}\``, + author: { + name: `${message.author.username}#${message.author.discriminator}`, + icon_url: message.author.avatarURL, + }, + color: role.color, + fields: [ + { + name: 'Name', + value: role.name, + inline: true, + }, + { + name: 'Color', + value: `#${role.color.toString(16)}`, + inline: true, + }, + { + name: 'Hoisted', + value: role.hoist, + inline: true, + }, + { + name: 'Position', + value: role.position, + inline: true, + }, + { + name: 'Creation Date', + value: `${date} ${time}`, + inline: true, + }, + { + name: 'Mentionable', + value: role.mentionable, + inline: true, + }, + ], + footer: { + text: `${this.client.user.username}`, + icon_url: this.client.user.avatarURL, + }, + timestamp: new Date(), + } }; + + if (hasPerms) { + embed.embed.fields.push({ name: 'Permissions', value: permsArray, inline: false }); + } + message.channel.createMessage(embed); + } catch (err) { + this.client.createMessage(message.channel.id, `${this.client.util.emojis.ERROR} An unexpected error has occured.`); } - - const ms = role.createdAt; - const date = new Date(ms).toLocaleDateString('en-us'); - const time = new Date(ms).toLocaleTimeString('en-us'); - - const perms = role.permissions; - let permsArray: any = []; - if (perms.has('administrator')) permsArray.push('Administrator'); - if (perms.has('manageGuild')) permsArray.push('Manage Server'); - if (perms.has('manageChannels')) permsArray.push('Manage Channels'); - if (perms.has('manageRoles')) permsArray.push('Manage Roles'); - if (perms.has('manageMessages')) permsArray.push('Manage Messages'); - if (perms.has('manageNicknames')) permsArray.push('Manage Nicknames'); - if (perms.has('manageEmojis')) permsArray.push('Manage Emojis'); - if (perms.has('banMembers')) permsArray.push('Ban Members'); - if (perms.has('kickMembers')) permsArray.push('Kick Members'); - - let hasPerms: boolean; - if (permsArray.length > 0) { - permsArray = permsArray.join(', '); - hasPerms = true; - } - - const embed = { embed: { - description: `<@&${role.id}> ID: \`${role.id}\``, - author: { - name: `${message.author.username}#${message.author.discriminator}`, - icon_url: message.author.avatarURL, - }, - color: role.color, - fields: [ - { - name: 'Name', - value: role.name, - inline: true, - }, - { - name: 'Color', - value: `#${role.color.toString(16)}`, - inline: true, - }, - { - name: 'Hoisted', - value: role.hoist, - inline: true, - }, - { - name: 'Position', - value: role.position, - inline: true, - }, - { - name: 'Creation Date', - value: `${date} ${time}`, - inline: true, - }, - { - name: 'Mentionable', - value: role.mentionable, - inline: true, - }, - ], - footer: { - text: `${this.client.user.username}`, - icon_url: this.client.user.avatarURL, - }, - timestamp: new Date(), - } }; - - if (hasPerms) { - embed.embed.fields.push({ name: 'Permissions', value: permsArray, inline: false }); - } - message.channel.createMessage(embed); } }