Last active
July 5, 2022 06:50
-
-
Save PhantomNimbi/c5267424ac6ba8cea0037f1689500861 to your computer and use it in GitHub Desktop.
Pylon.bot UserInfo Command
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import * as app from '../config'; | |
let config = { | |
slashCommands: discord.interactions.commands, | |
embeds: { | |
color: discord.decor.RoleColors.BLUE, | |
}, | |
}; | |
let slashCommands = config.slashCommands; | |
slashCommands.register( | |
{ | |
name: 'userinfo', | |
description: 'Returns info about the specified user', | |
options: (opts) => ({ | |
user: opts.guildMember({ | |
name: 'member', | |
description: 'Specify a guild member', | |
required: false, | |
}), | |
}), | |
}, | |
async (interaction, { user }) => { | |
let embed_color = config.embeds.color; | |
const self = await discord.getBotUser(); | |
if (user == undefined) { | |
const { roles } = interaction.member; | |
const response: Array<discord.Role> = []; | |
for (const id of roles) { | |
const r = await discord.getGuild().then((x) => x.getRole(id)); | |
// @ts-ignore | |
response.push(r); | |
} | |
let roles_response = response.map((x) => x.toMention()); | |
let roles_list = roles_response.toString().replaceAll(',', ' '); | |
let unix = Math.floor(Date.parse(interaction.member.joinedAt) / 1000); | |
let str = `<t:${unix}:R> ||<t:${unix}:F>||`; | |
let embed = new discord.Embed() | |
.setTitle(interaction.member.user.getTag()) | |
.setDescription( | |
[ | |
'**__User Information__** ', | |
`\\${discord.decor.Emojis.NAME_BADGE} **User Name**: ${interaction.member.user.username}`, | |
`\\${discord.decor.Emojis.ID} **User ID**: ||${interaction.member.user.id}||`, | |
'', | |
'**__Member Info__**', | |
`\\${discord.decor.Emojis.CALENDAR} **Join Date**: ${str}`, | |
`\\${discord.decor.Emojis.BALLOT_BOX_WITH_CHECK} **Roles**: ${roles_list}`, | |
].join('\n') | |
) | |
.setThumbnail({ url: interaction.member.user.getAvatarUrl() }) | |
.setColor(embed_color) | |
.setTimestamp(new Date().toISOString()) | |
.setFooter({ | |
text: 'Powered by ' + self.username, | |
iconUrl: self.getAvatarUrl(), | |
}); | |
await interaction.respond({ content: '', embeds: [embed] }).catch((_) => { | |
interaction.respond( | |
[ | |
':warning: **__Error Triggered__** :warning:', | |
'', | |
'```ts', | |
`${_}`, | |
'```', | |
].join('\n') | |
); | |
console.log( | |
`>> | (${_.code}) ${_.name}: ${_.message} \n------------------------------------------------------------------------------------------------------------------------\n${_.stack}` | |
); | |
}); | |
} else { | |
if (user !== undefined) { | |
const { roles } = user; | |
const response: Array<discord.Role> = []; | |
for (const id of roles) { | |
const r = await discord.getGuild().then((x) => x.getRole(id)); | |
// @ts-ignore | |
response.push(r); | |
} | |
let roles_response = response.map((x) => x.toMention()); | |
let roles_list = roles_response.toString().replaceAll(',', ' '); | |
let unix = Math.floor(Date.parse(user.joinedAt) / 1000); | |
let str = `<t:${unix}:R> ||<t:${unix}:F>||`; | |
let embed = new discord.Embed() | |
.setTitle(user.user.getTag()) | |
.setDescription( | |
[ | |
'**__User Information__** ', | |
`\\${discord.decor.Emojis.NAME_BADGE} **User Name**: ${user.user.username}`, | |
`\\${discord.decor.Emojis.ID} **User ID**: ||${user.user.id}||`, | |
'', | |
'**__Member Info__**', | |
`\\${discord.decor.Emojis.CALENDAR} **Join Date**: ${str}`, | |
`\\${discord.decor.Emojis.BALLOT_BOX_WITH_CHECK} **Roles**: ${roles_list}`, | |
].join('\n') | |
) | |
.setThumbnail({ url: user.user.getAvatarUrl() }) | |
.setColor(embed_color) | |
.setTimestamp(new Date().toISOString()) | |
.setFooter({ | |
text: 'Powered by ' + self.username, | |
iconUrl: self.getAvatarUrl(), | |
}); | |
await interaction | |
.respond({ content: '', embeds: [embed] }) | |
.catch((_) => { | |
interaction.respond( | |
[ | |
':warning: **__Error Triggered__** :warning:', | |
'', | |
'```ts', | |
`${_}`, | |
'```', | |
].join('\n') | |
); | |
console.log( | |
`>> | (${_.code}) ${_.name}: ${_.message} \n------------------------------------------------------------------------------------------------------------------------\n${_.stack}` | |
); | |
}); | |
} | |
} | |
} | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment