如何制作一个在Python中提供角色的discord机器人?
我想创建一个discord bot,在Python中为成员提供角色 我试过这个:如何制作一个在Python中提供角色的discord机器人?,python,bots,roles,discord,discord.py,Python,Bots,Roles,Discord,Discord.py,我想创建一个discord bot,在Python中为成员提供角色 我试过这个: @async def on_message(message): if message.content == "give me admin" role = discord.utils.get(server.roles, name="Admin") await client.add_roles(message.author.id, role) 我认为这应该行得通。
@async def on_message(message):
if message.content == "give me admin"
role = discord.utils.get(server.roles, name="Admin")
await client.add_roles(message.author.id, role)
我认为这应该行得通。的文档是
您还可以使用discord.ext.commands
扩展名:
from discord.ext.commands import Bot
import discord
bot = Bot(command_prefix='!')
@bot.command(pass_context=True)
async def addrole(ctx, role: discord.Role, member: discord.Member=None):
member = member or ctx.message.author
await client.add_roles(member, role)
bot.run("token")
你需要做的就是
import discord
from discord.utils import get
@client.event
async def on_message(message):
if message.content == "give me admin"
member = message.author
role = (member.guild.roles , name="Admin")
await member.add_roles(role)
bot具有管理员权限!
async
前面的@
不应该在那里。此函数应该用@client.event
或类似的东西修饰。只需将message.author.id
传递给message.author
到add_roles
程序返回:“NameError:名称'server'未定义”使用message.server.roles
。好的,我会尝试。谢谢!非常感谢。你帮了我很大的忙!使用此代码,我得到以下错误:“new_roles=utils.\u unique(itertools.chain中role的role.id(member.roles,roles))AttributeError:'NoneType'对象没有属性'id'”@MikeyJY那么您的服务器上没有名为Admin
的角色,我知道问题出在哪里:该角色名为:Admin+表情符号,但我使用Python IDLE,当我放置表情符号时,文件正在关闭。我可以使用角色id吗?可以。将role=get(message.server.roles,name='Admin')
更改为role=get(message.server.roles,id='')
import discord
from discord.utils import get
@client.event
async def on_message(message):
if message.content == "give me admin"
member = message.author
role = (member.guild.roles , name="Admin")
await member.add_roles(role)