const Discord = require('discord.js');
const getCreationDate = require('../util/getCreationDate.js');
const getJoinDate = require('../util/getJoinDate.js');
const getNickname = require('../util/getNickname.js');
const morePresence = require('../util/morePresence.js');
const parseMention = require("../util/parseMention.js")

module.exports = {
	name: 'userinfo',
	description: 'Displays information about the user',
	moreHelp: ["Example: <prefix>userinfo <some_username>","It works with username, nickname, userid, and mention"],
	execute({message, args}) {
		let info;
		if (!args[0]) {
			info = message.author.id;
		} else {
			info = parseMention(args[0], message.guild);
		}
		let user = message.guild.members.cache.get(info);
		let nickname = ` <:aka:572089580925485058> ${getNickname(user, message.guild)}`
		if (nickname == null) {
			nickname = ``;
		}

		var roleColor = 15788778;
		if (user.roles.color) {
			roleColor = user.roles.color.color;
		}

		let presenceDetails = morePresence(user);
		const embed = new Discord.MessageEmbed()
			.setThumbnail(user.user.avatarURL({ format: 'png', dynamic: true, size: 2048 }))
			.setColor(roleColor)
			.setTimestamp()
			.setAuthor(user.user.username, user.user.avatarURL({ format: 'png', dynamic: true, size: 2048 }))
			.addField("Username", `**${user.user.username}#${user.user.discriminator}**${nickname}`)
			.addField("Presence", user.user.presence.activities[0].name, false)
			if(presenceDetails != 0)
				embed.addField("Details", presenceDetails, false)
			embed.addField("Joined", getJoinDate(user, message.guild), true)
			embed.addField("Creation date", getCreationDate(user), true)

		message.channel.send(embed);
	}
};