Revolt-Bot/src/utils/sendAsMemberHandler.ts

52 lines
1.5 KiB
TypeScript
Raw Normal View History

2024-03-15 18:41:08 +01:00
import { Message } from "revolt.js"
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) {
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
members.forEach( async alter => {
2024-03-15 18:41:08 +01:00
const pre_prefix = alter.prefix.split("text");
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.")
}
}
})
}