我的想法很简单,希望有人可以引导我找到一个好的解决方案。因此,在GuildMemberAdd
事件中,我正在尝试使加入服务器的任何人静音,因此,如果我是服务器的新手,我会被静音,直到工作人员取消静音为止,这应该是一个好习惯垃圾邮件发送者之类的东西。我试图通过定义mute
角色来自己做到这一点
let muterole = message.guild.roles.find(role => role.name === "Muted");
if(!member.user.bot) member.addRole(muterole);
但是当我尝试加入新帐户时,它总是会说TypeError: Cannot read property 'guild' of undefined.
。
答案 0 :(得分:0)
message
是undefined
,这是有道理的,因为guildMemberAdd
事件采用仅带有一个参数的侦听器:公会成员。
将此用于Discord.js v11(这似乎是您正在使用的):
// I used const instead of let because it's very unlikely you would change muteRole.
// const makes it an immutable variable.
// Note I used member.guild here not message.guild
const muteRole = member.guild.roles.find(role => role.name === 'Muted')
if (!member.user.bot) member.addRole(muteRole)
对于v12(最新版本):
const muteRole = member.guild.roles.cache.find(role => role.name === 'Muted')
if (!member.user.bot) member.roles.add(muteRole)