Задать вопрос
@uvins

Что делать если выдаёт ошибку AttributeError: 'Interaction' object has no attribute 'author' discord.py?

Вот код:

\
import qrcode

import discord
from discord.ui import Button, View
from discord.ext import commands

bot = commands.Bot(command_prefix='.', intents=discord.Intents.all())


@bot.event
async def on_ready():
    print('Бот запущен...')


@bot.event
async def give_stalker(inter):
    await inter.response.send_message('Вам выдана роль сталкера')
    server = bot.get_guild(inter.guild.id)
    r_s = server.get_role(1055931128478969996)
    user = inter.author
    await user.add_roles(r_s)


@bot.event
async def give_bandit(inter):
    await inter.response.send_message('Вам выдана роль бандита')
    server = bot.get_guild(inter.guild.id)
    r_b = server.get_role(1055931207512248431)
    user = inter.author
    await user.add_roles(r_b)


@bot.event
async def on_member_join(member):
    stalker = Button(label='STALKER', style=discord.ButtonStyle.green, custom_id='stalker')
    bandit = Button(label='BANDIT', style=discord.ButtonStyle.grey, custom_id='bandit')
    view = View()
    view.add_item(stalker)
    view.add_item(bandit)

    channel = member.guild.system_channel
    guild = member.guild
    role = guild.get_role(1060445700825030766)

    await channel.send(f'Добро пожаловать к нам, {member}.\n'
                       f"Расскажи о себе:\n"
                       "\n"
                       "1. Как звать тебя? (Никнейм в игре)\n"
                       "2. Сколько лет?\n"
                       "3. Из какой группировки? (Зайти в канал выбор-группировки)\n"
                       "4. Где обосновался? (Кордон, болото, бар)\n"
                       "\n"
                       "Чувствуй себя как дома!", view=view)

    stalker.callback = give_stalker
    bandit.callback = give_bandit

    await member.add_roles(role)


@bot.command()
async def clear(ctx, amount: int):
    await ctx.channel.purge(limit=amount + 1)


@bot.command()
async def qrc(ctx, code: str):
    await ctx.channel.purge(limit=1)

    img = qrcode.make(code)

    img.save('img/qrcode.png')

    await ctx.send(file=discord.File(fp='img/qrcode.png'))


bot.run('MTA2MDE0MTQ5Mzg2MTQ4NjYyMg.Gos_7V.kBOufmDpLgLOJpAJlD2Epmdvs8BR_I6vceTuME')


Бот должен выдавать роль по нажатии на кнопку, но выдаёт ошибку AttributeError: 'Interaction' object has no attribute 'author'. Код нашёл в stack overflow. Там всё работает, но у меня нет(

ВОПРОС РЕШЁН:
Нужно было заменить inter.author на inter.user
  • Вопрос задан
  • 771 просмотр
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
AttributeError: 'Interaction' object has no attribute 'author'

Открываем документацию и видим, что в классе Interaction атрибута author нет.

Код нашёл в stack overflow

В этом и проблема. Бездумное копирование до добра не доведёт.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@uvins Автор вопроса
Нужно заменить inter.author на inter.user.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы