Итак, примерно через час попыток я сдался. Я пытался отредактировать мою вставку через 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))
Довольно простая команда, но понятия не имею, что делать. Также мне нужно «Время импорта»?
Вы пытаетесь отредактировать вставку вместо фактического опубликованного сообщения.
относится к встраиванию. У этого встраивания нет атрибута под названием «сообщение», отсюда и ошибка.
Чтобы исправить это:
Переменная
pp
является встроенной, у нее нет атрибутаmessage
. Чтобы получить экземпляр сообщения, вы можете назначить его при отправкеPS: И снова здравствуйте!
Ссылка:
Messageable.send
Message.edit
Большое вам спасибо еще раз! такое простое исправление все еще не могло сделать это в одиночку … Что ж, в следующий раз нужно быть немного осторожнее. Еще раз спасибо! — person xXSkillexZ; 16.01.2021
ха-ха, не беспокойтесь! — person xXSkillexZ; 16.01.2021
pp.message.edit(embed=pp2)
говорит Embed.message.edit (), но, как подсказывает ваша ошибка: на встраиваниях нет атрибута сообщения.Чтобы заменить встраивание в сообщение, вам нужно получить сообщение, которое было отправлено изначально.
Вы упускаете несколько моментов в своем ответе. Во-первых, для команды
ctx.send()
требуется операторawait
. Полагаю, вы перепуталиctx.message
иctx.send()
? — person xXSkillexZ; 16.01.2021да, перепутал
ctx.message
и новое сообщение, связанное сctx.send
. Я отредактировал, чтобы уточнить. Спасибо! — person xXSkillexZ; 16.01.2021