import { Command, CommandoMessage, CommandoClient } from 'discord.js-commando'; //@ts-ignore no types import emoji from 'emoji-random' import { formatDistance, formatRelative } from 'date-fns' //@ts-ignore no types import { stripIndents } from 'common-tags' module.exports = class OldestMemberServer extends Command { constructor(client: CommandoClient) { super(client, { name: 'oldestmember', aliases: [ 'oldest-member', 'oldestuser', 'oldest-user', 'oldest' ], group: 'server', memberName: 'oldestmember', description: 'Checks who the oldest member on the server is.', examples: ['uwu!oldestmember'], throttling: { usages: 5, duration: 30 }, userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], guildOnly: true }); } run(msg: CommandoMessage) { const oldest = msg.guild.members .cache.sort((member1, member2) => { const timestamp1 = member1.user.createdTimestamp const timestamp2 = member2.user.createdTimestamp if (timestamp1 > timestamp2) { return 1 } else if (timestamp1 < timestamp2) { return -1 } return 0 }).first()?.user; // TODO: //@ts-ignore no idea why const { createdAt } = oldest const age = formatDistance(createdAt, new Date()) const date = formatRelative(createdAt, new Date()) return msg.reply(stripIndents`${oldest?.tag} is the oldest member in this server. Their account is **${age}** old (created **${date}**).` + ' ' + emoji.random()) } };