@@ -35,11 +35,15 @@ type Files = Exclude<MessageOptions['files'], undefined>;
3535
3636export class PagesBuilder extends MessageEmbed {
3737
38+ /**
39+ * Common
40+ */
3841 readonly interaction : CommandInteraction ;
3942 private collector ! : InteractionCollector < MessageComponentInteraction > ;
4043 private messageComponent ?: MessageComponentInteraction ;
4144 private message ! : Message ;
4245 private messageId = '' ;
46+ private buildMethod ! : 'followUp' | 'editReply' | 'reply' ;
4347
4448 /**
4549 * Pages
@@ -50,16 +54,25 @@ export class PagesBuilder extends MessageEmbed {
5054 private paginationFormat = '%c / %m' ;
5155 private loop = true ;
5256
57+ /**
58+ * Components
59+ */
5360 private components : MessageActionRow [ ] = [ ] ;
5461 private defaultButtons : MessageActionRow [ ] = [ ] ;
5562
63+ /**
64+ * Listen
65+ */
5666 private listenTimeout : number = 5 * 60 * 1000 ;
5767 private listenUsers : GuildMember [ 'id' ] [ ] ;
5868 private timeout ! : NodeJS . Timeout ;
5969 private autoResetTimeout = true ;
6070 private endColor : ColorResolvable = 'GREY' ;
6171 private endMethod : EndMethod | EndMethodUnion = EndMethod . EDIT ;
6272
73+ /**
74+ * Triggers
75+ */
6376 private triggers : TriggersMap = new Map ( ) ;
6477
6578 constructor ( interaction : CommandInteraction ) {
@@ -179,15 +192,16 @@ export class PagesBuilder extends MessageEmbed {
179192 } ;
180193
181194 if ( this . messageComponent ) {
182- if ( this . messageComponent . replied ) {
183- return ;
184- }
185-
186- const response = await this . messageComponent [ this . messageComponent . deferred ? 'editReply' : 'update' ] ( data ) ;
195+ const method = this . messageComponent . deferred || this . messageComponent . replied ?
196+ 'editReply'
197+ :
198+ 'update' ;
187199
188- this . messageComponent = undefined ;
200+ return this . messageComponent [ method ] ( data ) ;
201+ }
189202
190- return response ;
203+ if ( this . buildMethod !== 'reply' ) {
204+ return this . message . edit ( data ) ;
191205 }
192206
193207 return this . interaction . editReply ( data ) ;
@@ -514,6 +528,8 @@ export class PagesBuilder extends MessageEmbed {
514528 }
515529 } ) ;
516530
531+ this . buildMethod = method ;
532+
517533 if ( ! this . messageId ) {
518534 await this . interaction . fetchReply ( )
519535 . then ( ( message ) => {
0 commit comments