我一直在尝试在我的 Discord 服务器上创建成员计数。我的代码不起作用,我不断收到“无法读取未定义的属性‘通道’”。
module.exports = (client) => {
const channelId = '810343814517489664'
const updateMembers = (guild) => {
const channel = guild.channels.cache.get(channelId)
channel.setName(`Members: ${guild.memberCount.toLocaleString()}`)
}
client.on('guildMemberAdd', (member) => updateMembers(member.guild))
client.on('guildMemberRemove', (member) => updateMembers(member.guild))
const guild = client.guilds.cache.get('464316540490088448')
updateMembers(guild)
}
答案 0 :(得分:0)
您的频道未定义,因为您没有以正确的方式要求它。 你可以要求:
docker-compose up -d
接下来我将解释并向您展示我使用的会员柜台!
const channelId = guild.channels.cache.get('CHANNEL ID');
您需要先创建一个语音频道,然后机器人会在您每次设置更新时对其进行重命名!
在你的主文件(如index.js)中,你需要要求计数器。所以你需要在你的主文件夹中创建一个名称为计数器。在此文件夹 ('counters') 中,您需要创建一个名为 'member-counter.js' 的文件,然后粘贴上面的代码。在您的主文件 (如 index.js) 中,您需要使用 :
module.exports = async (client) =>{
const guild = client.guilds.cache.get('GUILD ID');
setInterval(() =>{
const memberCount = guild.memberCount;
const channel = guild.channels.cache.get('CHANNEL ID');
channel.setName(`?Members?:${memberCount.toLocaleString()}`);
console.log('Updating Member Count');
}, 3600000);//I set the update time every 1 hour!
}
您在具有 const memberCounter = require('./counters/member-counter');
函数并在最后一行设置的下一行:
client.on(ready)
我的意思是:
memberCounter(client);