mirror of
https://github.com/chenasraf/venom.git
synced 2026-05-17 17:28:08 +00:00
fix(megahal): replace input mentions with raw usernames
This commit is contained in:
@@ -6,6 +6,7 @@ import path from 'node:path'
|
||||
import { fileExists, getFileSize } from '@/utils/file_utils'
|
||||
import { formatBytes } from '@/utils/string_utils'
|
||||
import { isWhitelisted } from '@/lib/whitelist'
|
||||
import { getMentionUsername } from '@/utils/discord_utils'
|
||||
let muted = false
|
||||
const BRAIN_FILE = path.resolve(process.cwd(), 'data', 'brain.dat')
|
||||
// every 20 messages
|
||||
@@ -75,7 +76,7 @@ export async function trainMegahal(message: Discord.Message, replyChance: number
|
||||
(msg, trigger) =>
|
||||
msg.toLowerCase().startsWith(trigger.toLowerCase()) ? msg.substring(trigger.length) : msg,
|
||||
message.content,
|
||||
)
|
||||
).replace(/<@!?(\d+)>/g, (_, id) => getMentionUsername(message, id))
|
||||
logger.debug('Learning from message:', JSON.stringify(input))
|
||||
|
||||
if (totalMsgCount >= SAVE_RATE) {
|
||||
|
||||
@@ -4,3 +4,21 @@ export async function isAdministrator(member: Discord.GuildMember): Promise<bool
|
||||
// TODO check role permissions
|
||||
return member.permissions.has(PermissionsBitField.Flags.ManageGuild)
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets username from mention.
|
||||
*
|
||||
* If clean is true (default), will try to fetch nickname from CA style - "Real Name (Nickname)"
|
||||
*/
|
||||
export function getMentionUsername(message: Discord.Message, userId: string, clean = true): string {
|
||||
const displayName = message.mentions.members!.get(userId)?.nickname ?? 'Unknown'
|
||||
if (clean) {
|
||||
const startParenIdx = displayName.indexOf('(')
|
||||
const endParenIdx = displayName.indexOf(')')
|
||||
if (startParenIdx !== -1 && endParenIdx !== -1) {
|
||||
return displayName.substring(startParenIdx + 1, endParenIdx)
|
||||
}
|
||||
return displayName
|
||||
}
|
||||
return displayName
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user