Discord Bot - Дайте роли после сообщения, Python - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь создать простого бота с разногласиями, который дает роль пользователю после того, как он дает боту определенную команду

В команде! 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'

Большое спасибо, что нашли время, чтобы прочитать это, и если вы можете мне помочь.Спасибо

1 Ответ

1 голос
/ 13 апреля 2019

Когда вы делаете:

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

Вы должны использовать

message.guild.roles

вместо:

server.roles

, чтобы получить доступ к списку ролей, более новые версии Discord используют гильдию вместо сервера, чтобы избежать путаницы с голосовыми серверами.

...