python - 不和谐.py | 如何为成员添加角色?
问题描述
在他对表情符号做出反应后,我想知道如何为成员设置角色。我已经尝试了几种方法,但它还没有奏效。
AttributeError: 'Guild' object has no attribute 'add_roles'
我总是收到此错误,我尝试将 Guild 替换为 User、Payload 或 Member,但无论如何都找不到
我的“ cogs ”文件夹中有两个文件:
• roles.py - 处理带有反应的消息(此文件完美运行)
• react.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))
解决方案
我认为有道理,你应该如何为公会添加角色?您必须将其添加到discord.Member
实例中,您可以使用payload.member
dev = get(guild.roles, id=799632281639321632)
member = payload.member
await member.add_roles(dev)
另请记住,您必须intents.members
启用
参考:
推荐阅读
- javascript - 如何使用正则表达式检查 URL 应该以预期的模式开始和结束
- javascript - PHP - 使用仅提供 HTML + JS 和 PHP 脚本的 API
- java - 如何将新对实例化为 Java11 哈希图中的值?
- php - 如何获取 webhook 参数
- python - 使用开始和结束短语从句子列表中获取中间词
- javascript - 遍历对象,并返回具有相似属性的每个值的总和
- c++ - 如果将 LinkedList 的所有节点都放入一个数组中会怎样?
- pandas - 使用 tensorflow 加载 pandas 数据帧并使用单个实例进行预测
- python - 在虚拟环境中运行“flask”命令使用全局烧瓶
- java - 如何使用方法引用运算符(::) 在供应商函数中传递参数