为啥我的欢迎信息不起作用(discord.js)
Posted
技术标签:
【中文标题】为啥我的欢迎信息不起作用(discord.js)【英文标题】:Why doesn't my welcome message work(discord.js)为什么我的欢迎信息不起作用(discord.js) 【发布时间】:2021-12-06 11:40:21 【问题描述】:我正在尝试制作一个机器人,它赋予用户成员角色并向聊天发送简单的欢迎消息。但是,当有人加入时,什么也没有发生(甚至没有错误)。这是我的代码:
client.on('guildMemberAdd', guildMember =>
console.log(guildMember);
let role = guildMember.guild.roles.cache.find(role => role.name == 'member');
guildMember.roles.add(role);
member.guild.channels.get('channelID').send(`welcome <@$guildMember.id> dont forget to
check the rules`);
);
【问题讨论】:
【参考方案1】:您是否激活了必要的标志?客户端需要以下意图才能在有人加入机器人所在的服务器时收到警报
const client = new Discord.Client(intents : ["GUILD_MEMBERS"])
在the official documentation
中查看更多意图
最后,它看起来像:
const Discord = require('discord.js')
const client = new Discord.Client(intents : ["GUILD_MEMBERS"])
client.on('guildMemberAdd', guildMember =>
console.log(guildMember);
let role = guildMember.guild.roles.cache.find(role => role.name == 'member');
guildMember.roles.add(role.id);
guildMember.guild.channels.get('the channel id')).send(`welcome <@$guildMember.id> dont forget to
check the rules`);
);
还要确保您没有将client.on('guildMemberAdd',...)
放在client.on('message',..)
中,它们需要分开。
【讨论】:
我忘了添加 guild_members 意图,但现在有人加入服务器时会出错:TypeError: "899366272100339752".send is not a function 你得到一个ID,确保它是Channel
这是一个与问题无关的不同问题。如果此答案解决了相关问题,请打勾以上是关于为啥我的欢迎信息不起作用(discord.js)的主要内容,如果未能解决你的问题,请参考以下文章
为啥 startWithPrefix 在 discord.js v13 中不起作用?
为啥我的 Discord.js 欢迎消息中出现“无效的表单正文”错误?