如何让一个在线会员计数器及时更新?
client.on('ready', () => {
var guild = client.guilds.cache.get('705684700982673428');
var onlineCount = guild.members.cache.filter(m => m.presence.status === 'online').size
client.user.setActivity("Online: " + onlineCount)
.then(console.log)
.catch(console.error);}, 3000);发布于 2020-08-08 22:57:42
由于您是在客户端初始化时设置活动状态,因此以后不会更新它。我建议您使用presenceUpdate,它将在每次更新成员的状态时触发。(是的,这包括在线状态。)
client.on("presenceUpdate", (oldPresence, newPresence) => {
const Guild = client.guilds.cache.get("705684700982673428");
if (newPresence.guild.id !== Guild.id) return false;
client.user.setActivity(`${Guild.members.cache.filter(member => member.presence.status !== "offline").size} online member${Guild.members.cache.filter(member => member.presence.status !== "offline").size == 1 ? '' : 's'}.`, {type: "WATCHING"})
});发布于 2020-08-08 20:17:19
我建议使用fetch api在每次有新用户加入时通知服务器,这样所有其他用户就可以在一段时间内询问当前用户数
https://stackoverflow.com/questions/63315232
复制相似问题