【发布时间】:2021-09-23 21:11:54
【问题描述】:
所以我为我的 discord 机器人制作了一个事件处理程序,以便 index.js 文件整洁。但是由于某种原因,我在有人加入服务器时发出的欢迎信息不起作用。
这是我的事件处理程序代码:
const eventFiles = fs.readdirSync('./events').filter(file => file.endsWith('.js'));
for (const file of eventFiles) {
const event = require(`./events/${file}`);
if (event.once) {
client.once(event.name, (...args) => event.execute(...args, Discord, client));
} else {
client.on(event.name, (...args) => event.execute(...args, Discord, client));
}
}
这是我的欢迎信息代码:
module.exports = {
name: 'welcome',
once: false,
execute(Discord, client) {
const welcomechannelId = '753484351882133507' //Channel You Want to Send The Welcome Message
const targetChannelId = `846341557992292362` //Channel For Rules
client.on('guildMemberAdd', (member) => {
let welcomeRole = member.guild.roles.cache.find(role => role.name === 'Umay');
member.roles.add(welcomeRole);
const channel = member.guild.channels.cache.get(welcomechannelId)
const WelcomeEmbed = new Discord.MessageEmbed()
.setTitle(`Welcome To ${member.guild.name}`)
.setThumbnail(member.user.displayAvatarURL({dynamic: true, size: 512}))
.setDescription(`Hello <@${member.user.id}>, Welcome to **${member.guild.name}**. Thanks For Joining Our Server.
Please Read ${member.guild.channels.cache.get(targetChannelId).toString()}, and assign yourself some roles at <#846341532520153088>. You can chat in <#753484351882133507> and talk with other people.`)
// You Can Add More Fields If You Want
.setFooter(`Welcome ${member.user.username}#${member.user.discriminator}`,member.user.displayAvatarURL({dynamic: true, size: 512}))
.setColor('RANDOM')
member.guild.channels.cache.get(welcomechannelId).send(WelcomeEmbed)
})
}
}
我没有收到任何错误,但是每当有人加入服务器时,他/她将不会被赋予角色并且不会出现欢迎消息。我将欢迎消息代码放在事件处理程序正在处理的事件文件夹中。有人可以帮忙吗?
【问题讨论】:
-
进行一些调试,在事件处理程序中记录每个变量并确认一切都返回预期值
标签: node.js discord discord.js bots