67 lines
2.1 KiB
TypeScript
67 lines
2.1 KiB
TypeScript
// Metro module 4423 (f4424).
|
|
import ChannelStore from "../../stores/ChannelStore";
|
|
import GuildMemberStore from "../../stores/GuildMemberStore";
|
|
import GuildStore from "../../stores/GuildStore";
|
|
const isMentioned = function isMentioned({ userId, channelId, mentionEveryone, mentionUsers, mentionRoles, suppressEveryone = false, suppressRoles = false }) {
|
|
let member;
|
|
member = void 0;
|
|
if (mentionEveryone && !suppressEveryone) {
|
|
return true;
|
|
}
|
|
if (mentionUsers.includes(userId)) {
|
|
return true;
|
|
}
|
|
if (!suppressRoles && mentionRoles != null && mentionRoles.length !== 0) {
|
|
const channel = ChannelStore.getChannel(channelId);
|
|
if (channel == null) {
|
|
return false;
|
|
}
|
|
const guildId = channel.getGuildId();
|
|
if (guildId == null) {
|
|
return false;
|
|
}
|
|
if (GuildStore.getGuild(guildId) == null) {
|
|
return false;
|
|
}
|
|
member = GuildMemberStore.getMember(guildId, userId);
|
|
return member != null && mentionRoles.some((mentionRole) => member.roles.includes(mentionRole));
|
|
}
|
|
return false;
|
|
};
|
|
export default function isMessageMentioned({ message, userId, suppressEveryone = false, suppressRoles = false }) {
|
|
return isMentioned({
|
|
userId,
|
|
channelId: message.channel_id,
|
|
mentionEveryone: message.mentionEveryone,
|
|
mentionUsers: message.mentions,
|
|
mentionRoles: message.mentionRoles,
|
|
suppressEveryone,
|
|
suppressRoles
|
|
});
|
|
};
|
|
export function isRawMessageMentioned({ rawMessage, userId, suppressEveryone = false, suppressRoles = false }) {
|
|
let mention_everyone = rawMessage.mention_everyone;
|
|
if (mention_everyone == null) {
|
|
mention_everyone = false;
|
|
}
|
|
const mentions = rawMessage.mentions;
|
|
let mentionUsers = mentions == null ? void 0 : mentions.map((mention) => mention.id);
|
|
if (mentionUsers == null) {
|
|
mentionUsers = [];
|
|
}
|
|
let mention_roles = rawMessage.mention_roles;
|
|
if (mention_roles == null) {
|
|
mention_roles = [];
|
|
}
|
|
return isMentioned({
|
|
userId,
|
|
channelId: rawMessage.channel_id,
|
|
mentionEveryone: mention_everyone,
|
|
mentionUsers,
|
|
mentionRoles: mention_roles,
|
|
suppressEveryone,
|
|
suppressRoles
|
|
});
|
|
}
|
|
export { isMentioned };
|