单击 discord.js v12 后如何禁用按钮
How to disable button after clicked on discord.js v12
Discord.js v12 禁用按钮功能
单击 discord.js 上的按钮后如何禁用它?
我尝试使用 collector.on 函数,因为这似乎可以做到,但我不能让它与我的代码一起工作,我知道,我没有复制粘贴,但我似乎无法解决它并且这让我压力很大,我浏览了所有网络以获取答案,但没有任何答案。 discord-buttons js 指南刚刚消失了。好吧,您来对地方了,您可以简单地按照下面的说明进行操作,这确实可以帮助您。
所以因为最后的答案不正确但是有一些正确的格式
这就是你想做的。代码在下面得到了最好的解释
代码:
// After you have made your buttons and the embed you then need to do
// You can do this method a lot of times just make sure to add a cooldown.
// You can also do the same with the MessageActionRow() constructor
const embed = new Discord.MessageEmbed().setColor('red').setDescription('click the below buttons').setTimestamp()
const dbutton = new MessageButton().setStyle('blurple').setID('lol').setLabel('disabled button').setDisabled(true).setEmoji('')
const button = new MessageButton().setStyle('blurple').setID('yes').setLabel('enabled button').setEmoji('')
const after = await message.channel.send({ embed: embed, components: [button] })
client.on("clickButton", async (button) => {
if (button.id === "yes") {
message.channel.send({ content: "you clicked the first button" })
after.edit({ embed: embed, components: [dbutton] })
}
button.reply.defer();
});
上面的embed:
和components:
在v12中已经支持
我希望这能帮助你解决更多问题
MessageButton class 有一个“setDisabled”方法,您可以将其设置为 true。
完成后,它不会自动禁用它。您需要编辑嵌入,再次传递组件。
const button11 =
const row = new MessageActionRow()
.addComponents(
new MessageButton()
.setStyle('green')
.setID('yes')
.setLabel('Lock')
.setEmoji('')
)
const supportembedy = new Discord.MessageEmbed()
.set(....)
let botMsg = await channel.send(supportembedy, row);
const filter = i => ((i.customId === "yes") || (i.customId === "no")) && i.user.id === message.author.id
const collector = interaction.channel.createMessageComponentCollector({filter, time: 15000})
collector.on("collect", async (i) => {
if (i.customId === 'yes') {
row[0].setDisabled(true)
// first way
botMsg.edit({ embeds: [supportembedy], components: [row] })
//second way
i.update({ embeds: [supportembedy], components: [row] })
}
}
Discord.js v12 禁用按钮功能
单击 discord.js 上的按钮后如何禁用它? 我尝试使用 collector.on 函数,因为这似乎可以做到,但我不能让它与我的代码一起工作,我知道,我没有复制粘贴,但我似乎无法解决它并且这让我压力很大,我浏览了所有网络以获取答案,但没有任何答案。 discord-buttons js 指南刚刚消失了。好吧,您来对地方了,您可以简单地按照下面的说明进行操作,这确实可以帮助您。
所以因为最后的答案不正确但是有一些正确的格式 这就是你想做的。代码在下面得到了最好的解释
代码:
// After you have made your buttons and the embed you then need to do
// You can do this method a lot of times just make sure to add a cooldown.
// You can also do the same with the MessageActionRow() constructor
const embed = new Discord.MessageEmbed().setColor('red').setDescription('click the below buttons').setTimestamp()
const dbutton = new MessageButton().setStyle('blurple').setID('lol').setLabel('disabled button').setDisabled(true).setEmoji('')
const button = new MessageButton().setStyle('blurple').setID('yes').setLabel('enabled button').setEmoji('')
const after = await message.channel.send({ embed: embed, components: [button] })
client.on("clickButton", async (button) => {
if (button.id === "yes") {
message.channel.send({ content: "you clicked the first button" })
after.edit({ embed: embed, components: [dbutton] })
}
button.reply.defer();
});
上面的embed:
和components:
在v12中已经支持
我希望这能帮助你解决更多问题
MessageButton class 有一个“setDisabled”方法,您可以将其设置为 true。
完成后,它不会自动禁用它。您需要编辑嵌入,再次传递组件。
const button11 =
const row = new MessageActionRow()
.addComponents(
new MessageButton()
.setStyle('green')
.setID('yes')
.setLabel('Lock')
.setEmoji('')
)
const supportembedy = new Discord.MessageEmbed()
.set(....)
let botMsg = await channel.send(supportembedy, row);
const filter = i => ((i.customId === "yes") || (i.customId === "no")) && i.user.id === message.author.id
const collector = interaction.channel.createMessageComponentCollector({filter, time: 15000})
collector.on("collect", async (i) => {
if (i.customId === 'yes') {
row[0].setDisabled(true)
// first way
botMsg.edit({ embeds: [supportembedy], components: [row] })
//second way
i.update({ embeds: [supportembedy], components: [row] })
}
}