Discord.py Ошибка при попытке редактирования встраивания через X секунд

Итак, примерно через час попыток я сдался. Я пытался отредактировать мою вставку через 5 секунд, но это не сработало. Я все время получаю эту ошибку:

‘Экземпляр’ Embed ‘не имеет участника’ сообщения »

import discord
import random
import asyncio
import time
from discord.ext import commands


class ppsize(commands.Cog):

    def __init__(self, client):
        self.client = client

    @commands.command(aliases=['mypp', 'sizepp'])
    async def PPPSize(self, ctx):
        responses = [ # Or values, however you want to name it
        'is 2cm.',
        'is 38cm.',
        'is 0cm.',
        'is too small to be measured.',
        '-16cm.',
        'bigger than a whole house.',
        '6cm.',
        'is 9cm',
        'is 13cm'
    ]
        pp = discord.Embed(title="Activating PP Size Measurement...!", description="Loading PP Size...")
        pp.set_image(url="https://tul.imgix.net/content/article/banana.jpg?auto=format,compress&w=1200&h=630&fit=crop")
        pp2 = discord.Embed(title="PP Size Measurement Has Been Activated!", description=random.choice(responses))
        pp2.set_image(url="https://tul.imgix.net/content/article/banana.jpg?auto=format,compress&w=1200&h=630&fit=crop")
        
        await ctx.send(embed=pp)
        await asyncio.sleep(5)
        await pp.message.edit(embed=pp2)



def setup(client):
    client.add_cog(ppsize(client))

Довольно простая команда, но понятия не имею, что делать. Также мне нужно «Время импорта»?

См. также:  Как получить доступ к дополнительным ресурсам AWS из созданной Amplify функции Lambda?
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 3
  1. xXSkillexZ

    Вы пытаетесь отредактировать вставку вместо фактического опубликованного сообщения.

    await pp.message.edit(embed=pp2)
    

    относится к встраиванию. У этого встраивания нет атрибута под названием «сообщение», отсюда и ошибка.

    Чтобы исправить это:

    message = await ctx.send(embed=pp)
    await asyncio.sleep(5)
    await message.edit(embed=pp2)   
    
  2. xXSkillexZ

    Переменная pp является встроенной, у нее нет атрибута message. Чтобы получить экземпляр сообщения, вы можете назначить его при отправке

    message = await ctx.send(embed=pp)
    await asyncio.sleep(5)
    await message.edit(embed=pp2)
    

    PS: И снова здравствуйте!

    Ссылка:

    Большое вам спасибо еще раз! такое простое исправление все еще не могло сделать это в одиночку … Что ж, в следующий раз нужно быть немного осторожнее. Еще раз спасибо! person xXSkillexZ; 16.01.2021

    ха-ха, не беспокойтесь! person xXSkillexZ; 16.01.2021

  3. xXSkillexZ

    pp.message.edit(embed=pp2) говорит Embed.message.edit (), но, как подсказывает ваша ошибка: на встраиваниях нет атрибута сообщения.

    Чтобы заменить встраивание в сообщение, вам нужно получить сообщение, которое было отправлено изначально.

    message = await ctx.send(...)
    await message.edit(embed=pp2)
    

    Вы упускаете несколько моментов в своем ответе. Во-первых, для команды ctx.send() требуется оператор await. Полагаю, вы перепутали ctx.message и ctx.send()? person xXSkillexZ; 16.01.2021

    да, перепутал ctx.message и новое сообщение, связанное с ctx.send. Я отредактировал, чтобы уточнить. Спасибо! person xXSkillexZ; 16.01.2021

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: