Server Stats 代码将通道更新为未定义而不是成员总数
Posted
技术标签:
【中文标题】Server Stats 代码将通道更新为未定义而不是成员总数【英文标题】:Server Stats piece of code updates the channel to undefined instead of the total members 【发布时间】:2019-10-20 04:38:31 【问题描述】:所以我一直在为一台服务器创建一个私人机器人,显示服务器统计信息等等,但我有一个问题;每次用户加入/离开公会时,机器人都会更新一个带有“未定义”的频道,但这意味着该公会的成员总数。有人能帮我吗?这是一段代码:
const serverStats =
guildID: '474658204475719701',
totalUsersID: '578114537589309441',
;
client.on('guildMemberAdd', member =>
if (member.guild.id !== serverStats.guildID) return;
client.channels.get(serverStats.totalUsersID).setName(`???? MEMBERS COUNT: $member.guild.membersCount`);
);
client.on('guildMemberRemove', member =>
if (member.guild.id !== serverStats.guildID) return;
client.channels.get(serverStats.totalUsersID).setName(`???? MEMBERS COUNT: $member.guild.membersCount`);
);
谢谢。
【问题讨论】:
【参考方案1】:membersCount
不是Guild 的有效属性。实际上是memberCount
(单数“成员”)。
member.guild.memberCount
此代码将返回预期的成员数。
【讨论】:
【参考方案2】:这是我用于服务器信息命令的内容:
const Discord = require("discord.js");
module.exports.run = async (bot, message, args) =>
let sicon = message.guild.iconURL;
let serverembed = new Discord.RichEmbed()
.setDescription("Server Information")
.setColor("#ff0000")
.setThumbnail(sicon)
.addField("Server Name", message.guild.name)
.addField("Created On", message.guild.createdAt)
.addField("You Joined", message.member.joinedAt)
.addField("Total Members", message.guild.memberCount)
.addField("Bot Version", "2.4.4")
message.channel.send(serverembed);
【讨论】:
【参考方案3】:希望你还需要他
const embed = new Discord.RichEmbed()
.setDescription(`? MEMBERS COUNT: $message.guild.members.filter(member => !member.user.bot).size`)
.setThumbnail(message.guild.iconURL)
client.on('guildMemberAdd', member =>
if (member.guild.id !== serverStats.guildID) return;
client.channels.get(serverStats.totalUsersID).send(embed);
);
client.on('guildMemberRemove', member =>
if (member.guild.id !== serverStats.guildID) return;
client.channels.get(serverStats.totalUsersID).send(embed);
);
【讨论】:
以上是关于Server Stats 代码将通道更新为未定义而不是成员总数的主要内容,如果未能解决你的问题,请参考以下文章