summaryrefslogtreecommitdiff
path: root/src/commands/server/oldestmember.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/server/oldestmember.ts')
-rw-r--r--src/commands/server/oldestmember.ts50
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