import * as t from "io-ts"; import { automodAction } from "../helpers"; import { LogType } from "../../../data/LogType"; import { asyncMap, resolveMember, tNullable } from "../../../utils"; import { resolveActionContactMethods } from "../functions/resolveActionContactMethods"; import { ModActionsPlugin } from "../../ModActions/ModActionsPlugin"; export const ChangeNicknameAction = automodAction({ configType: t.type({ name: t.string, }), async apply({ pluginData, contexts, actionConfig }) { const members = contexts.map(c => c.member).filter(Boolean); const uniqueMembers = new Set(members); for (const member of uniqueMembers) { if (pluginData.state.recentNicknameChanges.has(member.id)) continue; member.edit({ nick: actionConfig.name }).catch(err => { /* TODO: Log this error */ }); pluginData.state.recentNicknameChanges.set(member.id, { timestamp: Date.now() }); } }, });