2024-03-15 18:41:08 +01:00
import { Message } from "revolt.js"
2024-03-15 23:20:11 +01:00
import { Database } from "bun:sqlite" ;
2024-03-15 18:41:08 +01:00
import { MemberRepo } from "../repositories/MemberRepo"
import MemberModel from "../models/MemberModel"
export default async function sendAsMember ( message : Message , database : Database ) {
2024-03-15 23:20:11 +01:00
const memberRepo : MemberRepo = new MemberRepo ( database ) ;
let members : MemberModel [ ] ;
await memberRepo . getAltersByUserId ( message . author . id ) . then ( result = > members = result ) ;
2024-03-15 23:40:10 +01:00
2024-03-15 23:20:11 +01:00
members . forEach ( async alter = > {
2024-03-15 18:41:08 +01:00
const pre_prefix = alter . prefix . split ( "text" ) ;
2024-03-15 23:20:11 +01:00
if (
message . content . startsWith ( pre_prefix [ 0 ] )
2024-03-15 23:40:10 +01:00
&& message . content . endsWith ( pre_prefix [ 1 ] )
&& message . content . length > 1
) {
2024-03-15 18:41:08 +01:00
let actualContent : string = message . content ;
actualContent = actualContent . slice ( pre_prefix [ 0 ] . length , actualContent . length - pre_prefix [ 1 ] . length )
const replyIds : string [ ] | undefined = message . replyIds ;
let replies : any [ ] = [ ] ;
if ( replyIds !== undefined ) {
replyIds . forEach ( replyId = > {
replies . push ( {
id : replyId ,
mention : false
} )
} )
}
try {
await message . channel . sendMessage ( {
content : actualContent ,
masquerade : {
name : alter.name ,
avatar : alter.profile_pic_url ,
color : alter.color
} ,
replies : replies
} )
await message . delete ( ) ;
}
catch ( e ) {
console . log ( e )
await message . channel . sendMessage ( "Error: PluralCake requires at least these permissions: \n- Masquerade permissions. \n- Message editing permissions." )
}
}
} )
}