加入服务器后使新成员静音

时间:2020-04-16 10:36:35

标签: javascript discord.js

我的想法很简单,希望有人可以引导我找到一个好的解决方案。因此,在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.

1 个答案:

答案 0 :(得分:0)

messageundefined,这是有道理的,因为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)