不和谐按钮不改变页面

Discord Button not changing pages

我试图制作一个上面有按钮的命令,按钮工作正常但它停留在当前页面,我有 3 页,点击 next 按钮后应该移动到第 2 页,消息放在 (edited) 但一直停留在第 1 页,

这是我的代码行:

在test.js

const paginator = require('../../ButtonPaginator')
const page1 = new MessageEmbed()
.setTitle('Command List')
.setDescription(`This is the list of moderators commands. To use this type \`${prefix}<command>\``)
.addFields(
  {name: "Moderation Command", value:"`announce, ban, clear, hack, kick, lock, mute, nuke, restart, snipe, suggestions, unlock, unmute, warn`"},
  {name: "Configuration Command", value:"**Set Configurations:**\n`set-casino, set-confess, set-leave, set-modlog, set-role, set-suggestion-log, set-suggestion, set-tracker, set-welcome`\n\n**Delete Configuration**\n`delete-casino, delete-confess, delete-leave, delete-modlog, delete-role, delete-suggestion-log, delete-suggestion, delete-tracker, delete-welcome`"}
)
.setColor('RANDOM')
.setTimestamp()


const page2 = new MessageEmbed()
.setTitle('Testing Page 2')

const page3 = new MessageEmbed()
.setTitle('Testing Page 3')

let pages = [page1, page2, page3]
paginator(message, pages)

在我的paginator.js

const { MessageButton, MessageActionRow } = require('discord.js')
const ms = require('ms');


const paginator = async (message, pages) => {
if(!message && !message.channel) throw new Error("Provide a message to acces the channel")
if(!pages) throw new Error("Please provide pages")

let page = 0
const btn1 = new MessageButton().setLabel("Back").setCustomId("00001").setStyle('SECONDARY')
const btn2 = new MessageButton().setLabel("Next").setCustomId("00002").setStyle('SECONDARY')
const row = new MessageActionRow().addComponents([btn1, btn2])
const btn1After = new MessageButton().setLabel("Back").setCustomId("00001").setStyle('SECONDARY').setDisabled()
const btn2After = new MessageButton().setLabel("Next").setCustomId("00002").setStyle('SECONDARY').setDisabled()
const deadRow = new MessageActionRow().addComponents([btn1After, btn2After])
const curPage = await message.channel.send({embeds: [pages[0]], components: [row]})
const filter = (b) => ["00001, 00002"].includes(b.id)
const col = await curPage.createMessageComponentCollector(filter, { time: ms('10s') })

col.on('collect', async (button) => {
    await button.deferUpdate()
    if(button.user.id !== message.author.id) return;
    if(button.id == '00001') {
        page = page > 0 ? --page : pages.length - 1
    } else if(button.id == '00002') {
        page = page + 1 < pages.length ? ++page : 0;
    }

    curPage.edit({embeds: [pages[page]], components: [row]})
})

col.on('end', () => {
    if(!curPage.deleted) {
        curPage.edit({embeds: [pages[page]], components: [deadRow]})
    }
})

return curPage
}

module.exports = paginator

我是这个按钮功能的新手

我找到了 Discord 按钮交互的解决方案。

这部分代码:

col.on('collect', async (button) => {
await button.deferUpdate()
if(button.user.id !== message.author.id) return;
if(button.id == '00001') {
    page = page > 0 ? --page : pages.length - 1
} else if(button.id == '00002') {
    page = page + 1 < pages.length ? ++page : 0;
}

curPage.edit({embeds: [pages[page]], components: [row]})
})

而不是 button.id 应该是 button.customId