mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-07-07 19:17:19 +00:00
tags: delete command/response msg if the other is deleted
This commit is contained in:
parent
145f5866cf
commit
50c6233190
6 changed files with 208 additions and 13 deletions
|
@ -146,6 +146,7 @@ export class GuildSavedMessages extends BaseRepository {
|
|||
|
||||
const inserted = await this.messages.findOne(data.id);
|
||||
this.events.emit("create", [inserted]);
|
||||
this.events.emit(`create:${data.id}`, [inserted]);
|
||||
}
|
||||
|
||||
async createFromMsg(msg: Message, overrides = {}) {
|
||||
|
@ -180,6 +181,7 @@ export class GuildSavedMessages extends BaseRepository {
|
|||
|
||||
if (deleted) {
|
||||
this.events.emit("delete", [deleted]);
|
||||
this.events.emit(`delete:${id}`, [deleted]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -227,6 +229,7 @@ export class GuildSavedMessages extends BaseRepository {
|
|||
);
|
||||
|
||||
this.events.emit("update", [newMessage, oldMessage]);
|
||||
this.events.emit(`update:${id}`, [newMessage, oldMessage]);
|
||||
}
|
||||
|
||||
async saveEditFromMsg(msg: Message) {
|
||||
|
@ -247,4 +250,31 @@ export class GuildSavedMessages extends BaseRepository {
|
|||
this.toBePermanent.add(id);
|
||||
}
|
||||
}
|
||||
|
||||
async onceMessageAvailable(id: string, handler: (msg: SavedMessage) => any, timeout: number = 60 * 1000) {
|
||||
let called = false;
|
||||
let onceEventListener;
|
||||
let timeoutFn;
|
||||
|
||||
const callHandler = async (msg: SavedMessage) => {
|
||||
this.events.off(`create:${id}`, onceEventListener);
|
||||
clearTimeout(timeoutFn);
|
||||
|
||||
if (called) return;
|
||||
called = true;
|
||||
|
||||
await handler(msg);
|
||||
};
|
||||
|
||||
onceEventListener = this.events.once(`create:${id}`, callHandler);
|
||||
timeoutFn = setTimeout(() => {
|
||||
called = true;
|
||||
callHandler(null);
|
||||
}, timeout);
|
||||
|
||||
const messageInDB = await this.find(id);
|
||||
if (messageInDB) {
|
||||
callHandler(messageInDB);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue