Python 不和谐的Py可以';我不知道如何添加角色

Python 不和谐的Py可以';我不知道如何添加角色,python,roles,discord,Python,Roles,Discord,我到处都找过了,人们只是告诉我使用文档,这没有帮助,我已经定义了_message(message),所以我不能使用成员参数,我希望人们在说关键字时被设置为某个角色 以下是我得到的,但它不起作用: if message.content.lower() == "!changeadmin" role = discord.utils.get(server.roles, name="Administrator") await client.add_roles(member, role) 我总是带着钱回来

我到处都找过了,人们只是告诉我使用文档,这没有帮助,我已经定义了_message(message),所以我不能使用成员参数,我希望人们在说关键字时被设置为某个角色 以下是我得到的,但它不起作用:

if message.content.lower() == "!changeadmin"
role = discord.utils.get(server.roles, name="Administrator")
await client.add_roles(member, role)
我总是带着钱回来

    Ignoring exception in on_message
    Traceback (most recent call last):
      File "C:\Users\josep\AppData\Local\Programs\Python\Python36-32\lib\site- 
   packages\discord\client.py", line 307, in _run_event
        yield from getattr(self, event)(*args, **kwargs)
      File "C:\Users\josep\OneDrive\Documents\New folder\New folder\mybot1.py", 
    line 58, in on_message
        role = discord.utils.get(server.roles, name="admin")
    AttributeError: 'str' object has no attribute 'roles'
编辑: 这是我的完整代码(不包括底部的令牌):

导入不一致
从discord.ext.commands导入Bot
从discord.ext导入命令
导入异步
导入时间
随机输入
进口ctx
Client=discord.Client()
client=commands.Bot(command_prefix=“!”)
chat_filter=[“贱人”、“黑鬼”、“黑鬼”、“操”、“婊子”、“迪克”、“混蛋”]
旁路列表=[“227007454775476224”]
可能的_响应=[
“这是一个响亮的“不”,
“看起来不太可能”,
“太难说了”,
“这是可能的”,
“肯定”,
]
服务器='242547220765868033'
角色=['442351132615114772']
@客户端事件
_ready()上的异步定义:
打印(“机器人联机并连接到Discord”)
bot=commands.bot(command_前缀='!',description='一个欢迎用户返回的bot'
@客户端事件
异步def on_消息(消息):
contents=message.content.split(“”)#contents是一种列表类型
内容中的单词:
如果聊天室过滤器中有word.upper():
如果不是绕过列表中的message.author.id:
尝试:
等待客户端。删除消息(消息)
等待客户。发送消息(channel.message,**嘿!**此处不允许使用该词!)
除discord.errors.NotFound外:
返回
如果message.content.upper().startswith(“!PING”):
userID=message.author.id
等待client.send_消息((discord.Object(id='442333293539622913')),“Pong!”%(userID))
如果message.content.upper().startswith(“!SAY”):
如果message.author.id==“227007454775476224”或message.author.id==“399959323591180288”:
args=message.content.split(“”)
等待客户端。发送消息(message.channel,“%s”%(“”.join(args[1:]))
其他:
等待客户端。发送消息(message.channel,“抱歉,只有bot所有者有权使用此命令”)
如果message.content.lower()=“cookie”:
等待客户端。发送消息(message.channel,“:cookie:”)#当有人说“cookie”时,用cookie表情符号响应
如果message.content.lower()
等待客户发送信息(message.channel,“habbo.com”)
如果message.content.upper().startswith(“!EIGHTBALL”):
等待客户端。发送消息(message.channel,random.choice(可能的响应))
如果message.content.lower()=='!changeadmin':
role=discord.utils.get(server.roles,name=“admin”)
等待客户。添加_角色(成员、角色)

如果这是一个迟到的回复,很抱歉:) 因此,如果您想向成员添加角色,请尝试以下代码:

    @client.command()
     @commands.has_permissions(administrator=True)
    async def giverole(ctx,member :discord.Member,role):
        try:
            add_role= discord.utils.get(ctx.guild.roles, name=role)
            await member.add_roles(add_role)      
            await ctx.send('Updated')
        except:
            await ctx.send("role not found!")
所以代码将这样工作:让我们说prefix=“?”

?给定角色@成员示例


机器人将从帮会角色中搜索角色名称“示例”,并将其交给@member

消息。服务器
而不是
服务器
,您的
服务器
只是一个字符串id。谢谢,我将尝试此编辑:我尝试了,我得到了回报:
忽略了on_message Traceback(最近一次调用):文件中的异常“C:\Users\josep\AppData\Local\Programs\Python36-32\lib\site packages\discord\client.py”,第307行,来自getattr(self,event)(*args,**kwargs)文件“C:\Users\josep\OneDrive\Documents\New folder\mybot1.py”,第59行,在on_消息中等待客户端。添加_角色(成员,角色)NameError:name'member'未定义
@abccd当我试图在不一致的情况下执行它时,我已将server.roles更改为message.server.roles,现在是下一行,我将收到一条错误消息。
作者
不是
成员
,您的代码中没有
成员
。@abccd很抱歉,我将继续与您联系,但我会挂起的成员到message.author和我仍然收到一个错误,错误是:“
AttributeError:'NoneType'对象在第59行没有属性'id
,这是等待客户端。添加角色(message.author,role)EDIT:Fixed,感谢您的帮助,我将name=“admin”更改为id=“[id]”
    @client.command()
     @commands.has_permissions(administrator=True)
    async def giverole(ctx,member :discord.Member,role):
        try:
            add_role= discord.utils.get(ctx.guild.roles, name=role)
            await member.add_roles(add_role)      
            await ctx.send('Updated')
        except:
            await ctx.send("role not found!")