我试图编写一个代码来获取消息并用内容过滤它们,但它不起作用。我试试这个代码:
client.on('message', message => {
if(message.content.startsWith('f-')){
var wf = message.content.substring(2);
message.channel.send(`message id: ${message.channel.messages.fetch().filter(mc => mc.startsWith(wf))}`);
}
});
但是它给出了那个错误:message.channel.messages.fetch(...).filter is not a function 所以我想问有没有办法通过 id 获取消息
答案 0 :(得分:0)
message.channel.messages.fetch()
返回一个 Promise,如果你想得到结果,你有 await
它。获取所有消息后,您可以继续按 msg.content
过滤它们。
以下代码为您提供了所有以“f-”开头的消息:
client.on("message", async (message) => {
if (message.content.startsWith("f-")) {
var wf = message.content.substring(2);
const messages = await message.channel.messages.fetch();
let filtered = messages.filter((msg) => msg.content.startsWith(wf));
console.log(filtered);
}
});