You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Haha-Yes/commands/utility/userinfo.js

70 lines
3.0 KiB
JavaScript

import { SlashCommandBuilder, EmbedBuilder } from 'discord.js';
export default {
data: new SlashCommandBuilder()
.setName('userinfo')
.setDescription('Show info about a user')
.addMentionableOption(option =>
option.setName('user')
.setDescription('Which user you want to see the info of?')
.setRequired(false)),
category: 'utility',
alias: ['user'],
async execute(interaction, args, client) {
await interaction.guild.members.fetch();
let member = interaction.member;
let user = interaction.user;
if (args.user) {
user = client.users.resolve(args.user);
member = interaction.guild.members.resolve(args.user);
}
const Embed = new EmbedBuilder()
.setColor(member ? member.displayHexColor : 'Navy')
.setAuthor({ name: `${user.username} (${user.id})`, iconURL: user.displayAvatarURL() })
.addFields(
{ name: 'Current rank hex color', value: member ? member.displayHexColor : 'No rank color', inline: true },
{ name: 'Joined guild at', value: member ? member.joinedAt.toString() : 'Not in this guild', inline: true },
{ name: 'Date when account created', value: user.createdAt.toString(), inline: true },
)
.setTimestamp();
Embed.addFields({ name: '', value: '' });
// Show user status
/* Missing presence intent.
if (user.presence.activities[0]) {
Embed.addField('Presence', user.presence.activities[0], true);
if (user.presence.activities[0].details) Embed.addField('', user.presence.activities[0].details, true);
if (user.presence.activities[0].state) Embed.addField('', user.presence.activities[0].state, true);
}
*/
// Is the user a bot?
if (user.bot) Embed.addFields({ name: 'Is a bot?', value: '✅', inline: true });
// Show on which platform they are using discord from if its not a bot
/* Missing presence intent.
if (user.presence.clientStatus && !user.bot) {
Embed.addFields({ name: '', value: '' });
if (user.presence.clientStatus.mobile) Embed.addFields({ name: 'Using discord on', value: '📱 ' + user.presence.clientStatus.mobile, inline: true });
if (user.presence.clientStatus.desktop) Embed.addFields({ name: 'Using discord on', value: '💻 ' + user.presence.clientStatus.desktop, inline: true });
if (user.presence.clientStatus.web) Embed.addFields({ name: 'Using discord on', value: '☁️ ' + user.presence.clientStatus.web, inline: true });
}
*/
if (member) {
// Show since when this user have been boosting the current guild
if (member.premiumSince) Embed.addFields({ name: 'Boosting this guild since', value: member.premiumSince.toString(), inline: true });
// Show guild nickname
if (member.nickname) Embed.addFields({ name: 'Nickname', value: member.nickname, inline: true });
// Show member roles
2 years ago
if (member.roles) {
Embed.addFields({ name: 'Roles', value: `${[...member.roles.cache.values()].join(', ')}` });
Embed.addFields({ name: 'Permissions', value: `\`${member.permissions.toArray().join(', ')}\`` });
}
}
return interaction.reply({ embeds: [Embed] });
},
};