discord_bot/commands/info-search/whois.js

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)
})
}
}