blob: c95e42d958b503ccaf42c2b77333c83f591b68a2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import { BushArgumentTypeCaster, regex } from '#lib';
import type { Message } from 'discord.js';
export const messageLink: BushArgumentTypeCaster<Promise<Message | null>> = async (message, phrase) => {
const match = new RegExp(regex.messageLink).exec(phrase);
if (!match || !match.groups) return null;
const { guild_id, channel_id, message_id } = match.groups;
if (!guild_id || !channel_id || message_id) return null;
const guild = message.client.guilds.cache.get(guild_id);
if (!guild) return null;
const channel = guild.channels.cache.get(channel_id);
if (!channel || (!channel.isTextBased() && !channel.isThread())) return null;
const msg = await channel.messages.fetch(message_id).catch(() => null);
return msg;
};
|