AttributeError:“ DiscordClient”对象没有属性“ edit_role”

时间:2019-05-09 09:46:43

标签: python discord.py

我尝试使用discord.py更改Discord服务器上的角色颜色。 但是运行它后我得到了错误: AttributeError: 'DiscordClient' object has no attribute 'edit_role'

代码:

import discord
import os
import asyncio
from dotenv import load_dotenv, find_dotenv
load_dotenv()

discord_token = os.environ['your_discord_bot_token']

class DiscordClient(discord.Client):
    async def on_ready(self):
        print("Login as")
        print(self.user)
        print("-------")
        server = discord.utils.get(self.guilds)
        print(server)
        role = discord.utils.get(server.roles)
        print(role)
        await self.edit_role(server=server, role=role, 
                             hoist=True, colour=discord.Colour(0xe91e63))

client = DiscordClient()
client.run(discord_token)

成功登录后,按预期打印serverrole。谷歌搜索并查看文档后找不到答案。我拥有编辑角色的所有权限(我已经在自己的服务器上测试了机器人)。在github的已解决问题上,edit_role并没有被弃用,我也找不到有用的东西

1 个答案:

答案 0 :(得分:1)

Client.edit_role已从1.0版本中删除,并由Role.edit取代(您可以使用print(discord.__version__)检查版本)。

您正在使用的任何资源都已过时。您应该阅读migration guide来了解所做的更改,如果怀疑方法或协程已被移动,请搜索文档。

class DiscordClient(discord.Client):
    async def on_ready(self):
        print("Login as")
        print(self.user)
        print("-------")
        server = discord.utils.get(self.guilds)
        print(server)
        role = discord.utils.get(server.roles)
        print(role)
        await role.edit(hoist=True, colour=discord.Colour(0xe91e63))