Python Discord.py |如何为成员添加角色?
在一个成员对表情符号做出反应后,我想知道如何为他设置角色。 我试过几种方法,但都没用Python Discord.py |如何为成员添加角色?,python,discord,discord.py,Python,Discord,Discord.py,在一个成员对表情符号做出反应后,我想知道如何为他设置角色。 我试过几种方法,但都没用 AttributeError:'Guild'对象没有属性“添加角色” 我总是遇到这个错误,我试图用用户、有效负载或成员替换公会,但它还是找不到 我的“cogs”文件夹中有两个文件: •roles.py-处理带有反应的消息(此文件工作正常) •reaction.py—“倾听”对信息的反应 import discord import asyncio import emoji from discord.ext imp
AttributeError:'Guild'对象没有属性“添加角色”
我总是遇到这个错误,我试图用用户、有效负载或成员替换公会,但它还是找不到
我的“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 == "I think it makes sense, how are you supposed to add a role to a guild? You must add it to a discord.Member
instance, you can get it with payload.member
dev = get(guild.roles, id=799632281639321632)
member = payload.member
await member.add_roles(dev)
导入不一致
导入异步
导入表情符号
从discord.ext导入命令
从discord.utils导入获取
client=commands.Bot(命令前缀='/',预加载=True)
类反应(commands.Cog):
定义初始化(自我,客户机):
self.client=client
@commands.Cog.listener()
原始反应添加上的异步定义(自身,有效负载):
帮会id=payload.guild\u id
帮会=self.client.get\u帮会(帮会id)
用户标识=有效负载。用户标识
user=self.client.get\u用户(用户id)
message\u id=有效负载。message\u id
通道=self.client.get\u通道(payload.channel\u id)
emoji=payload.emoji.name
如果message_id==809523588721934336和emoji==“我认为这是有意义的,你应该如何向公会添加角色?你必须将其添加到discord.Member
实例中,你可以使用有效负载.Member
dev=get(guild.roles,id=79963228139321632)
member=payload.member
等待成员。添加_角色(开发人员)
还要记住,您必须启用intents.members
参考:
在中,您可以看到公会没有添加角色的方法。
确实有这种方法。非常感谢!现在它可以工作了:)