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 { fileExists, getFileSize } from '@/utils/file_utils'
|
||||||
import { formatBytes } from '@/utils/string_utils'
|
import { formatBytes } from '@/utils/string_utils'
|
||||||
import { isWhitelisted } from '@/lib/whitelist'
|
import { isWhitelisted } from '@/lib/whitelist'
|
||||||
|
import { getMentionUsername } from '@/utils/discord_utils'
|
||||||
let muted = false
|
let muted = false
|
||||||
const BRAIN_FILE = path.resolve(process.cwd(), 'data', 'brain.dat')
|
const BRAIN_FILE = path.resolve(process.cwd(), 'data', 'brain.dat')
|
||||||
// every 20 messages
|
// every 20 messages
|
||||||
@@ -75,7 +76,7 @@ export async function trainMegahal(message: Discord.Message, replyChance: number
|
|||||||
(msg, trigger) =>
|
(msg, trigger) =>
|
||||||
msg.toLowerCase().startsWith(trigger.toLowerCase()) ? msg.substring(trigger.length) : msg,
|
msg.toLowerCase().startsWith(trigger.toLowerCase()) ? msg.substring(trigger.length) : msg,
|
||||||
message.content,
|
message.content,
|
||||||
)
|
).replace(/<@!?(\d+)>/g, (_, id) => getMentionUsername(message, id))
|
||||||
logger.debug('Learning from message:', JSON.stringify(input))
|
logger.debug('Learning from message:', JSON.stringify(input))
|
||||||
|
|
||||||
if (totalMsgCount >= SAVE_RATE) {
|
if (totalMsgCount >= SAVE_RATE) {
|
||||||
|
|||||||
@@ -4,3 +4,21 @@ export async function isAdministrator(member: Discord.GuildMember): Promise<bool
|
|||||||
// TODO check role permissions
|
// TODO check role permissions
|
||||||
return member.permissions.has(PermissionsBitField.Flags.ManageGuild)
|
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