@omgwhoit

Как завести работу функций вместе discord.py?

Если отправить сообщение в канал то бот даст реакцию но !clear не работает
@bot.command(pass_context=True)
async def clear(ctx, arg):
	await ctx.message.delete()
	
	async for msg in ctx.message.channel.history(limit=int(arg)):
		if msg is not None:
			await msg.delete()
		
	embed = discord.Embed(title="Удалено "+str(arg)+" сообщений!", description="", color=0x00ff00)
	new_message = await ctx.send(embed=embed)
	await asyncio.sleep(5)
	await new_message.delete()

@bot.event
async def on_message(message):
	suggestion_channel_id = 782338760275918849
	if message.channel.id == suggestion_channel_id:
		if message.content.startswith('!'):
				pass
		else:
			await message.add_reaction("")
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
Amoralny
@Amoralny
Python-разработчик
Вам нужно получить Context
ctx = await bot.get_context(message)

После чего нужно сделать invoke
await bot.invoke(ctx)

CTRL+C
@bot.event
async def on_message(message):
  ctx = await bot.get_context(message)
  await bot.invoke(ctx)

Тогда команды будут работать

ps. в on_message() лучше не ставить обработку команд, для этого есть @bot.command
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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