簡體   English   中英

discord.js 我不斷收到機器人所說的而不是用戶的消息

[英]discord.js I keep getting what the bot says instead of user's message

我不斷收到:機器人中的 DM 中的“你的建議是什么”,而不是用戶給出的問題的答案

 else if(msg.content === 'suggest') { msg.delete(); msg.reply('What is your suggestion?'); msg.channel.awaitMessages(m => m.author.id == msg.author.id, {max: 1, time: 30000}).then(collected => { var answer = msg.content; bot.users.get('349463140229971989').send(answer.toLowerCase()); }) //bot.users.get('349463140229971989').send(msg.content); }

我也試過這個:

 else if(msg.content.startsWith('suggest ')) { var user = msg.mentions.users.first(); var answer = msg.content; bot.users.get('349463140229971989').send(answer.toLowerCase() + " from: " + msg.author); msg.delete(); msg.reply('Your suggestion has been forwarded'); }

我收到“您的建議已被轉發”,它向我發送了機器人的回復,而不是我的消息

錯誤是您沒有獲取收集的消息內容,而是這里的命令 msg:

var answer = msg.content;

將其更改為:

var answer = collection.first().content;

但是如果用戶不發送消息怎么辦? 好吧,您可能想發回一條消息,說明時間到了,為此您需要將時間添加為錯誤之一並添加一條 catch 語句:

else if(msg.content === 'suggest') {
    msg.delete();
    msg.reply('What is your suggestion?');
    
    const filter = m => m.author.id == msg.author.id;
    const options = {max: 1, time: 30000, errors: ["time"]};

    msg.channel.awaitMessages(filter, options)
        .then(collected => {
            const answer = collected.first().content;
            bot.users.get('349463140229971989').send(answer.toLowerCase());
            msg.reply("Suggestion forwarded");
        })
        .catch(err => msg.reply("Suggestion canceled"));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM