这是我服务器中会员柜台的代码
module.exports = (client) => {
const channelId = '818930375501152314'
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('818930375488962611')
updateMembers(guild)
}
它一直工作得非常好,直到今天我莫名其妙地收到此错误时,我也卸载了一些软件包,这可能是导致这种情况发生的原因,但我重新安装了它,它仍然是这样
>编辑: 是的,我看到频道不是小写并修复了该问题,但它仍然无法正常工作,我已经进行了将近一个小时的故障排除并进行了搜索,但仍然无法正常工作,仍然遇到此问题
c:\Users\myname\visual studio\bot\Cloud-hosted-bot\member-count.js:5
const channel = guild.channels.cache.get(channelId)
^
TypeError: Cannot read property 'channels' of undefined
at updateMembers (c:\Users\myname\visual studio\bot\Cloud-hosted-bot\member-count.js:5:27)
at module.exports (c:\Users\myname\visual studio\bot\Cloud-hosted-bot\member-count.js:13:3)
at Object.<anonymous> (c:\Users\myname\visual studio\bot\Cloud-hosted-bot\bot.js:36:3)
at Module._compile (node:internal/modules/cjs/loader:1092:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10)
at Module.load (node:internal/modules/cjs/loader:972:32)
at Function.Module._load (node:internal/modules/cjs/loader:813:14)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
at node:internal/main/run_main_module:17:47
我是新来的所以很抱歉如果我不能很好地解释事情,很高兴你们帮助我:)
答案 0 :(得分:0)
您正在尝试从缓存中获取频道和公会,以便您可以使用它们。但是,如果机器人只是有时无法获取它们,很可能是因为它们开始时不在缓存中。
要确保每个都被缓存,请添加:
await client.channels.fetch(channelId)
和:
await client.guilds.fetch('818930375488962611')
在您尝试从缓存中获取每个之前。此外,请确保将您的函数设为 async
,以便您可以真正使用 await
。