
[英]How do I "scanf()" and "printf()" a user's message in discord.js when creating a BOT for Discord server?
[英]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.