3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-14 21:31:50 +00:00

yeet renderUserUsername

Signed-off-by: GitHub <noreply@github.com>
This commit is contained in:
Tiago R 2023-11-26 15:57:23 +00:00
parent 4d0161a49f
commit bfc90093dc
24 changed files with 59 additions and 69 deletions

View file

@ -1,6 +1,6 @@
import { Snowflake } from "discord.js";
import * as t from "io-ts";
import { renderUserUsername } from "../../../utils";
import { renderUsername } from "../../../utils";
import { consumeIgnoredRoleChange } from "../functions/ignoredRoleChanges";
import { automodTrigger } from "../helpers";
@ -38,7 +38,7 @@ export const RoleAddedTrigger = automodTrigger<RoleAddedMatchResult>()({
const role = pluginData.guild.roles.cache.get(matchResult.extra.matchedRoleId as Snowflake);
const roleName = role?.name || "Unknown";
const member = contexts[0].member!;
const memberName = `**${renderUserUsername(member.user)}** (\`${member.id}\`)`;
const memberName = `**${renderUsername(member.user)}** (\`${member.id}\`)`;
return `Role ${roleName} (\`${matchResult.extra.matchedRoleId}\`) was added to ${memberName}`;
},
});

View file

@ -1,6 +1,6 @@
import { Snowflake } from "discord.js";
import * as t from "io-ts";
import { renderUserUsername } from "../../../utils";
import { renderUsername } from "../../../utils";
import { consumeIgnoredRoleChange } from "../functions/ignoredRoleChanges";
import { automodTrigger } from "../helpers";
@ -38,7 +38,7 @@ export const RoleRemovedTrigger = automodTrigger<RoleAddedMatchResult>()({
const role = pluginData.guild.roles.cache.get(matchResult.extra.matchedRoleId as Snowflake);
const roleName = role?.name || "Unknown";
const member = contexts[0].member!;
const memberName = `**${renderUserUsername(member.user)}** (\`${member.id}\`)`;
const memberName = `**${renderUsername(member.user)}** (\`${member.id}\`)`;
return `Role ${roleName} (\`${matchResult.extra.matchedRoleId}\`) was removed from ${memberName}`;
},
});

View file

@ -1,7 +1,7 @@
import { ApiPermissions } from "@shared/apiPermissions";
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { isStaffPreFilter, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { renderUserUsername } from "../../../utils";
import { renderUsername } from "../../../utils";
import { botControlCmd } from "../types";
export const AddDashboardUserCmd = botControlCmd({
@ -35,7 +35,7 @@ export const AddDashboardUserCmd = botControlCmd({
await pluginData.state.apiPermissionAssignments.addUser(args.guildId, user.id, [ApiPermissions.EditConfig]);
}
const userNameList = args.users.map((user) => `<@!${user.id}> (**${renderUserUsername(user)}**, \`${user.id}\`)`);
const userNameList = args.users.map((user) => `<@!${user.id}> (**${renderUsername(user)}**, \`${user.id}\`)`);
sendSuccessMessage(
pluginData,
msg.channel,

View file

@ -2,7 +2,7 @@ import { commandTypeHelpers as ct } from "../../../commandTypes";
import { AllowedGuild } from "../../../data/entities/AllowedGuild";
import { ApiPermissionAssignment } from "../../../data/entities/ApiPermissionAssignment";
import { sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { renderUserUsername, resolveUser } from "../../../utils";
import { renderUsername, resolveUser } from "../../../utils";
import { botControlCmd } from "../types";
export const ListDashboardPermsCmd = botControlCmd({
@ -42,7 +42,7 @@ export const ListDashboardPermsCmd = botControlCmd({
// If we have user, always display which guilds they have permissions in (or only specified guild permissions)
if (args.user) {
const userInfo = `**${renderUserUsername(args.user)}** (\`${args.user.id}\`)`;
const userInfo = `**${renderUsername(args.user)}** (\`${args.user.id}\`)`;
for (const assignment of existingUserAssignment!) {
if (guild != null && assignment.guild_id !== args.guildId) continue;
@ -74,7 +74,7 @@ export const ListDashboardPermsCmd = botControlCmd({
finalMessage += `The server ${guildInfo} has the following assigned permissions:\n`; // Double \n for consistency with AddDashboardUserCmd
for (const assignment of existingGuildAssignment) {
const user = await resolveUser(pluginData.client, assignment.target_id);
finalMessage += `\n**${renderUserUsername(user)}**, \`${assignment.target_id}\`: ${assignment.permissions.join(
finalMessage += `\n**${renderUsername(user)}**, \`${assignment.target_id}\`: ${assignment.permissions.join(
", ",
)}`;
}

View file

@ -1,6 +1,6 @@
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { renderUserUsername, resolveUser } from "../../../utils";
import { renderUsername, resolveUser } from "../../../utils";
import { botControlCmd } from "../types";
export const ListDashboardUsersCmd = botControlCmd({
@ -27,7 +27,7 @@ export const ListDashboardUsersCmd = botControlCmd({
);
const userNameList = users.map(
({ user, permission }) =>
`<@!${user.id}> (**${renderUserUsername(user)}**, \`${user.id}\`): ${permission.permissions.join(", ")}`,
`<@!${user.id}> (**${renderUsername(user)}**, \`${user.id}\`): ${permission.permissions.join(", ")}`,
);
sendSuccessMessage(

View file

@ -1,6 +1,6 @@
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { isStaffPreFilter, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { renderUserUsername } from "../../../utils";
import { renderUsername } from "../../../utils";
import { botControlCmd } from "../types";
export const RemoveDashboardUserCmd = botControlCmd({
@ -34,7 +34,7 @@ export const RemoveDashboardUserCmd = botControlCmd({
await pluginData.state.apiPermissionAssignments.removeUser(args.guildId, user.id);
}
const userNameList = args.users.map((user) => `<@!${user.id}> (**${renderUserUsername(user)}**, \`${user.id}\`)`);
const userNameList = args.users.map((user) => `<@!${user.id}> (**${renderUsername(user)}**, \`${user.id}\`)`);
sendSuccessMessage(
pluginData,
msg.channel,

View file

@ -3,7 +3,7 @@ import { CaseTypes } from "../../../data/CaseTypes";
import { Case } from "../../../data/entities/Case";
import { CasesPlugin } from "../../../plugins/Cases/CasesPlugin";
import { canActOn, hasPermission, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { renderUserUsername, resolveMember, resolveUser } from "../../../utils";
import { renderUsername, resolveMember, resolveUser } from "../../../utils";
import { LogsPlugin } from "../../Logs/LogsPlugin";
import { formatReasonWithAttachments } from "../functions/formatReasonWithAttachments";
import { modActionsCmd } from "../types";
@ -75,7 +75,7 @@ export const AddCaseCmd = modActionsCmd({
sendSuccessMessage(
pluginData,
msg.channel,
`Case #${theCase.case_number} created for **${renderUserUsername(user)}**`,
`Case #${theCase.case_number} created for **${renderUsername(user)}**`,
);
} else {
sendSuccessMessage(pluginData, msg.channel, `Case #${theCase.case_number} created`);

View file

@ -5,7 +5,7 @@ import { CaseTypes } from "../../../data/CaseTypes";
import { clearExpiringTempban, registerExpiringTempban } from "../../../data/loops/expiringTempbansLoop";
import { canActOn, hasPermission, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { CasesPlugin } from "../../../plugins/Cases/CasesPlugin";
import { renderUserUsername, resolveMember, resolveUser } from "../../../utils";
import { renderUsername, resolveMember, resolveUser } from "../../../utils";
import { banLock } from "../../../utils/lockNameHelpers";
import { waitForButtonConfirm } from "../../../utils/waitForInteraction";
import { LogsPlugin } from "../../Logs/LogsPlugin";
@ -207,7 +207,7 @@ export const BanCmd = modActionsCmd({
// Confirm the action to the moderator
let response = "";
if (!forceban) {
response = `Banned **${renderUserUsername(user)}** ${forTime}(Case #${banResult.case.case_number})`;
response = `Banned **${renderUsername(user)}** ${forTime}(Case #${banResult.case.case_number})`;
if (banResult.notifyResult.text) response += ` (${banResult.notifyResult.text})`;
} else {
response = `Member forcebanned ${forTime}(Case #${banResult.case.case_number})`;

View file

@ -1,7 +1,7 @@
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { CaseTypes } from "../../../data/CaseTypes";
import { sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { renderUserUsername, resolveUser } from "../../../utils";
import { renderUsername, resolveUser } from "../../../utils";
import { CasesPlugin } from "../../Cases/CasesPlugin";
import { LogsPlugin } from "../../Logs/LogsPlugin";
import { formatReasonWithAttachments } from "../functions/formatReasonWithAttachments";
@ -29,7 +29,7 @@ export const NoteCmd = modActionsCmd({
return;
}
const userName = renderUserUsername(user);
const userName = renderUsername(user);
const reason = formatReasonWithAttachments(args.note, [...msg.attachments.values()]);
const casesPlugin = pluginData.getPlugin(CasesPlugin);

View file

@ -1,7 +1,7 @@
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { CaseTypes } from "../../../data/CaseTypes";
import { canActOn, hasPermission, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { errorMessage, renderUserUsername, resolveMember, resolveUser } from "../../../utils";
import { errorMessage, renderUsername, resolveMember, resolveUser } from "../../../utils";
import { waitForButtonConfirm } from "../../../utils/waitForInteraction";
import { CasesPlugin } from "../../Cases/CasesPlugin";
import { formatReasonWithAttachments } from "../functions/formatReasonWithAttachments";
@ -106,7 +106,7 @@ export const WarnCmd = modActionsCmd({
sendSuccessMessage(
pluginData,
msg.channel,
`Warned **${renderUserUsername(memberToWarn.user)}** (Case #${warnResult.case.case_number})${messageResultText}`,
`Warned **${renderUsername(memberToWarn.user)}** (Case #${warnResult.case.case_number})${messageResultText}`,
);
},
});

View file

@ -1,5 +1,5 @@
import { PermissionsBitField, Snowflake, TextChannel } from "discord.js";
import { renderUserUsername, resolveMember } from "../../../utils";
import { renderUsername, resolveMember } from "../../../utils";
import { hasDiscordPermissions } from "../../../utils/hasDiscordPermissions";
import { LogsPlugin } from "../../Logs/LogsPlugin";
import { modActionsEvt } from "../types";
@ -46,7 +46,7 @@ export const PostAlertOnMemberJoinEvt = modActionsEvt({
}
await alertChannel.send(
`<@!${member.id}> (${renderUserUsername(member.user)} \`${member.id}\`) joined with ${
`<@!${member.id}> (${renderUsername(member.user)} \`${member.id}\`) joined with ${
actions.length
} prior record(s)`,
);

View file

@ -3,7 +3,7 @@ import { GuildPluginData } from "knub";
import { hasPermission } from "knub/helpers";
import { LogType } from "../../../data/LogType";
import { canActOn, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { DAYS, SECONDS, errorMessage, renderUserUsername, resolveMember, resolveUser } from "../../../utils";
import { DAYS, SECONDS, errorMessage, renderUsername, resolveMember, resolveUser } from "../../../utils";
import { IgnoredEventType, ModActionsPluginType } from "../types";
import { formatReasonWithAttachments } from "./formatReasonWithAttachments";
import { ignoreEvent } from "./ignoreEvent";
@ -103,7 +103,7 @@ export async function actualKickMemberCmd(
}
// Confirm the action to the moderator
let response = `Kicked **${renderUserUsername(memberToKick.user)}** (Case #${kickResult.case.case_number})`;
let response = `Kicked **${renderUsername(memberToKick.user)}** (Case #${kickResult.case.case_number})`;
if (kickResult.notifyResult.text) response += ` (${kickResult.notifyResult.text})`;
sendSuccessMessage(pluginData, msg.channel, response);

View file

@ -4,7 +4,7 @@ import { GuildPluginData } from "knub";
import { ERRORS, RecoverablePluginError } from "../../../RecoverablePluginError";
import { logger } from "../../../logger";
import { hasPermission, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { UnknownUser, asSingleLine, isDiscordAPIError, renderUserUsername } from "../../../utils";
import { UnknownUser, asSingleLine, isDiscordAPIError, renderUsername } from "../../../utils";
import { MutesPlugin } from "../../Mutes/MutesPlugin";
import { MuteResult } from "../../Mutes/types";
import { ModActionsPluginType } from "../types";
@ -86,24 +86,24 @@ export async function actualMuteUserCmd(
if (args.time) {
if (muteResult.updatedExistingMute) {
response = asSingleLine(`
Updated **${renderUserUsername(user)}**'s
Updated **${renderUsername(user)}**'s
mute to ${timeUntilUnmute} (Case #${muteResult.case.case_number})
`);
} else {
response = asSingleLine(`
Muted **${renderUserUsername(user)}**
Muted **${renderUsername(user)}**
for ${timeUntilUnmute} (Case #${muteResult.case.case_number})
`);
}
} else {
if (muteResult.updatedExistingMute) {
response = asSingleLine(`
Updated **${renderUserUsername(user)}**'s
Updated **${renderUsername(user)}**'s
mute to indefinite (Case #${muteResult.case.case_number})
`);
} else {
response = asSingleLine(`
Muted **${renderUserUsername(user)}**
Muted **${renderUsername(user)}**
indefinitely (Case #${muteResult.case.case_number})
`);
}

View file

@ -3,7 +3,7 @@ import humanizeDuration from "humanize-duration";
import { GuildPluginData } from "knub";
import { hasPermission, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { MutesPlugin } from "../../../plugins/Mutes/MutesPlugin";
import { UnknownUser, asSingleLine, renderUserUsername } from "../../../utils";
import { UnknownUser, asSingleLine, renderUsername } from "../../../utils";
import { ModActionsPluginType } from "../types";
import { formatReasonWithAttachments } from "./formatReasonWithAttachments";
@ -48,7 +48,7 @@ export async function actualUnmuteCmd(
pluginData,
msg.channel,
asSingleLine(`
Unmuting **${renderUserUsername(user)}**
Unmuting **${renderUsername(user)}**
in ${timeUntilUnmute} (Case #${result.case.case_number})
`),
);
@ -57,7 +57,7 @@ export async function actualUnmuteCmd(
pluginData,
msg.channel,
asSingleLine(`
Unmuted **${renderUserUsername(user)}**
Unmuted **${renderUsername(user)}**
(Case #${result.case.case_number})
`),
);

View file

@ -10,7 +10,7 @@ import moment from "moment-timezone";
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { humanizeDurationShort } from "../../../humanizeDurationShort";
import { getBaseUrl } from "../../../pluginUtils";
import { DBDateFormat, MINUTES, renderUserUsername, resolveMember } from "../../../utils";
import { DBDateFormat, MINUTES, renderUsername, resolveMember } from "../../../utils";
import { IMuteWithDetails, mutesCmd } from "../types";
export const MutesCmd = mutesCmd({
@ -74,7 +74,7 @@ export const MutesCmd = mutesCmd({
totalMutes = manuallyMutedMembers.length;
lines = manuallyMutedMembers.map((member) => {
return `<@!${member.id}> (**${renderUserUsername(member.user)}**, \`${member.id}\`) 🔧 Manual mute`;
return `<@!${member.id}> (**${renderUsername(member.user)}**, \`${member.id}\`) 🔧 Manual mute`;
});
} else {
// Show filtered active mutes (but not manual mutes)
@ -123,7 +123,7 @@ export const MutesCmd = mutesCmd({
lines = filteredMutes.map((mute) => {
const user = pluginData.client.users.resolve(mute.user_id as Snowflake);
const username = user ? renderUserUsername(user) : "Unknown#0000";
const username = user ? renderUsername(user) : "Unknown#0000";
const theCase = muteCasesById.get(mute.case_id);
const caseName = theCase ? `Case #${theCase.case_number}` : "No case";

View file

@ -5,7 +5,7 @@ import { MAX_NICKNAME_ENTRIES_PER_USER } from "../../../data/GuildNicknameHistor
import { MAX_USERNAME_ENTRIES_PER_USER } from "../../../data/UsernameHistory";
import { NICKNAME_RETENTION_PERIOD } from "../../../data/cleanup/nicknames";
import { sendErrorMessage } from "../../../pluginUtils";
import { DAYS, renderUserUsername } from "../../../utils";
import { DAYS, renderUsername } from "../../../utils";
import { nameHistoryCmd } from "../types";
export const NamesCmd = nameHistoryCmd({
@ -31,7 +31,7 @@ export const NamesCmd = nameHistoryCmd({
const usernameRows = usernames.map((r) => `\`[${r.timestamp}]\` **${disableCodeBlocks(r.username)}**`);
const user = await pluginData.client.users.fetch(args.userId as Snowflake).catch(() => null);
const currentUsername = user ? renderUserUsername(user) : args.userId;
const currentUsername = user ? renderUsername(user) : args.userId;
const nicknameDays = Math.round(NICKNAME_RETENTION_PERIOD / DAYS);
const usernameDays = Math.round(NICKNAME_RETENTION_PERIOD / DAYS);

View file

@ -1,7 +1,7 @@
import { Snowflake } from "discord.js";
import { GuildPluginData } from "knub";
import { logger } from "../../../logger";
import { renderUserUsername, resolveMember } from "../../../utils";
import { renderUsername, resolveMember } from "../../../utils";
import { memberRolesLock } from "../../../utils/lockNameHelpers";
import { PendingMemberRoleChanges, ReactionRolesPluginType, RoleChangeMode } from "../types";
@ -33,9 +33,7 @@ export async function addMemberPendingRoleChange(
try {
await member.roles.set(Array.from(newRoleIds.values()), "Reaction roles");
} catch (e) {
logger.warn(
`Failed to apply role changes to ${renderUserUsername(member.user)} (${member.id}): ${e.message}`,
);
logger.warn(`Failed to apply role changes to ${renderUsername(member.user)} (${member.id}): ${e.message}`);
}
}
lock.unlock();

View file

@ -1,7 +1,7 @@
import { ChannelType, escapeInlineCode } from "discord.js";
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { asSingleLine, renderUserUsername } from "../../../utils";
import { asSingleLine, renderUsername } from "../../../utils";
import { getMissingChannelPermissions } from "../../../utils/getMissingChannelPermissions";
import { missingPermissionError } from "../../../utils/missingPermissionError";
import { BOT_SLOWMODE_CLEAR_PERMISSIONS } from "../requiredPermissions";
@ -45,7 +45,7 @@ export const SlowmodeClearCmd = slowmodeCmd({
pluginData,
msg.channel,
asSingleLine(`
Failed to clear slowmode from **${renderUserUsername(args.user)}** in <#${args.channel.id}>:
Failed to clear slowmode from **${renderUsername(args.user)}** in <#${args.channel.id}>:
Threads cannot have Bot Slowmode
`),
);
@ -56,7 +56,7 @@ export const SlowmodeClearCmd = slowmodeCmd({
pluginData,
msg.channel,
asSingleLine(`
Failed to clear slowmode from **${renderUserUsername(args.user)}** in <#${args.channel.id}>:
Failed to clear slowmode from **${renderUsername(args.user)}** in <#${args.channel.id}>:
\`${escapeInlineCode(e.message)}\`
`),
);
@ -66,7 +66,7 @@ export const SlowmodeClearCmd = slowmodeCmd({
sendSuccessMessage(
pluginData,
msg.channel,
`Slowmode cleared from **${renderUserUsername(args.user)}** in <#${args.channel.id}>`,
`Slowmode cleared from **${renderUsername(args.user)}** in <#${args.channel.id}>`,
);
},
});

View file

@ -1,11 +1,11 @@
import { User } from "discord.js";
import { GuildPluginData } from "knub";
import { renderUserUsername } from "../../utils";
import { renderUsername } from "../../utils";
import { UsernameSaverPluginType } from "./types";
export async function updateUsername(pluginData: GuildPluginData<UsernameSaverPluginType>, user: User) {
if (!user) return;
const newUsername = renderUserUsername(user);
const newUsername = renderUsername(user);
const latestEntry = await pluginData.state.usernameHistory.getLastEntry(user.id);
if (!latestEntry || newUsername !== latestEntry.username) {
await pluginData.state.usernameHistory.addEntry(user.id, newUsername);

View file

@ -1,6 +1,6 @@
import { helpers } from "knub";
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { renderUserUsername } from "../../../utils";
import { renderUsername } from "../../../utils";
import { utilityCmd } from "../types";
const { getMemberLevel } = helpers;
@ -18,6 +18,6 @@ export const LevelCmd = utilityCmd({
run({ message, args, pluginData }) {
const member = args.member || message.member;
const level = getMemberLevel(pluginData, member);
message.channel.send(`The permission level of ${renderUserUsername(member.user)} is **${level}**`);
message.channel.send(`The permission level of ${renderUsername(member.user)} is **${level}**`);
},
});

View file

@ -1,7 +1,7 @@
import { VoiceChannel } from "discord.js";
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { canActOn, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { renderUserUsername } from "../../../utils";
import { renderUsername } from "../../../utils";
import { LogsPlugin } from "../../Logs/LogsPlugin";
import { utilityCmd } from "../types";
@ -43,7 +43,7 @@ export const VcdisconnectCmd = utilityCmd({
sendSuccessMessage(
pluginData,
msg.channel,
`**${renderUserUsername(args.member.user)}** disconnected from **${channel.name}**`,
`**${renderUsername(args.member.user)}** disconnected from **${channel.name}**`,
);
},
});

View file

@ -1,7 +1,7 @@
import { ChannelType, Snowflake, VoiceChannel } from "discord.js";
import { commandTypeHelpers as ct } from "../../../commandTypes";
import { canActOn, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils";
import { channelMentionRegex, isSnowflake, renderUserUsername, simpleClosestStringMatch } from "../../../utils";
import { channelMentionRegex, isSnowflake, renderUsername, simpleClosestStringMatch } from "../../../utils";
import { LogsPlugin } from "../../Logs/LogsPlugin";
import { utilityCmd } from "../types";
@ -80,11 +80,7 @@ export const VcmoveCmd = utilityCmd({
newChannel: channel,
});
sendSuccessMessage(
pluginData,
msg.channel,
`**${renderUserUsername(args.member.user)}** moved to **${channel.name}**`,
);
sendSuccessMessage(pluginData, msg.channel, `**${renderUsername(args.member.user)}** moved to **${channel.name}**`);
},
});
@ -157,7 +153,7 @@ export const VcmoveAllCmd = utilityCmd({
sendErrorMessage(
pluginData,
msg.channel,
`Failed to move ${renderUserUsername(currMember.user)} (${currMember.id}): You cannot act on this member`,
`Failed to move ${renderUsername(currMember.user)} (${currMember.id}): You cannot act on this member`,
);
errAmt++;
continue;
@ -175,7 +171,7 @@ export const VcmoveAllCmd = utilityCmd({
sendErrorMessage(
pluginData,
msg.channel,
`Failed to move ${renderUserUsername(currMember.user)} (${currMember.id})`,
`Failed to move ${renderUsername(currMember.user)} (${currMember.id})`,
);
errAmt++;
continue;

View file

@ -1607,15 +1607,11 @@ export const DBDateFormat = "YYYY-MM-DD HH:mm:ss";
//export function renderUsername(username: GuildMember): string;
//export function renderUsername(username: User): string;
//export function renderUsername(username: string, discriminator?: string): string;
export function renderUsername(username: string | User | GuildMember, discriminator?: string): string {
export function renderUsername(username: string | User | GuildMember | UnknownUser, discriminator?: string): string {
if (username instanceof GuildMember) return username.user.tag;
if (username instanceof User) return username.tag;
if (username instanceof User || username instanceof UnknownUser) return username.tag;
if (discriminator === "0" || discriminator === "0000") {
return username;
}
return `${username}#${discriminator}`;
}
export function renderUserUsername(user: User | UnknownUser): string {
return renderUsername(user.username, user.discriminator);
}

View file

@ -13,7 +13,7 @@ import {
User,
} from "discord.js";
import { GuildPluginData } from "knub";
import { UnknownUser, renderUserUsername } from "src/utils";
import { UnknownUser, renderUsername } from "src/utils";
import { Case } from "../data/entities/Case";
import {
ISavedMessageAttachmentData,
@ -250,7 +250,7 @@ export function userToTemplateSafeUser(user: User | UnknownUser): TemplateSafeUs
discriminator: "0000",
mention: `<@${user.id}>`,
tag: "Unknown#0000",
renderedUsername: renderUserUsername(user),
renderedUsername: renderUsername(user),
});
}
@ -264,7 +264,7 @@ export function userToTemplateSafeUser(user: User | UnknownUser): TemplateSafeUs
avatarURL: user.displayAvatarURL(),
bot: user.bot,
createdAt: user.createdTimestamp,
renderedUsername: renderUserUsername(user),
renderedUsername: renderUsername(user),
});
}