【问题标题】:Discord.py | How can i add role to members?不和谐.py |如何为成员添加角色?
【发布时间】:2021-05-15 16:14:09
【问题描述】:

我想知道如何在成员对表情符号做出反应后为他设置角色。 我已经尝试了几种方法,但仍然没有任何效果。

AttributeError: 'Guild' object has no attribute 'add_roles' 我总是收到此错误,我尝试将 Guild 替换为 User、Payload 或 Member,但无论如何都找不到

我的“cogs”文件夹中有两个文件:

• roles.py - 处理带有反应的消息(此文件完美运行)

• reaction.py - '听' 对消息的反应

import discord
import asyncio
import emoji
from discord.ext import commands
from discord.utils import get

client = commands.Bot(command_prefix='/',preload=True)

class Reaction(commands.Cog):

    def __init__(self, client):
        self.client = client

    @commands.Cog.listener()
    async def on_raw_reaction_add(self, payload):
        guild_id = payload.guild_id
        guild = self.client.get_guild(guild_id)
        user_id = payload.user_id
        user = self.client.get_user(user_id)
        message_id = payload.message_id
        channel = self.client.get_channel(payload.channel_id)
        emoji = payload.emoji.name

        if message_id == 809523588721934336 and emoji == "????" and user_id != 799612948213399572:

            message = await channel.fetch_message(message_id)
            await message.remove_reaction("????", user)
            dev = get(guild.roles, id=799632281639321632)
            await guild.add_roles(dev)

def setup(client):
    client.add_cog(Reaction(client))

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    我觉得有道理,你应该如何为公会添加角色?您必须将其添加到discord.Member 实例中,您可以使用payload.member 获取它

    dev = get(guild.roles, id=799632281639321632)
    member = payload.member
    await member.add_roles(dev)
    

    还请记住,您必须启用 intents.members

    参考:

    【讨论】:

      【解决方案2】:

      API reference 中可以看到Guild 没有add_roles 方法。 Members 确实有这个方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-11
        • 2021-05-31
        • 1970-01-01
        • 2021-11-23
        • 1970-01-01
        • 1970-01-01
        • 2021-08-14
        • 2021-07-11
        相关资源
        最近更新 更多