/[sudobot]/trunk/src/commands/information/GuildLookupCommand.ts
ViewVC logotype

Annotation of /trunk/src/commands/information/GuildLookupCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 291 - (hide annotations)
Mon Jul 29 17:29:23 2024 UTC (8 months, 1 week ago) by rakin
File MIME type: application/typescript
File size: 2953 byte(s)
feat: add guild lookup command
1 rakin 291 import { formatDistanceToNowStrict } from "date-fns";
2     import { Message, Interaction, CacheType, CommandInteraction, Guild, GuildPreview } from "discord.js";
3     import Client from "../../client/Client";
4     import MessageEmbed from "../../client/MessageEmbed";
5     import CommandOptions from "../../types/CommandOptions";
6     import InteractionOptions from "../../types/InteractionOptions";
7     import { emoji } from "../../utils/Emoji";
8     import BaseCommand from "../../utils/structures/BaseCommand";
9    
10     export default class GuildLookupCommand extends BaseCommand {
11     constructor() {
12     super("guildlookup", "information", ["glookup", "guild"]);
13     }
14    
15     async run(client: Client, message: CommandInteraction<CacheType> | Message<boolean>, options: CommandOptions | InteractionOptions): Promise<void> {
16     if (!options.isInteraction && options.args[0] === undefined) {
17     await message.reply(`${emoji('error')} You must provide the guild/server ID to lookup.`);
18     return;
19     }
20    
21     const inputID = options.isInteraction ? options.options.getString("guild_id")! : options.args[0];
22     let guild: GuildPreview | undefined;
23    
24     try {
25     guild = await client.fetchGuildPreview(inputID);
26    
27     if (!guild) {
28     guild = undefined;
29     }
30     }
31     catch (e) {
32     console.log(e);
33     }
34    
35     if (!guild) {
36     await message.reply(`${emoji('error')} No guild/server was found with that ID or the guild isn't a public server.`);
37     return;
38     }
39    
40     await message.reply({
41     embeds: [
42     new MessageEmbed({
43     author: {
44     name: guild.name,
45     iconURL: guild.iconURL() ?? undefined
46     },
47     description: guild.description ?? '*No description available*',
48     fields: [
49     {
50     name: "Approximate Member Count",
51     value: guild.approximateMemberCount + '',
52     inline: true
53     },
54     {
55     name: "Approximate Presence Count",
56     value: guild.approximatePresenceCount + '',
57     inline: true
58     },
59     {
60     name: "Created",
61     value: `${guild.createdAt.toLocaleString()} (${formatDistanceToNowStrict(guild.createdAt, { addSuffix: true })})`,
62     },
63     ],
64     thumbnail: guild.splashURL() ? {
65     url: guild.splashURL()!
66     } : undefined,
67     footer: {
68     text: `${guild.id}`
69     }
70     })
71     .setTimestamp()
72     ]
73     });
74     }
75     }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26