首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取未定义的属性“MessageButton”(discord.js)

无法读取未定义的属性“MessageButton”(discord.js)
EN

Stack Overflow用户
提问于 2022-03-13 13:42:08
回答 1查看 400关注 0票数 0

我有一个问题,我不知道为什么,但当我使用命令“!按钮”,我有一个错误,这是我的代码来检查它:

代码语言:javascript
复制
const discord = require('discord.js');
const client = new discord.Client();
const disbut = require('discord-buttons')(client);

client.on("message", async (message) => {
    if (message.content == "!button") { // Use this command only once and only on one channel.
    let buttons = new disbut.MessageButton()
        .setStyle('green') // Button Color
        .setLabel('Test') // Button Name 
        .setID('Button') // Button ID
    message.channel.send('Message Text.', { buttons: [buttons] });
    }
    if (message.content == "!urlbutton") { // Use this command only once and only on one channel.
    let buttons2 = new disbut.MessageButton()
        .setStyle('url') // Button Url
        .setLabel('Discord') // Button Name
        .setURL('https://discord.com') // URL for forwarding
        .setDisabled()
    message.channel.send('Message Text.', { buttons: [buttons2] });
    }
});

错误:

代码语言:javascript
复制
let buttons = new disbut.MessageButton()
                             ^

TypeError: Cannot read property 'MessageButton' of undefined
    at Client.<anonymous> (C:\Users\Sans\Desktop\discord-button-main\index.js:8:30)
    at Client.emit (node:events:394:28)
    at MessageCreateAction.handle (C:\Users\Sans\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\Sans\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)

问题是什么?我真的不知道^^“(这不是我的全部代码)

EN

回答 1

Stack Overflow用户

发布于 2022-03-13 15:44:10

我想看看这个指南,以了解更多关于按钮和交互的知识。

这使用discord.js v13

要解决眼前的问题,需要重新编码,如下所示:

代码语言:javascript
复制
const { Client, MessageActionRow, MessageButton } = require('discord.js');
const client = new Client();

client.on('messageCreate', async message => {
    if (message.content === '!button') {
        let buttons = new MessageActionRow()
            .addComponents(
                new MessageButton()
                .setStyle('SUCCESS') //Choices are PRIMARY, a blurple button, SECONDARY, a grey button, SUCCESS, a green button, DANGER, a red button, LINK, a button that navigates to a URL.
                .setLabel('Test')
                .setCustomId('button')
         message.channel.send({
             content: 'Message Text',
             components: [buttons]
         })
    } else if (message.content === '!urlbutton') {
        let buttons2 = new MessageActionRow()
            .addComponents(
                new MessageButton()
                .setStyle('LINK')
                .setLabel('Test')
                .setURL('https://discord.com')
         message.channel.send({
             content: 'Message Text',
             components: [buttons2]
         })
    }
})

按钮是如何与不同的侦听器交互的:

代码语言:javascript
复制
client.on('interactionCreate', async interaction => {
    if (interaction.isButton()) {
        const buttonID = interaction.customId
        if (buttonID === 'button') {
        // do something
        return interaction.reply({
            content: 'Say something',
            ephemeral: true //set false or remove if you want everyone to see the response
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71457331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档