мой код бота запланированных сообщений работает, но я понятия не имею, как предотвратить отправку нескольких сообщений одновременно
@Bot.event
async def on_ready():
print("Bot is ready")
while True:
time = datetime.datetime.today()
if time.hour == 2:
if time.minute == 39:
await Bot.get_channel(<channel id>).send(f"Good Morning")






Вы можете использовать логическую переменную, которая указывает, отправили ли вы уже сообщение в 2:39.
@Bot.event
async def on_ready():
print("Bot is ready")
sent = False
while True:
time = datetime.datetime.today()
if time.hour == 2:
if time.minute == 39:
if not sent:
sent = True
await Bot.get_channel(<channel id>).send(f"Good Morning")
else:
sent = False
Как вы хотите реализовать контроль, зависит от тысячи факторов. Вы также можете спать в течение 1 минуты, используя sleep(60), или выйти из цикла после запуска события (перерыв).
Я бы посоветовал использовать для этого
Task, для этого они и предназначены... discordpy.readthedocs.io/en/stable/ext/tasks/index.html 2.0 добавлена поддержка конкретный момент дня (в вашем случае2:30).