javascript - Bot 没有在听 guildMemberAdd
问题描述
我刚刚注册,因为有些事情真的让我很困扰:我有以下代码:
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('guildMemberAdd', (member) => {
console.log('New member.')
const welcomeEmbed = new Discord.MessageEmbed()
.setImage(member.user.avatarURL())
.setColor('#e9fa2a')
.setAuthor("Mangoly Assistant")
.setTitle("New member in server")
.setDescription('Welcome <@${member.id}> to the server! If you are new, please be sure to check out or rules channel and some useful links. We are glad to be having you here, everyone wave hello! :wave:')
.setFooter('Created by kostis;#4464. || Mangoly Assistant')
client.channels.cache.get('825130442197434418').send(welcomeEmbed)
});
client.once('ready', () => {
console.log('Bot is ready')
})
client.login(nice try);
出于某种原因,当我离开并重新加入服务器时,嵌入根本没有发送到频道。我在控制台中没有错误。关于可能出了什么问题的任何想法?谢谢。:)
解决方案
邀请机器人时,您需要启用“服务器成员意图”。转到 Discord Developer Portal > Bot > 滚动到底部 > 确保检查了服务器成员的意图
您还应该能够在您的代码中手动启用它,但不知道该怎么做。我认为是这样的:
//Client declaration
const client = new Discord.Client({
ws: {
intents: ['GUILD_MEMBERS']
}
})
另外,快速的事情:要在字符串中使用 ${variableHere} ,它必须是带有反引号( ` )的字符串,如下所示:
var a = 'abc';
var b = '${a}d' //returns ${a}d
var c = `${a}d` //returns abcs
推荐阅读
- python - 如何根据用户输入更新字典并使用python根据值进行排序?
- java - Java多接口实现
- .net - 在 vb.net 中使用数组值过滤通用列表
- javascript - 如何在 JDEV 12c 中使用 Javascript 单击时设置链接样式
- vue.js - 哈希模式下的 VueJS 路由器:如果找不到文件,则路由到错误页面
- php - 尝试使用包含变量的 php 重命名函数
- javascript - 如何在 D3 中附加多个矩形?
- c# - 如何访问 form1.cs 中的任务表单 program.cs
- tinymce - 如何避免内联工具栏自动隐藏在tinymce中?
- java - Appium Android 失败 adb pm pull 命令