Nextcord 属性错误

问题描述 投票:0回答:1

自从我使用 aiohttp 将 API 请求更改为异步以来,这个错误就发生了,我真的不明白发生了什么我只知道它说“协程”对象没有属性“编辑”我希望有人能够弄清楚这个出来了,但我仍然会自己尝试,如果你能看到这个问题,你能给我解释一下吗,谢谢

class SeedPingHLL(commands.Cog):

    
    def __init__(self, legionnaire):

        self.legionnaire = legionnaire
        self.check_to_start_seed_ping.start()


    #Here were passing a loop into the view embed and updating when new players have joined will update enbeded view to new player count until seeding completed
    @tasks.loop(time=Start_seeding_time)
    async def check_to_start_seed_ping(self):
        print("Task started")
        while True:
            ##need a while loop and stops the while loop but is ready for the next time!
            players = await api_request_public()
            event_check = await Seed_API()
            min_player_count = await Seed_API()
            #if event_check[0] == False and self.seed_ping_hll.is_running() == False:
            if event_check[0] == False and self.seed_ping_hll.is_running() == False:
                if players[1] >= 1:
                #if players[1] >= min_player_count[1]:
                    print("started")
                    seed_channel = self.legionnaire.get_channel(Channel_id)
                    seed_ping = seed_channel.send(embed=await Seed_Ping_Embed())
                    
                    self.seed_ping_hll.start(seed_ping)
                    break
            #await asyncio.sleep(1.0)
            
    
    @tasks.loop(minutes=1.0)
    async def seed_ping_hll(self, seed_ping_message):
        
        player_count_end_seeding = await Seed_API()

        players = await api_request_public()
        
        await seed_ping_message.edit(embed =Seed_Ping_Embed())
        await asyncio.sleep(0.3)
        print("player checked")

        if players[1] > player_count_end_seeding[2]:
            seed_ping_message.edit(embed = await Seed_Ping_Embed(server_seeded=True,))
            print("stopping")
            self.seed_ping_hll.cancel()
            players_vip_reward_check()

终端错误

sys:1: RuntimeWarning: coroutine 'Messageable.send' was never awaited
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Task exception was never retrieved
future: <Task finished name='Task-25' coro=<Loop._loop() done, defined at C:\Users\shazd\AppData\Local\pypoetry\Cache\virtualenvs\lost-legionnaire-9AFMHyBb-py3.12\Lib\site-packages\nextcord\ext\tasks\__init__.py:128> exception=TypeError('Loop._error() takes 2 positional arguments but 3 were given')>
Traceback (most recent call last):
  File "C:\Users\shazd\AppData\Local\pypoetry\Cache\virtualenvs\lost-legionnaire-9AFMHyBb-py3.12\Lib\site-packages\nextcord\ext\tasks\__init__.py", line 145, in _loop
    await self.coro(*args, **kwargs)
  File "C:\Users\shazd\lost-legionnaire\lost_legionnaire\cogs\SeedPingHLL.py", line 78, in seed_ping_hll
    seed_ping_message.edit(embed = await Seed_Ping_Embed())
    ^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'coroutine' object has no attribute 'edit'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\shazd\AppData\Local\pypoetry\Cache\virtualenvs\lost-legionnaire-9AFMHyBb-py3.12\Lib\site-packages\nextcord\ext\tasks\__init__.py", line 173, in _loop
    await self._call_loop_function("error", exc)
  File "C:\Users\shazd\AppData\Local\pypoetry\Cache\virtualenvs\lost-legionnaire-9AFMHyBb-py3.12\Lib\site-packages\nextcord\ext\tasks\__init__.py", line 120, in _call_loop_function
    await coro(self._injected, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Loop._error() takes 2 positional arguments but 3 were given

我已将等待添加到需要它的函数中,但“协程”对象没有属性“编辑”,我不知道现在问题是什么,因为它最初是一个等待问题,现在我不知道了

python discord aiohttp nextcord
1个回答
0
投票

因此,将 API 请求更改回使用 requests,然后在将消息发送到此处的通道之前添加等待

seed_ping = await seed_channel.send(embed= Seed_Ping_Embed())

await seed_ping_message.edit(embed=Seed_Ping_Embed())

这似乎有效

© www.soinside.com 2019 - 2024. All rights reserved.