20two_may
@20two_may

Почему код не запускается? В чём ошибка?

Ошибка:
Traceback (most recent call last):
File "bot.py", line 465, in
@client.event()
TypeError: event() missing 1 required positional argument: 'coro'

@client.event()
async def on_group_remove(ctx, channel, member):
	cursor.execute("UPDATE users SET onchannel = 0 WHERE name = {}").format(member.name)
@client.event()
async def on_group_join(ctx, channel, member):
	cursor.execute("UPDATE users SET onchannel = 1 WHERE name = {}").format(member.name)
async def vccash(ctx):
	while True:
		for x in cursor.execute("SELECT onchannel, name FROM users").fetchall():
			if x[0] == 1:
				cursor.execute("UPDATE users SET cash = cash + 1 WHERE name = {}").format(x[1])
		await asyncio.sleep(20)


p.s. функция vccash прописана в on_ready()
  • Вопрос задан
  • 1375 просмотров
Решения вопроса 1
Декоратор client.event не должен вызываться: https://discordpy.readthedocs.io/en/v1.4.1/api.htm...

@client.event  # вызов функции-декоратора (скобки) отсуствует
async def on_ready(): 
    print('Ready!')


Также небольшой совет: Постарайтесь воздержаться от блокирующих библиотек/функций, особенно при наличии асинхронных аналогов: https://pypi.org/project/aiomysql/

А также: "слушатели" on_group_* на клиенте-боте абсолютно бесполезны, так как дискорд не предоставляет возможности добавления ботов в "группы"
Если вы хотите отслеживать вход пользователей на сервер, вам необходимы "слушатели" разряда on_guild_*
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@69MyCoPkA69
Вероятно, ошибка возникает из-за отсутствующего обязательного аргумента "coro".
spoiler
Если пишете бота с помощью стороннего модуля, то почитайте его документацию, скорее всего там написано, как правильно это использовать и что должно быть в аргументе "coro".
Либо воспользуйтесь IDE с подсказками, дополнениями и прочим функционалом.
К примеру, PyCharm или что-то похожее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы