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