首页 > 解决方案 > Discord Bot - 在消息后赋予角色,Python

问题描述

我正在尝试制作一个简单的不和谐机器人,在用户向机器人发出特定命令后赋予用户角色

在命令 !role 上,用户应该获得一个名为 Beta 的角色

我首先尝试了这个:

from discord_webhook import DiscordWebhook, DiscordEmbed
import discord
from discord.ext.commands import Bot
from discord.ext import commands


client = commands.Bot(command_prefix = "!")
Client = discord.Client()

@client.event
async def on_message(message):
    member = message.author
    if member.bot:
        return
    if message.attachments:
        return
    print(message.content)
    print(str(message.author))


    if "role" in message.content:
        embed=discord.Embed(title="Giving role.", color=0x00ff40)
        await message.channel.send(message.channel, embed=embed)
        role = discord.utils.get(server.roles, name="Beta")
        await client.add_roles(message.author, role)


client.run("BOT TOKEN")

但我总是遇到以下问题: AttributeError: 'list' object has no attribute 'roles'

非常感谢您花时间阅读本文,如果您能帮助我。谢谢

标签: pythondiscorddiscord.py

解决方案


当你这样做时:

role = discord.utils.get(server.roles, name="Beta")

你必须使用

message.guild.roles

代替:

server.roles

要访问角色列表,较新的不和谐版本使用公会而不是服务器以避免与语音服务器混淆。


推荐阅读