Skip to content

Instantly share code, notes, and snippets.

@PhantomNimbi
Last active July 5, 2022 06:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PhantomNimbi/c5267424ac6ba8cea0037f1689500861 to your computer and use it in GitHub Desktop.
Save PhantomNimbi/c5267424ac6ba8cea0037f1689500861 to your computer and use it in GitHub Desktop.
Pylon.bot UserInfo Command
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