import { Command, CommandoMessage } from 'discord.js-commando'; import emoji from 'emoji-random' import { formatDistance, formatRelative } from 'date-fns' import { stripIndents } from 'common-tags' module.exports = class OldestMemberServer extends Command { constructor(client) { super(client, { name: 'oldestmember', aliases: [ 'oldest-member', 'oldestuser', 'oldest-user', 'oldest' ], group: 'fun', 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 const { createdAt } = oldest const age = formatDistance(createdAt, new Date()) const date = formatRelative(createdAt, new Date()) msg.reply(stripIndents`${oldest.tag} is the oldest member in this server. Their account is **${age}** old (created **${date}**).` + ' ' + emoji.random()) } };