Проблемы с on_message Discord.py
И так, мой бот для Дискорда не выполняет команды. Проблема явно в on_message, так как без этой функции он работает исправно.
@bot.event
async def on_message(message):
if (message.content.startswith('rp!')):
print("Command!") # Не обращайте внимание..
pass
else:
print("Default message")
input = db.show_from_DB(tablename="users", item="messages", member=f"{message.author.mention}") # переменная
msg = int(str(input[-1])) + 1 # И на это тоже..
db.update_value_in_DB(tablename="users",item="messages",value=f"{msg}", member=f"{message.author.mention}")
Код команды для которой нужен on_message
@bot.command()
async def stats(ctx):
try:
member = ctx.message.author.mention
player = db.show_from_DB(tablename="users",item="member",member=f"{str(member)}")
lvl = db.show_from_DB(tablename="users",item="level",member=f"{str(member)}")
msgs = db.show_from_DB(tablename="users",item="messages",member=f"{str(member)}")
rate = db.show_from_DB(tablename="users",item="rate",member=f"{str(member)}")
await ctx.send(f"Игрок: {player[-1]}\nУровень: {lvl[-1]}\nВсего сообщений: {msgs[-1]}\nРепутация: {rate[-1]}")
except:
db.insert_into_DB(isMany=False,tablename="users",fields=f"('{ctx.message.author.mention}', 0, 0, 0)")
member = ctx.message.author.mention
player = db.show_from_DB(tablename="users", item="member", member=f"{str(member)}")
lvl = db.show_from_DB(tablename="users", item="level", member=f"{str(member)}")
msgs = db.show_from_DB(tablename="users", item="messages", member=f"{str(member)}")
rate = db.show_from_DB(tablename="users", item="rate", member=f"{str(member)}")
await ctx.send(f"Игрок: {player[-1]}\nУровень: {lvl[-1]}\nВсего сообщений: {msgs[-1]}\nРепутация: {rate[-1]}")
Я понимаю что мой код - г.. Но тем не менее он иногда работает. Не знаю что еще написать.. Надеюсь я все понятно изложил
Ответы (1 шт):
Автор решения: xZartsust
→ Ссылка
@bot.event
async def on_message(message):
await process_commands(message)
if (message.content.startswith('rp!')):
print("Command!") # Не обращайте внимание..
pass
else:
print("Default message")
input = db.show_from_DB(tablename="users", item="messages", member=f"{message.author.mention}") # переменная
msg = int(str(input[-1])) + 1 # И на это тоже..
db.update_value_in_DB(tablename="users",item="messages",value=f"{msg}", member=f"{message.author.mention}")