繁体   English   中英

Discord.py 如何为成员添加角色

[英]Discord.py how to add a role to a member

我有这个代码女巫检查某人何时“将@user发送到法庭”然后获取提到的人ID和“发送到法庭”但我也试图让它添加角色“法庭”但它确实有效这里的代码:

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')
  1. 你也可以直接在len()re.search()中使用message.content (如果你以后不再需要它)

  2. 对于re.search()你必须导入re

  3. 您没有变量server ,因此您无法在server.roles中使用它,因为 python 无法从无到有获得服务器

  4. (主要问题)不是client.add_roles ,而是member.add_roles ,您必须在其中使用Member object

修改:

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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM