第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何刪除 DiscordJS (v12) 中的現(xiàn)有嵌入

如何刪除 DiscordJS (v12) 中的現(xiàn)有嵌入

12345678_0001 2023-07-29 14:54:50
我正在開發(fā)一個(gè)小型私人 Discord 機(jī)器人(主要用于學(xué)習(xí))我一直在開發(fā)一個(gè)功能,其中機(jī)器人發(fā)送消息,用戶發(fā)送響應(yīng),機(jī)器人將刪除初始嵌入并跟進(jìn)另一個(gè)嵌入。(創(chuàng)建一系列嵌入消息來收集用戶輸入并從中構(gòu)建最終結(jié)果)到目前為止,這就是我的代碼的組成const wait = 30000;    let count;    const embed = new Discord.MessageEmbed()        .setColor('#9EFF9A')        .setTitle('Question?')        .setDescription('');    message.channel.send(embed);    message.channel.awaitMessages(m => m.author.id == message.author.id,        { max: 1, time: `${wait}` }).then(collected => {        message.delete(embed);        count = collected.first().content;            console.log(count);    }).catch(() => {        message.delete(embed);        return message.reply('No reply after ' + `${wait / 1000}` + ' seconds, operation canceled.').then(m => {            m.delete({ timeout: 15000 });        });    });我嘗試了各種迭代,message.delete();但沒有得到有用的結(jié)果,機(jī)器人通常最終會(huì)刪除用戶發(fā)送的用于啟動(dòng)嵌入鏈的命令消息。我從一個(gè)朋友那里得到了一個(gè)建議,我也在網(wǎng)上看到了幾次,如下:.then(() => {message.delete()})我無法想出任何方法將其實(shí)現(xiàn)到我當(dāng)前的代碼中。我有什么誤解嗎?我對(duì) DiscordJS 和 Javascript 非常陌生,我的朋友確實(shí)提到 .then() 語句可能會(huì)變得非常棘手,我感謝我能得到的任何幫助!
查看完整描述

3 回答

?
長(zhǎng)風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

您的代碼非常接近實(shí)現(xiàn)您想要的目標(biāo),除了您嘗試刪除Embed您創(chuàng)建的對(duì)象而不是Message嵌入的對(duì)象。這是一個(gè)小小的調(diào)整,可以實(shí)現(xiàn)您所需要的:


const wait = 30000;

let count;


const embed = new Discord.MessageEmbed()

    .setColor('#9EFF9A')

    .setTitle('Question?')

    .setDescription('');


message.channel.send(embed).then(embedMessage => {

    embedMessage.channel.awaitMessages(m => m.author.id == message.author.id,

    { max: 1, time: wait }).then(collected => {

        embedMessage.delete();

        count = collected.first().content;

        console.log(count);

    }).catch(() => {

        embedMessage.delete();

        return message.reply('No reply after ' + (wait / 1000) + ' seconds, operation canceled.').then(m => {

            m.delete({ timeout: 15000 });

        });

    });

})

這里的秘密是使用.then()發(fā)送嵌入的方法。這允許您獲取Message發(fā)送的嵌入的實(shí)際對(duì)象,然后您可以與之交互?,F(xiàn)在您已經(jīng)有了Message用于嵌入的對(duì)象,您可以使用其方法直接與消息交互,例如delete()和edit()。


查看完整回答
反對(duì) 回復(fù) 2023-07-29
?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

.then(() => {

   message.delete()

})

不起作用,因?yàn)槟鷱奈磳⑾⒆鳛閰?shù)傳遞,因此您的嵌入不存在于.then()


您可以嘗試使用.then()或await刪除發(fā)送消息。


然后方法


// const embed = ...

message.channel.send(embed).then(msg => {

   msg.delete();

});

等待方法


// Make sure you're in an async function

//const embed = ...

const msg = await message.channel.send(msg);

msg.delete();


查看完整回答
反對(duì) 回復(fù) 2023-07-29
?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊

我不太熟悉discordjs,但據(jù)我了解,您在變量“message”下使用機(jī)器人創(chuàng)建一條消息,該消息具有此處所示的屬性: https://discord.js.org/#/docs/main/master/類/消息


然后,您使用該消息將嵌入發(fā)送到該消息的頻道。嵌入會(huì)詢問一個(gè)問題,然后您等待隨后的消息。然后,您想要獲取第一個(gè)響應(yīng)并將其放入計(jì)數(shù)變量中。然后你想刪除原來的嵌入。如果這一切屬實(shí),我建議刪除包含嵌入本身的原始消息,如下所示:


message.channel.awaitMessages(m => m.author.id == message.author.id,

? ? { max: 1, time: `${wait}` }).then(collected => {

? ? message.delete();

? ? count = collected.first().content;

? ? ? ? console.log(count);

})

或者嘗試這個(gè),但我認(rèn)為這個(gè)方法行不通:


message.channel.awaitMessages(m => m.author.id == message.author.id,

? ? { max: 1, time: `${wait}` }).then(collected => {

? ? embed.delete();

? ? count = collected.first().content;

? ? ? ? console.log(count);

})

查看完整回答
反對(duì) 回復(fù) 2023-07-29
  • 3 回答
  • 0 關(guān)注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)