diff options
Diffstat (limited to 'src/commands/server/oldestmember.ts')
| -rw-r--r-- | src/commands/server/oldestmember.ts | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/commands/server/oldestmember.ts b/src/commands/server/oldestmember.ts new file mode 100644 index 0000000..c14e694 --- /dev/null +++ b/src/commands/server/oldestmember.ts @@ -0,0 +1,50 @@ +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()) + } +};
\ No newline at end of file |