При true l oop останавливается при отправке сообщения с discord.py - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь создать бота, который через 5 минут закрывает мой сервер майнкрафт, но примерно через 150 секунд он перестает считать. Но он также может остановиться через 295 секунд, так что это также противоречиво. Когда я заменяю await client.send_message() на print(), он работает нормально. Так кто-нибудь знает, как я мог это исправить? Заранее спасибо!

import discord
import keyboard
import time

token = ""

client = discord.Client()



@client.event
async def on_ready():
    id = client.get_guild(609817678470971411)
    channel = client.get_channel(616005141190934538)
    TimeMessages = [60, 120, 180, 240, 270, 290, 295]
    TimeLeft = ["4 min", "3 min", "2 min", "1 min", "30 sec", "10 sec", "5 sec"]
    StopTime = 300
    StopCntdwn = False
    await channel.send("ready")
    while True:  # making a loop
        print(StopCntdwn)
        try:  # used try so that if user pressed other than the given key error will not be shown
            if keyboard.is_pressed("ctrl+shift+5"):
                print('Triggered')
                print("stop")
            if keyboard.is_pressed("ctrl+shift+s"):
                print("Triggered1")
                StopCntdwn = True
                await channel.send("say §c!WARNING! The server will be shutting down in 5 minutes")
                Tstart = time.time()
                Tcheck = 0
            if StopCntdwn:
                while True:
                    Tnow = time.time()
                    if Tnow - Tcheck >= 1:
                        Ttimer = int(Tnow - Tstart)
                        Tcheck = time.time()
                        print(Ttimer)
                        if Ttimer in TimeMessages:
                            print("Time")
                            TimeMsgPos = TimeMessages.index(Ttimer)
                            await channel.send("say §c!WARNING! Server shutting down in: " + TimeLeft[TimeMsgPos])
                        if Ttimer >= StopTime:
                            await channel.send("say §c!WARNING! Stopping server")
                            await channel.send("stop")



        except:
            continue


client.run(token)
...