ostronic
@ostronic

Как исправить AttributeError: 'Context' object has no attribute 'edit'?

import discord
from discord.ext import tasks, commands
import random
import asyncio

intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)

a=1
needs = {
    "Сытость": 10,
    "Энергия": 10,
    "Энтузиазм": 10
}

message = (f'\n'f'> **Потребности:**\n'
    f' Сытость: {needs["Сытость"]}\n'
    f'⚡ Энергия: {needs["Энергия"]}\n'
    f'⚾ Энтузиазм: {needs["Энтузиазм"]}\n'
    '*Xто-то больше чего-то*')
new_text = (f'\n'f'> **Потребности:**\n'
    f' Сытость: {needs["Сытость"]}\n'
    f'⚡ Энергия: {needs["Энергия"]}\n'
    f'⚾ Энтузиазм: {needs["Энтузиазм"]}\n'
    '*Что-то больше чего-то*')

async def decrement_needs():
    global needs
    while True:
        # Выбираем случайную потребность
        need = random.choice(list(needs.keys()))

        # Уменьшаем значение этой потребности на 1
        if needs[need] > 0:
            needs[need] -= 1

        # Ожидаем 2-3 минуты перед следующим уменьшением
        await asyncio.sleep(random.randint(3, 10))


@bot.event
async def on_ready():
    print(f'Бот {bot.user} готов к работе!')

    # Запускаем таймер для уменьшения потребностей
    bot.loop.create_task(decrement_needs())



@bot.command()
async def reboot(ctx):
    message = await ctx.send('Настройки сброшены')
    needs = {
        "Сытость": 10,
        "Энергия": 10,
        "Энтузиазм": 10
    }
    print(f'Настройки сброшены\n'
    f'{new_text}')

@bot.command()
async def menu(ctx):
    # Отправляем сообщение с текущими значениями потребностей
    message = await ctx.send('\n'f'> **Потребности:**\n'
                   f' Сытость: {needs["Сытость"]}\n'
                   f'⚡ Энергия: {needs["Энергия"]}\n'
                   f'⚾ Энтузиазм: {needs["Энтузиазм"]}\n'
                   '*Xто-то больше чего-то*')
    new_text = (f'\n'f'> **Потребности:**\n'
                f' Сытость: {needs["Сытость"]}\n'
                f'⚡ Энергия: {needs["Энергия"]}\n'
                f'⚾ Энтузиазм: {needs["Энтузиазм"]}\n'
                '*Что-то больше чего-то*')

    await asyncio.sleep(10)
    bot.loop.create_task(update_menu_message(ctx))

async def update_menu_message(ctx):
    global update_menu_message
    while True:
        message = await ctx.edit('\n'f'> **Потребности:**\n'
                                 f' Сытость: {needs["Сытость"]}\n'
                                 f'⚡ Энергия: {needs["Энергия"]}\n'
                                 f'⚾ Энтузиазм: {needs["Энтузиазм"]}\n'
                                 '*Xто-то больше чего-то*')
        new_text = (f'\n'f'> **Потребности:**\n'
                    f' Сытость: {needs["Сытость"]}\n'
                    f'⚡ Энергия: {needs["Энергия"]}\n'
                    f'⚾ Энтузиазм: {needs["Энтузиазм"]}\n'
                    '*Что-то больше чего-то*')
        print("not hehe")
        await asyncio.sleep(10)

bot.run('Токен')

Ошибка:
Task exception was never retrieved
future: exception=AttributeError("'Context' object has no attribute 'edit'")>
Traceback (most recent call last):
File "C:\Users\Vamir\PycharmProjects\pythonProject1\123.py", line 82, in update_menu_message
message = await ctx.edit('\n'f'> **Потребности:**\n'
^^^^^^^^
AttributeError: 'Context' object has no attribute 'edit'
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Давайте мы переведем за вас.
Объект "контекст" не имеет атрибута "edit"

В контексте хранится Message, который в свою очередь имеет метод Message.edit().
Обратите внимание, что он принимает только именованные аргументы.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы