51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import { Message } from "revolt.js"
|
|
import { Database } from "bun:sqlite";
|
|
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);
|
|
|
|
members.forEach( async alter => {
|
|
const pre_prefix = alter.prefix.split("text");
|
|
if (
|
|
message.content.startsWith(pre_prefix[0])
|
|
&& message.content.endsWith(pre_prefix[1])
|
|
&& message.content.length > 1
|
|
){
|
|
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.")
|
|
}
|
|
}
|
|
})
|
|
}
|