zappyzep/backend/src/plugins/MessageSaver/events/SaveMessagesEvts.ts

53 lines
1.2 KiB
TypeScript

import { messageSaverEvt } from "../types";
import { Message } from "eris";
export const MessageCreateEvt = messageSaverEvt({
event: "messageCreate",
allowOutsideOfGuild: false,
async listener(meta) {
// Only save regular chat messages
if (meta.args.message.type !== 0) {
return;
}
await meta.pluginData.state.savedMessages.createFromMsg(meta.args.message);
},
});
export const MessageUpdateEvt = messageSaverEvt({
event: "messageUpdate",
allowOutsideOfGuild: false,
async listener(meta) {
if (meta.args.message.type !== 0) {
return;
}
await meta.pluginData.state.savedMessages.saveEditFromMsg(meta.args.message);
},
});
export const MessageDeleteEvt = messageSaverEvt({
event: "messageDelete",
allowOutsideOfGuild: false,
async listener(meta) {
const msg = meta.args.message as Message;
if (msg.type != null && msg.type !== 0) {
return;
}
await meta.pluginData.state.savedMessages.markAsDeleted(msg.id);
},
});
export const MessageDeleteBulkEvt = messageSaverEvt({
event: "messageDeleteBulk",
allowOutsideOfGuild: false,
async listener(meta) {
const ids = meta.args.messages.map(m => m.id);
await meta.pluginData.state.savedMessages.markBulkAsDeleted(ids);
},
});