diff --git a/labscore/paginator/structures/BasePaginator.js b/labscore/paginator/structures/BasePaginator.js index 094de38..b8299a9 100644 --- a/labscore/paginator/structures/BasePaginator.js +++ b/labscore/paginator/structures/BasePaginator.js @@ -9,9 +9,20 @@ module.exports = class BasePaginator extends EventEmitter { this.commandMessage = data.commandMessage || null; this.pages = data.pages; this.index = 0; - this.targetUser = data.targetUser || this.message.author.id; + this.targetUser = data.targetUser || this.message?.author?.id || data.context?.user?.id; + + this.waitingForPage = null; - this.editOrReply = data.context.editOrReply.bind(data.context); + this.editOrReply = data.context.editOrReply?.bind(data.context); + + // Support application command context + if(data.context.editOrRespond) { + this.editOrRespond = data.context.editOrRespond.bind(data.context) + this.editOrReply = (d) => { + console.log(d) + return this.editOrRespond(d) + } + } } static asMessage(ctx) { diff --git a/labscore/paginator/structures/InteractionPaginator.js b/labscore/paginator/structures/InteractionPaginator.js deleted file mode 100644 index 956f656..0000000 --- a/labscore/paginator/structures/InteractionPaginator.js +++ /dev/null @@ -1,8 +0,0 @@ -const BasePaginator = require("./BasePaginator"); - -module.exports = class InteractionPaginator extends BasePaginator { - constructor(client, data) { - super(client, data); - this.waitingForPage = null; - } -}; diff --git a/labscore/paginator/structures/Paginator.js b/labscore/paginator/structures/Paginator.js index 1ad3da3..8545a5d 100644 --- a/labscore/paginator/structures/Paginator.js +++ b/labscore/paginator/structures/Paginator.js @@ -1,7 +1,7 @@ -const InteractionPaginator = require("./InteractionPaginator"); +const BasePaginator = require("./BasePaginator"); const assert = require("assert"); -const { Constants, Utils } = require('detritus-client') +const { Constants, Utils } = require('detritus-client'); const { Components } = Utils const { InteractionCallbackTypes } = Constants @@ -44,7 +44,7 @@ module.exports = class Paginator { if (!allowedEvents.has(event)) return; for (const listener of this.activeListeners) { - if (!(listener instanceof InteractionPaginator)) continue; + if (!(listener instanceof BasePaginator)) continue; if (!listener.commandMessage) continue; if (event === "MESSAGE_CREATE" && @@ -60,7 +60,7 @@ module.exports = class Paginator { async handleButtonEvent(context) { let listener; for (const l of this.activeListeners) { - if (!(l instanceof InteractionPaginator)) continue; + if (!(l instanceof BasePaginator)) continue; if (!l.commandMessage) continue; if (l.isCommandMessage(context.message.id)) { listener = l @@ -150,7 +150,7 @@ module.exports = class Paginator { // Check if a paginator exists, if it does kill the old one let listener; for (const l of this.activeListeners) { - if (!(l instanceof InteractionPaginator)) continue; + if (!(l instanceof BasePaginator)) continue; if (!l.commandMessage) continue; if (l.isCommandMessage(data.context.message.id)) { @@ -159,7 +159,7 @@ module.exports = class Paginator { } if(listener) await listener.stop() - const instance = new InteractionPaginator(this, data); + const instance = new BasePaginator(this, data); this.activeListeners.push(instance); setTimeout(() => {