我有一个问题,我不知道为什么,但当我使用命令“!按钮”,我有一个错误,这是我的代码来检查它:
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] });
}
});错误:
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)问题是什么?我真的不知道^^“(这不是我的全部代码)
发布于 2022-03-13 15:44:10
我想看看这个指南,以了解更多关于按钮和交互的知识。
这使用discord.js v13
要解决眼前的问题,需要重新编码,如下所示:
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]
})
}
})按钮是如何与不同的侦听器交互的:
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
}
}
}https://stackoverflow.com/questions/71457331
复制相似问题