39 lines
952 B
TypeScript
39 lines
952 B
TypeScript
import { Plugin, decorators as d } from "knub";
|
|
import { Message } from "eris";
|
|
import { GuildSavedMessages } from "../data/GuildSavedMessages";
|
|
|
|
export class MessageSaverPlugin extends Plugin {
|
|
protected savedMessages: GuildSavedMessages;
|
|
|
|
onLoad() {
|
|
this.savedMessages = GuildSavedMessages.getInstance(this.guildId);
|
|
}
|
|
|
|
@d.event("messageCreate", "guild", false)
|
|
async onMessageCreate(msg: Message) {
|
|
// Only save regular chat messages
|
|
if (msg.type !== 0) {
|
|
return;
|
|
}
|
|
|
|
await this.savedMessages.createFromMsg(msg);
|
|
}
|
|
|
|
@d.event("messageDelete", "guild", false)
|
|
async onMessageDelete(msg: Message) {
|
|
if (msg.type != null && msg.type !== 0) {
|
|
return;
|
|
}
|
|
|
|
await this.savedMessages.markAsDeleted(msg.id);
|
|
}
|
|
|
|
@d.event("messageUpdate", "guild", false)
|
|
async onMessageUpdate(msg: Message) {
|
|
if (msg.type !== 0) {
|
|
return;
|
|
}
|
|
|
|
await this.savedMessages.saveEditFromMsg(msg);
|
|
}
|
|
}
|