从 Discord 版本 1.7.3 升级到 2.3.2 后,Discord 机器人出现问题:角色功能无法正常工作

问题描述 投票:0回答:1

最近,我将 Discord 机器人从 Discord 版本 1.7.3 更新到最新版本 2.3.2。然而,更新后,该机器人不再按预期运行。我尝试通过将意图设置为discord.Intents.all() 和intents.message_content = True 来解决该问题,但问题仍然存在。我对 Discord 机器人开发还比较陌生,我正在努力了解导致此问题的原因。

我的代码:

import discord
from discord.ext import commands
from decouple import config

intents = discord.Intents.default()
intents.members = True
bot = commands.Bot("!", intents=intents)

class Reactions(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_raw_reaction_add(self, payload):
        message_id = payload.message_id  

        guild_id = payload.guild_id
        emoji = payload.emoji

        guild = self.bot.get_guild(guild_id)
        member = guild.get_member(payload.user_id)


        elif message_id == ADD message ID:
            role = None
            if str(emoji) == "👥":
                role = guild.get_role(ID role)
            elif str(emoji) == "📢":
                role = guild.get_role(ID role)
                # second_role = guild.get_role(ID role)
            elif str(emoji) == "📖":
                role = guild.get_role(ID role)
            if role is not None:
                await member.add_roles(role)

        elif message_id == ADD message ID:
            role = None
            if str(emoji) == "🎮":
                role = guild.get_role(ID role)
            elif str(emoji) == "💻":
                role = guild.get_role(ID role)
            elif str(emoji) == "🎨":
                role = guild.get_role(ID role)
            if role is not None:
                await member.add_roles(role)

bot.add_cog(Reactions(bot))

TOKEN = config("TOKEN")
bot.run(TOKEN)

为了解决这个问题,我对代码进行了调整,以包含intents = discord.Intents.all()和intents.message_content = True。我希望这能解决与 Discord.py 版本更改相关的任何问题。然而,即使经过这些调整,机器人仍然无法正常运行。

python discord discord.py
1个回答
0
投票

要解决这个问题,你只需要调整服务器位置的层次结构即可。代码是对的

© www.soinside.com 2019 - 2024. All rights reserved.