Discord.js:按 ID 获取消息给出了错误的输出
Discord.js: Fetch Message by ID gives wrong output
当我从另一个用户那里得到帮助时,我通过 id 尝试了一个 fetchMessage() 。我想出了点问题,因为当我为我的报告命令输入 ID 时,它 return 作为 [object Promise]
而不是 ID 对应的消息。这是一个代码位及其输出:
if (cmd === `${prefix}report`) {
let messageID = args[0];
if (isNaN(messageID)) {
message.author.send("Not an ID")
return;
}
let messagea = message.channel.fetchMessages(messageID);
let reportEmbed = new Discord.RichEmbed()
.setTitle("Reports")
.setColor("#F7E533")
.addField("Message", messagea)
.addField("Reported User", `@${messagea.author}`)
.addField("Reported By", `${message.author} with ID: ${message.author.id}`)
.addField("Time", message.createdAt)
let reportschannel = message.guild.channels.find(`name`, botconfig.reportsChannel);
if (!reportschannel) return message.channel.send("Couldn't find reports channel.");
message.delete().catch(O_o => {});
reportschannel.send(reportEmbed);
message.delete();
return;
}
message.channel.fetchMessages(messageID)
returns Promise 不是消息,而且你应该使用 fetchMessage
而不是 fetchMessages
。
你需要等待那个承诺 "to give you information" 然后做你需要做的事。
message.channel.fetchMessage(messageID).then(messagea => {
let reportEmbed = new Discord.RichEmbed()
.setTitle("Reports")
.setColor("#F7E533")
.addField("Message", messagea.content)
.addField("Reported User", `@${messagea.author}`)
.addField("Reported By", `${message.author} with ID: ${message.author.id}`)
.addField("Time", message.createdAt)
let reportschannel = message.guild.channels.find(`name`, botconfig.reportsChannel);
if (!reportschannel) return message.channel.send("Couldn't find reports channel.");
message.delete().catch(O_o => {});
reportschannel.send(reportEmbed);
message.delete();
return;
})
而且我已经将 messagea
更改为 messagea.content
所以它实际上显示消息
当我从另一个用户那里得到帮助时,我通过 id 尝试了一个 fetchMessage() 。我想出了点问题,因为当我为我的报告命令输入 ID 时,它 return 作为 [object Promise]
而不是 ID 对应的消息。这是一个代码位及其输出:
if (cmd === `${prefix}report`) {
let messageID = args[0];
if (isNaN(messageID)) {
message.author.send("Not an ID")
return;
}
let messagea = message.channel.fetchMessages(messageID);
let reportEmbed = new Discord.RichEmbed()
.setTitle("Reports")
.setColor("#F7E533")
.addField("Message", messagea)
.addField("Reported User", `@${messagea.author}`)
.addField("Reported By", `${message.author} with ID: ${message.author.id}`)
.addField("Time", message.createdAt)
let reportschannel = message.guild.channels.find(`name`, botconfig.reportsChannel);
if (!reportschannel) return message.channel.send("Couldn't find reports channel.");
message.delete().catch(O_o => {});
reportschannel.send(reportEmbed);
message.delete();
return;
}
message.channel.fetchMessages(messageID)
returns Promise 不是消息,而且你应该使用 fetchMessage
而不是 fetchMessages
。
你需要等待那个承诺 "to give you information" 然后做你需要做的事。
message.channel.fetchMessage(messageID).then(messagea => {
let reportEmbed = new Discord.RichEmbed()
.setTitle("Reports")
.setColor("#F7E533")
.addField("Message", messagea.content)
.addField("Reported User", `@${messagea.author}`)
.addField("Reported By", `${message.author} with ID: ${message.author.id}`)
.addField("Time", message.createdAt)
let reportschannel = message.guild.channels.find(`name`, botconfig.reportsChannel);
if (!reportschannel) return message.channel.send("Couldn't find reports channel.");
message.delete().catch(O_o => {});
reportschannel.send(reportEmbed);
message.delete();
return;
})
而且我已经将 messagea
更改为 messagea.content
所以它实际上显示消息