那是可以帮助理解的代码,它是一个异步分支,但是部分代码是从rewrite分支复制的,不确定它是否可以帮助
如果邮件包含"test"
,该如何发挥作用?
import discord
from discord.ext import commands
import asyncio
import re
TOKEN = ""
bot = commands.Bot(command_prefix = "{")
@bot.event
async def on_message(ctx):
user = ctx.author
if "test" in ctx.content:
#part from rewrite branch (copied from Internet)
member = ctx.author
role = discord.utils.get(member.roles, name="Test")
await user.add_roles(member, role)
await bot.process_commands(ctx) #to let commands work
bot.run(TOKEN)
discord.errors.NotFound:找不到404(错误代码:10011):未知角色
错误在哪里?如果有更好的方法来执行此代码,那么它是什么? P.S角色测试确实存在,所以没有错误
答案 0 :(得分:0)
如果有成员对象,则可以执行以下操作:
await member.add_roles("test")
答案 1 :(得分:0)
请考虑阅读this一次。
on_message不接受ctx
作为其参数,而是接受一个message
参数,这是使用它的方法-
@bot.event()
async def on_message(message):
if "test" in message.content:
role = discord.utils.get(message.guild.roles, name="test")
await message.author.add_roles(role)
await bot.process_commands(message)
注意-:确保您在名为test
的服务器中具有角色。
如果有任何错误,请告诉我:)