我有这个代码女巫检查当有人“将@user发送到法庭”然后获取提到的人ID和wrights“发送到法庭”但我也尝试让它添加角色“法庭”但它在这里不起作用代码:
import discord
from discord.ext import commands
import ctx
class MyClient(discord.Client):
async def on_ready(self):
print('Logged on as', self.user)
async def on_message(self, message):
if message.author == self.user:
return
messageContent = message.content
if len(messageContent) > 0:
if re.search("^send.*court$", messageContent):
user_id = message.mentions[0].id
await message.channel.send('sending to court!')
role = discord.utils.get(server.roles, name="court")
await client.add_roles(user_id, role)
client = MyClient()
client.run('TOKEN')
答案 0 :(得分:0)
您也可以直接在 message.content
和 len()
中使用 re.search()
(如果您以后不再需要它)
对于 re.search()
,您必须导入 re
您没有变量 server
,因此您不能在 server.roles
中使用它,因为 python 无法从无到有获取服务器
(主要问题)不是 client.add_roles
,而是 member.add_roles
,您必须使用 Member 对象
修订:
import discord
from discord.ext import commands
import ctx
import re
class MyClient(discord.Client):
async def on_ready(self):
print('Logged on as', self.user)
async def on_message(self, message):
if message.author == self.user:
return
if len(message.content) > 0:
if re.search("^send.*court$", message.content):
user = message.mentions[0]
await message.channel.send('sending to court!')
role = discord.utils.get(message.guild.roles, name="court")
await user.add_roles(role)
client = MyClient()
client.run('TOKEN')