Discord.py 反应自动角色错误:“反应”实例没有“反应消息”成员

时间:2021-02-19 18:21:11

标签: python discord.py

所以我正在尝试为我的学校制作一个机器人,目标是在全校范围内创建一个机器人,它可以自动为学生分配角色,以便他们可以访问他们班级的特定频道。有一种在整个学校进行交流的方式会很酷。 所以我从 YouTube 上挑选了一个很酷的教程 如果您愿意,请点击以下链接:https://www.youtube.com/watch?v=WQsQERxtD2w&list=PLYeOw6sTSy6ZGyygcbta7GcpI8a5-Cooc&index=29&t=1177s&ab_channel=CarberraTutorials 它似乎很完美,所以我做到了:

1 from discord.ext.commands import Cog
2 from discord.ext import commands
3
4 client  = commands.Bot(command_prefix='!')
5
6class reactions(Cog):
7  def __init__(self, bot):
8     self.bot = bot 
9@Cog.listener()
10async def on_ready(self):
11        if not self.bot.ready:
12            self.filière = { # In French "filière" means a course of study that you take in high school
  13              "?" : (809130298452869126), #Proffesioenl 
   14             "?‍?" : (809130233835683901), # thecnologique 
   15             "?‍?" : (809130260678311997), # generale
    16        }
    17        **self.reaction.message** = await self.bot.get_channel(809123408720822284).fetch_message(812283647490392104)
    18        self.bot.cogs_ready.ready_up("reactions")
19
20@Cog.listener()
21 async def on_raw_reaction_add(self, payload):
22    if self.bot.ready and payload.message_id == **self.reaction_message.id:**
23        print(payload.emoji.name)
24        role = self.bot.guild.get_role(self.filière[payload.emoji.name])
25        await payload.member.add.roles(role, reason="Choix de la filière")
26
27@Cog.listener()
28async def on_raw_reaction_remove(self, payload):
29    if self.bot.ready and payload.message_id == **self.reaction_message.id:**
30        member = self.bot.guild.get_member(payload.user_id)
31        await member.remove_roles(self.filière[payload.emoji.name], reason="Choix de la filière")

现在我遇到了一个问题,这是我得到的 3 个错误:(我添加了显示问题所在的行,我还添加了粗体,Visual Studio Code 说错误是)

  • 'reactions' 的实例没有 'reaction' 成员行 17
  • 'reactions' 实例没有 'reaction_message' 成员行 22
  • 'reactions' 实例没有 'reaction_message' 成员行 29

所以如果你有一个解决方案,它会受到欢迎

1 个答案:

答案 0 :(得分:0)

第 17 行的

self.reaction.message 应该是 self.reaction_message,也许?