加入不和谐服务器时如何为特定成员添加角色

Posted

技术标签:

【中文标题】加入不和谐服务器时如何为特定成员添加角色【英文标题】:How to add a role to a specific member when he joins a discord server 【发布时间】:2021-11-23 12:34:16 【问题描述】:

我是 python 新手,所以有人可以帮助我编写代码,因为它无法正常工作。当我想要的用户加入时,它不会给它一个角色。我想让它为 特定用户 在加入discord服务器时提供角色。

   @client.event 
    async def on_member_join(member):
      member = get(member.id, id=member_id)
      role = get(member.guild.roles, id=role_id)
      await member.id(member)
      await member.add_roles(role)

【问题讨论】:

【参考方案1】:

我什至不知道你为什么把事情弄得这么复杂。

由于您已经将member 作为“参数”,因此您可以使用它而不必再次定义member

我们可以通过member.id 很容易地得到member 的ID。如果我们想将其与真实 ID 进行比较,我们执行以下操作:

if member.id = TheIDHere:
    # Do what you want to do

角色的功能是正确的,但我找不到await member.id(member) 的用途。这有什么意义/有什么用?

最后添加角色的方式也是正确的,但代码必须正确缩进,最好使用if / else 语句,否则如果总是错误的member 加入。

整个代码:

@client.event
async def on_member_join(member):
    role = discord.utils.get(member.guild.roles, id=IDOfTheRole)  # Get the role from member.guild and the id
    if member.id == TheIDHere:  # If the member.id matches
        await member.add_roles(role)  # Add the role for the specific user
    else:  # If it does not match
        return  # Do nothing

您可能还需要启用members Intent,这里有一些很好的帖子:

https://discordpy.readthedocs.io/en/stable/intents.html How do I get the discord.py intents to work?

【讨论】:

以上是关于加入不和谐服务器时如何为特定成员添加角色的主要内容,如果未能解决你的问题,请参考以下文章

如何修剪没有特定角色的不和谐用户?

如何在“就绪”时找到所有具有特定角色的成员?不和谐.js

在加入时向 Discord 成员添加角色

Discord.js :将特定服务器上的角色添加到 DM 机器人的用户

如何为不和谐的 js 解决快照(50/50 的机会踢成员)

我正在尝试让不和谐的机器人根据某人加入服务器后的时间赋予角色