#python #discord #discord.py
#python #Discord #discord.py
Вопрос:
Хорошо, итак, у меня такая проблема: я написал код, который предназначен для отправки сообщения на сервер discord каждые (пока только для тестирования) 10 секунд, и когда я пытаюсь выполнить команду на discord:
import os
import sched
import time
from discord.ext import commands
from dotenv import load_dotenv
import Library
load_dotenv()
TOKEN = os.getenv('discordToken')
bot = commands.Bot(command_prefix='Question')
lastEmbed = None
s = sched.scheduler(time.time, time.sleep)
async def do_something(sc):
channel = bot.get_channel(416238248445214720)
await channel.send("And what?")
s.enter(10, 1, do_something, (sc,))
@bot.event
async def on_ready():
print(f'{bot.user.name} has connected to Discord!')
s.enter(10, 1, do_something, (s,))
s.run()
Каждый раз, когда я получаю такую ошибку:
C:Program FilesWindowsAppsPythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0libsched.py:151: RuntimeWarning: coroutine 'do_something' was never awaited
action(*argument, **kwargs)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Комментарии:
1. Я полагаю, что ваша проблема связана с sched и асинхронностью кода бота discord.
2. Пожалуйста, добавьте полную трассировку стека
Ответ №1:
Хорошо, спасибо @FrozenAra и @derw за вашу помощь, хотя я нашел совершенно другой способ решения проблемы, который я использовал в discord.Клиентская библиотека и задачи, так что теперь это выглядит так:
@tasks.loop(minutes=30)
async def reminder():
channel = client.get_channel(692724253237313576)
await channel.send("So what?")
await channel.send(preembed)
И все работает просто отлично.
Спасибо за вашу помощь, ребята 🙂