101 lines
2.8 KiB
JavaScript
101 lines
2.8 KiB
JavaScript
const { MessageEmbed } = require("discord.js")
|
|
const moment = require("moment")
|
|
|
|
module.exports = {
|
|
name: "userinfo",
|
|
category: "info",
|
|
aliases: ["whois", "user"],
|
|
usage: "userinfo <MENTION>",
|
|
description: "Holen Sie sich Vorab-Statistiken einer bestimmten Person oder sich selbst",
|
|
run: async (client, message, args) => {
|
|
|
|
|
|
let user;
|
|
|
|
if (!args[0]) {
|
|
user = message.member;
|
|
} else {
|
|
|
|
|
|
|
|
|
|
|
|
user = message.mentions.members.first() || await message.guild.members.fetch(args[0]).catch(err => { return message.channel.send(":x: Kann diese Person nicht finden") })
|
|
}
|
|
|
|
if (!user) {
|
|
return message.channel.send(":x: Kann diese Person nicht finden!")
|
|
}
|
|
|
|
|
|
//OPTIONS FOR STATUS
|
|
|
|
let stat = {
|
|
online: "https://emoji.gg/assets/emoji/9166_online.png",
|
|
idle: "https://emoji.gg/assets/emoji/3929_idle.png",
|
|
dnd: "https://emoji.gg/assets/emoji/2531_dnd.png",
|
|
offline: "https://emoji.gg/assets/emoji/7445_status_offline.png"
|
|
}
|
|
|
|
//NOW BADGES
|
|
let badges = await user.user.flags
|
|
badges = await badges ? badges.toArray() : ["None"]
|
|
|
|
let newbadges = [];
|
|
badges.forEach(m => {
|
|
newbadges.push(m.replace("_", " "))
|
|
})
|
|
|
|
let embed = new MessageEmbed()
|
|
.setThumbnail(user.user.displayAvatarURL({ dynamic: true }))
|
|
|
|
//ACTIVITY
|
|
let array = []
|
|
if (user.user.presence.activities.length) {
|
|
|
|
let data = user.user.presence.activities;
|
|
|
|
for (let i = 0; i < data.length; i++) {
|
|
let name = data[i].name || "None"
|
|
let xname = data[i].details || "None"
|
|
let zname = data[i].state || "None"
|
|
let type = data[i].type
|
|
|
|
array.push(`**${type}** : \`${name} : ${xname} : ${zname}\``)
|
|
|
|
if (data[i].name === "Spotify") {
|
|
embed.setThumbnail(`https://i.scdn.co/image/${data[i].assets.largeImage.replace("spotify:", "")}`)
|
|
}
|
|
|
|
embed.setDescription(array.join("\n"))
|
|
|
|
}
|
|
}
|
|
|
|
//EMBED COLOR BASED ON member
|
|
embed.setColor(user.displayHexColor === "#000000" ? "#ffffff" : user.displayHexColor)
|
|
|
|
//OTHER STUFF
|
|
embed.setAuthor(user.user.tag, user.user.displayAvatarURL({ dynamic: true }))
|
|
|
|
//CHECK IF USER HAVE NICKNAME
|
|
if (user.nickname !== null) embed.addField("Nickname", user.nickname)
|
|
embed.addField("Joined At", moment(user.joinedAt).format("LLLL"))
|
|
.addField("Account Created At", moment(user.user.createdAt).format("LLLL"))
|
|
.addField("Common Information", `ID: \`${user.user.id}\`\nDiscriminator: ${user.user.discriminator}\nBot: ${user.user.bot}\nDeleted User: ${user.deleted}`)
|
|
.addField("Badges", newbadges.join(", ").toLowerCase() || "None")
|
|
.setFooter(user.user.presence.status, stat[user.user.presence.status])
|
|
|
|
|
|
|
|
return message.channel.send(embed).catch(err => {
|
|
return message.channel.send("Error : " + err)
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} |