This commit is contained in:
MathMan05 2025-11-19 11:42:08 -06:00
parent 76263bca68
commit a5b5129542

View File

@ -49,6 +49,7 @@ import fetch from "node-fetch-commonjs";
import { CloudAttachment } from "../../../util/entities/CloudAttachment";
import { ReadState } from "../../../util/entities/ReadState";
import { Member } from "../../../util/entities/Member";
import { Session } from "../../../util/entities/Session";
import { ChannelType } from "@spacebar/schemas";
import { Embed, MessageCreateAttachment, MessageCreateCloudAttachment, MessageCreateSchema, MessageType, Reaction } from "@spacebar/schemas";
import { EmbedType } from "../../../schemas/api/messages/Embeds";
@ -340,7 +341,7 @@ export async function handleMessage(opts: MessageOptions): Promise<Message> {
}),
);
}
if (!!message.content?.match(EVERYONE_MENTION) || channel.type === ChannelType.DM || channel.type === ChannelType.GROUP_DM) {
if ((!!message.content?.match(EVERYONE_MENTION) && permission?.has("MENTION_EVERYONE")) || channel.type === ChannelType.DM || channel.type === ChannelType.GROUP_DM) {
if (channel.type === ChannelType.DM || channel.type === ChannelType.GROUP_DM) {
if (channel.recipients) {
await fillInMissingIDs(channel.recipients.map(({ user_id }) => user_id));
@ -367,6 +368,10 @@ export async function handleMessage(opts: MessageOptions): Promise<Message> {
).map((member) => member.id),
...message.mentions.map((user) => user.id),
]);
if (!!message.content?.match(HERE_MENTION) && permission?.has("MENTION_EVERYONE")) {
const ids = (await Member.find({ where: { guild_id: channel.guild_id } })).map(({ id }) => id);
(await Session.find({ where: { user_id: Or(...ids.map((id) => Equal(id))) } })).forEach(({ user_id }) => users.add(user_id));
}
if (users.size) {
const repository = ReadState.getRepository();
const condition = { user_id: Or(...[...users].map((id) => Equal(id))), channel_id: channel.id };