mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-16 14:11:50 +00:00
Fix error in log userMention() function
The function assumed a GuildMember object where a new IConfigAccessibleMember object was used instead.
This commit is contained in:
parent
fa18c234d6
commit
adbcbe9524
2 changed files with 37 additions and 4 deletions
|
@ -14,6 +14,11 @@ import {
|
||||||
} from "../../../utils";
|
} from "../../../utils";
|
||||||
import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin";
|
import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin";
|
||||||
import { FORMAT_NO_TIMESTAMP, LogsPluginType, TLogChannel } from "../types";
|
import { FORMAT_NO_TIMESTAMP, LogsPluginType, TLogChannel } from "../types";
|
||||||
|
import {
|
||||||
|
getConfigAccessibleMemberLevel,
|
||||||
|
IConfigAccessibleMember,
|
||||||
|
memberToConfigAccessibleMember,
|
||||||
|
} from "../../../utils/configAccessibleObjects";
|
||||||
|
|
||||||
export async function getLogMessage(
|
export async function getLogMessage(
|
||||||
pluginData: GuildPluginData<LogsPluginType>,
|
pluginData: GuildPluginData<LogsPluginType>,
|
||||||
|
@ -48,17 +53,26 @@ export async function getLogMessage(
|
||||||
const mentions: string[] = [];
|
const mentions: string[] = [];
|
||||||
for (const userOrMember of usersOrMembers) {
|
for (const userOrMember of usersOrMembers) {
|
||||||
let user;
|
let user;
|
||||||
let member;
|
let member: IConfigAccessibleMember | null = null;
|
||||||
|
|
||||||
if (userOrMember.user) {
|
if (userOrMember.user) {
|
||||||
member = userOrMember;
|
member = userOrMember as IConfigAccessibleMember;
|
||||||
user = member.user;
|
user = member.user;
|
||||||
} else {
|
} else {
|
||||||
user = userOrMember;
|
user = userOrMember;
|
||||||
member = await resolveMember(pluginData.client, pluginData.guild, user.id);
|
const apiMember = await resolveMember(pluginData.client, pluginData.guild, user.id);
|
||||||
|
if (apiMember) {
|
||||||
|
member = memberToConfigAccessibleMember(apiMember);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const memberConfig = (await pluginData.config.getMatchingConfig({ member, userId: user.id })) || ({} as any);
|
const level = member ? getConfigAccessibleMemberLevel(pluginData, member) : 0;
|
||||||
|
const memberConfig =
|
||||||
|
(await pluginData.config.getMatchingConfig({
|
||||||
|
level,
|
||||||
|
memberRoles: member ? member.roles.map(r => r.id) : [],
|
||||||
|
userId: user.id,
|
||||||
|
})) || ({} as any);
|
||||||
|
|
||||||
// Revert to old behavior (verbose name w/o ping if allow_user_mentions is enabled (for whatever reason))
|
// Revert to old behavior (verbose name w/o ping if allow_user_mentions is enabled (for whatever reason))
|
||||||
if (config.allow_user_mentions) {
|
if (config.allow_user_mentions) {
|
||||||
|
|
|
@ -11,6 +11,7 @@ import {
|
||||||
User,
|
User,
|
||||||
} from "discord.js";
|
} from "discord.js";
|
||||||
import { UnknownUser } from "src/utils";
|
import { UnknownUser } from "src/utils";
|
||||||
|
import { GuildPluginData } from "knub";
|
||||||
|
|
||||||
export interface IConfigAccessibleUser {
|
export interface IConfigAccessibleUser {
|
||||||
id: Snowflake | string;
|
id: Snowflake | string;
|
||||||
|
@ -180,3 +181,21 @@ export function stickerToConfigAccessibleSticker(sticker: Sticker): IConfigAcces
|
||||||
|
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getConfigAccessibleMemberLevel(
|
||||||
|
pluginData: GuildPluginData<any>,
|
||||||
|
member: IConfigAccessibleMember,
|
||||||
|
): number {
|
||||||
|
if (member.id === pluginData.guild.ownerId) {
|
||||||
|
return 99999;
|
||||||
|
}
|
||||||
|
|
||||||
|
const levels = pluginData.fullConfig.levels ?? {};
|
||||||
|
for (const [id, level] of Object.entries(levels)) {
|
||||||
|
if (member.id === id || member.roles?.find(r => r.id === id)) {
|
||||||
|
return level as number;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue