Discord Bot如何为自动进入服务器的新用户赋予角色
Posted
技术标签:
【中文标题】Discord Bot如何为自动进入服务器的新用户赋予角色【英文标题】:Discord Bot how do I give a new user who enters the server a role automatically 【发布时间】:2021-06-14 03:33:12 【问题描述】:我目前正在编写一个 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);
【问题讨论】:
【参考方案1】:您正在寻找guildMemberAdd 事件。
您需要在 Discord 开发者门户上为此活动启用公会成员意图。
Learn about Intents Here
但是在事件中传递的对象是加入的成员,而不是角色。您必须定义要在函数中添加的角色。
以下是DJv12
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!`);
);
【讨论】:
以上是关于Discord Bot如何为自动进入服务器的新用户赋予角色的主要内容,如果未能解决你的问题,请参考以下文章
我如何为 client = discord.Client() 使用 discordpy 冷却命令 [关闭]
如何为导入的库启用 PyCharm 自动完成功能 (Discord.py)