如何在 discordJS 中获取特定用户的最后 N 条消息?
How to get last N messages by a particular user in discordJS?
我正在尝试删除特定用户发送的消息。
例如。 !purge 5 @someone
要获取由特定用户 ID 发送的 N 条消息,我正在使用它。
const getAllMessageByUserId = async (message, messageCount) => {
const userId = getUserId(message);
return await message.channel.messages.fetch({ limit: 100 }).then(async (messages) => {
const filteredMessages = await messages.filter((m) => m.author.id === userId);
if (filteredMessages.size <= messageCount) {
console.log('User does not have that many messages to be deleted?');
return;
}
const data = [...filteredMessages];
const messagesToBeDeletedByCount = data.slice(Math.max(data.length - messageCount), 1);
console.log(messagesToBeDeletedByCount);
console.log(typeof messagesToBeDeletedByCount);
return messagesToBeDeletedByCount;
});
};
控制台:
[]
object
data
将所有消息存储在一个数组中,我已经确认之前使用控制台。
但是当我尝试 splice
时它不起作用并给出一个空数组。
集合有一个 .last()
方法,调用过滤消息集合的最后 N 个方法。
filteredMessages.last(N);
我正在尝试删除特定用户发送的消息。
例如。 !purge 5 @someone
要获取由特定用户 ID 发送的 N 条消息,我正在使用它。
const getAllMessageByUserId = async (message, messageCount) => {
const userId = getUserId(message);
return await message.channel.messages.fetch({ limit: 100 }).then(async (messages) => {
const filteredMessages = await messages.filter((m) => m.author.id === userId);
if (filteredMessages.size <= messageCount) {
console.log('User does not have that many messages to be deleted?');
return;
}
const data = [...filteredMessages];
const messagesToBeDeletedByCount = data.slice(Math.max(data.length - messageCount), 1);
console.log(messagesToBeDeletedByCount);
console.log(typeof messagesToBeDeletedByCount);
return messagesToBeDeletedByCount;
});
};
控制台:
[]
object
data
将所有消息存储在一个数组中,我已经确认之前使用控制台。
但是当我尝试 splice
时它不起作用并给出一个空数组。
集合有一个 .last()
方法,调用过滤消息集合的最后 N 个方法。
filteredMessages.last(N);