繁体   English   中英

Discord Bot 不适用于 while 循环

[英]Discord Bot does not work with while-loop

async def start():
    while True:
        await switch()
        time.sleep(1)

async def switch():
    for i in range(len(aktiv)):
        print(list[i])
        print(aktiv[i])
        if list[i].voice != None:
            if aktiv[i] == False:
                aktiv[i] = True
                print('Erkannt')
                await music(list[i], song)
            else:
                pass
        else:
            aktiv[i] = False

当播放器加入语音频道时,Bot 被编写为播放音乐我使用代码检查播放器是否是频道中的新播放器。 但是当循环运行时,它似乎无法检测到 user.voice 何时发生变化。 它只需要第一个输入。 有人有解决方案如何测试一个人是否是频道中的新人?

您正在使用time.sleep这是一个阻塞 function,(有关更多信息,请阅读此处),请改用asyncio.sleep

import asyncio

async def start():
    while True:
        await switch()
        await asyncio.sleep(1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM