含義:斜杠命令的回應中有一些內容和一個按鈕。按鈕的任務是洗掉訊息。我們設法做的是強制按鈕洗掉訊息,但問題是不僅洗掉按鈕的訊息,還有其他訊息。
const {
MessageEmbed,
MessageActionRow,
MessageButton
} = require('discord.js')
const {
SlashCommandBuilder
} = require('@discordjs/builders')
const Color = 'RANDOM'
module.exports = {
name: 'Name',
data: new SlashCommandBuilder()
.setName('Name')
.setDescription('Description')
.addStringOption(option => option.setName('choice')
.setDescription('Description')
.setRequired(true)
.addChoice('choice1', 'choice1')
.addChoice('choice2', 'choice2')
.addChoice('choice3', 'choice3')
async run(interaction) {
const Embed = new MessageEmbed()
.setColor(Color)
.setTimestamp()
.setImage(url)
const Btns = new MessageActionRow()
.addComponents(new MessageButton()
.setCustomId('DeleteMsg')
.setStyle('DANGER')
.setLabel('Удалить сообщение (Только автор или администратор)'))
interaction.reply({
embeds: [Embed],
components: [Btns]
})
try {
const collector = interaction.channel.createMessageComponentCollector({
time: 60000
})
collector.on('collect', async i => {
interaction.deleteReply()
})
} catch (error) {
console.log(error)
}
}
}
uj5u.com熱心網友回復:
好的,首先,您應該始終向組件收集器添加過濾器。(要收集多少專案,檢查是否正確的用戶使用了您的組件,...)
您還應該有一個真正的自定義 ID(如 UUID 或類似的東西),因為如果在同一通道中多次呼叫您的命令,那么您的自定義 ID 將不會在任何地方自定義,并且可以由運行在渠道。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/437182.html
標籤:javascript 节点.js 不和谐 不和谐.js
