【发布时间】:2022-01-04 01:42:52
【问题描述】:
serverinfo命令中,对于我来说,有多少用户在线和离线是最重要的,不仅有很多重要的东西,一切都是为了更好的设计和更好的信息识别。
现在的话题正在精确计数。我知道该怎么做。但是我更新到discord.js v13后出现了一个问题,仍然没有消失。我已经更新到新版本很长一段时间了。
该机器人停止计算离线用户。有时会发生必须关闭机器人的情况。开启后,我发现离线用户数为0,虽然在我查看离线用户命令的服务器上,超过了服务器的一半。如果某些用户首先出现在线,则数字会发生变化。
其他状态也并非一切顺利:在线、空闲、dnd。
我的机器人现在的状态是空闲的,所以结果显示状态的用户不是 6,而是 5。对于其他状态,相反,假设有 6 个在线用户,但机器人消息有 7 个.
const lang = require('../bot/languageSelector');
const { MessageEmbed } = require("discord.js");
module.exports = {
name: 'serverinfo',
description: 'Shows information of this Discord server',
run: async (bot, interaction, colorMe) => {
let embed = new MessageEmbed();
let members = interaction.guild.members.cache;
embed.setColor(colorMe);
embed.setTitle(`${lang(interaction.user.id, "about")} ${interaction.guild.name}`);
embed.setFields({
name: `${lang(interaction.user.id, "byStatuses")}`,
value: `
${lang(interaction.user.id, "online")}: ${members.filter(member => member.presence?.status == "online").size}
${lang(interaction.user.id, "idle")}: ${members.filter(member => member.presence?.status == "idle").size}
${lang(interaction.user.id, "dnd")}: ${members.filter(member => member.presence?.status == "dnd").size}
${lang(interaction.user.id, "offline")}: ${members.filter(member => member.presence?.status == "offline").size}
`,
inline: true
});
interaction.followUp({embeds: [embed]});
}
}
【问题讨论】:
-
您的客户有什么意图?它有存在意图吗?
-
@MrMythical 我的所有意图都包括在内:
const allIntents = new Intents(32767)、const bot = new Client({intents: [allIntents]})。 -
您是否也在 Discord 开发者门户中启用了它们?
-
@MrMythical 是的,我做到了,我什至可以显示屏幕截图。
标签: javascript discord.js