[英]TypeError: Cannot read properties of undefined (reading 'path') in discord.js v13
[英]discord.js v13 TypeError: Cannot read properties of undefined (reading 'presence')
我想和我的朋友开玩笑命令禁止正在玩 Roblox 的人或者他是否具有 Roblox 游戏状态。 如果有解决方案,我已经搜索了 inte.net 和堆栈溢出中的所有内容,但我找不到一个有效的解决方案。 这是我的代码:
module.exports = async (client) => {
const guild = client.guilds.cache.get('877016354581004389');
if(guild){
setInterval(async () => {
if(!guild.me.permissions.has('ADMINISTRATOR')) return;
const channel = guild.channels.cache.get('877016354581004392');
if(!channel) return console.log('ANNOUNCEMENT CHANNEL NOT FOUND...')
let bannedAmount = 0;
await guild.members.fetch().then(members => {
members.forEach(member => {
for(const allMember of Object.keys(member)){
if(allMember.user.presence.activities){
const activity = allMember.user.presence.activities[0]
if(activity.name.toLowerCase() == "roblox"){
channel.send(`${allMember} got banned because he's playing ROBLOX!!`)
allMember.ban({ reason: `he played roblox lol`});
bannedAmount = bannedAmount + 1
break;
}
}
}
})
});
let members;
if(bannedAmount > 1) members = 'members';
let kid;
if(bannedAmount > 1) kid = 'kids';
if(bannedAmount <= 0 || null){
console.log(`No member banned for playing Roblox...`);
} else if(bannedAmount > 0) {
channel.send(`${bannedAmount} ${kid || 'kid'} got banned in this server for playing Roblox. Don't do it kids!`)
console.log(`${bannedAmount} ${members || 'member'} got banned for playing Roblox...`)
}
}, 20000);
}
}
我不讨厌玩 Roblox 的家伙,他们只是在闲逛,哈哈
PS:我已经在 discord 开发网站和 index.js 文件中启用了意图,并且还使用了<member>.presence.activities
但看起来只有用户具有存在属性。
那么,问题是GuildMember#presence返回或Presence class OR undefined ,因为它是一个可选属性。 您在代码中所做的是获取可能不存在的用户的存在属性,这就是为什么allMember.user.presence
返回 undefined 和allMember.user.presence.activities[0]
的原因。 另请记住,您使用成员的用户,但在 GuildMembers 而不是用户上存在 go。
调试:
allMember
而不是allMember.user
,这样您就可以使用GuildMember而不是User的存在,此后具有存在的 Member 也将返回存在数据。我希望这对你有帮助,如果你有任何问题,请联系我 Discord ~ Iliannnn#0001
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.