实际上我正在学习Javascript / node.js 我在此网站上注册是因为我坚持创建不和谐的bot。 嗯,一切都很好,并且有效,只是一个问题:
“我的机器人”基本上会为频道名称中的“用户”计数并更新计数器。 但是按角色为用户提供的实时更新无法正常工作。
这是我的代码:
console.log(`Logged in as ${client.user.tag}!`);
let IGuild = client.guilds.cache.get("703237714413355019");
// User counter
let memberCount = IGuild.memberCount;
let channelCountUsers = IGuild.channels.cache.get('709859603793576056');
channelCountUsers.setName('Users: '+ memberCount)
// Admins
let adminID = '707261958243483698';
let memberCountAdmins = IGuild.roles.cache.get(adminID).members.size;
let channelCountAdmins = IGuild.channels.cache.get('709889840338042903');
channelCountAdmins.setName('Admins: ' + memberCountAdmins)
});
// update User counter <- WORKS
client.on('guildMemberAdd', member=>{
let IGuild = client.guilds.cache.get('703237714413355019');
let memberCount = IGuild.memberCount;
let channelCountUsers = IGuild.channels.cache.get('709859603793576056');
channelCountUsers.setName('Users: ' + memberCount)
})
// update Admin counter <- DOES NOT WORK :(
client.on('guildMemberAdd', member=>{
let IGuild = client.guilds.cache.get('703237714413355019');
let adminID = "707261958243483698";
let memberCount = IGuild.roles.cache.get(adminID).members.size;
let channelCountAdmins = IGuild.channels.cache.get('709889840338042903');
channelCountAdmins.setName('Admins: ' + memberCount)
})
client.on('guildMemberRemove', member =>{
let IGuild = client.guilds.cache.get('703237714413355019');
let memberCount = IGuild.memberCount;
let channelCountUsers = IGuild.channels.cache.get('709859603793576056');
channelCountUsers.setName('Users: ' + memberCount)
})
因此,我只需要实时更新“管理员计数器”或“角色计数器”即可。
问候和对不起,我在这里发布我的菜谱:/
答案 0 :(得分:0)
您的问题是guildMemberAdd
不检查角色更新,因为您将不得不使用guildMemberUpdate
另外,您有2个guildMemberAdd
事件,每个事件应该只有1个。
client.on('guildMemberUpdate', member=>{
let IGuild = client.guilds.cache.get('703237714413355019');
let adminID = "707261958243483698";
let adminCount = IGuild.roles.cache.get(adminID).members.size;
let channelCountAdmins = IGuild.channels.cache.get('709889840338042903');
channelCountAdmins.setName('Admins: ' + adminCount)
})