我目前正在编写一个 Discord 机器人,它可以检测新成员何时进入服务器并自动为他们分配“访客”角色。我发现的 add user to role with newest discord.js 。只有我的问题是我用哪种方法包装它? 那么我如何编写以下内容作为正确的代码?
bot.on('new Member joint this server', role => {
get the name of the member. give the role ('Guest')
})
我的代码
const Discord = require('discord.js');
const bot = new Discord.Client();
const token = 'token';
bot.on('ready', () => {
console.log('Bot is online')
});
// This happens only when someone writes, but is there also something like this when someone enters the
// server for the first time?
// Discord Bot how do I give a new user who enters the server a role automatically
bot.on('message', msg => {
if(msg.content === "Test") {
msg.reply("Test back");
}
})
var role = message.guild.roles.find(role => role.name === "guest");
message.member.addRole(role);
bot.login(token);
答案 0 :(得分:0)
您正在寻找 guildMemberAdd 事件。
您需要在 Discord 开发者门户上为此活动启用公会会员意图。
但是事件中传递的对象是加入的成员,而不是角色。您必须定义要在函数中添加的角色。
以下是DJS v12
bot.on('guildMemberAdd', guildMember => {
const role = guildMember.guild.roles.cache.find(r => r.name === 'guest');
guildMember.roles.add(role).catch(console.error);
console.log(`${guildMember.displayName} Has Joined The Server!`);
});