Во время работы над дискорд-ботом мне понадобилось использовать SQlite для хранения данных о пользователе, для этого было создано две функции, одна из которых активируется при входе пользователя на сервер, а другая при вводе команды вручную, для проверки функций была создана еще одна команда - тестдатабазы. Но при входе на сервер - в базу данных не вводится никакой информации, а при использовании команды - в консоль пишет сообщение о том - что данной команды не существует
текст ошибкиdiscord.ext.commands.errors.CommandNotFound: Command "новаяучетнаязапись" is not
found
. остальные функции работают исправно.
вот мой код:
import datetime
import sqlite3
import discord
from discord.ext import commands
from datetime import datetime
client = discord.ext.commands.Bot(command_prefix = "D.")
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_member_join(member):
con = sqlite3.connect('mydatabase.db')
cursorObj = con.cursor()
cursorObj.execute('create table if not exists assignments(id TEXT, rawexp INTEGER, date TEXT, exp INTEGER, level INTEGER)')
userdate = datetime.now()
userid = member.author.id
userrawexp = 0
userexp = 0
userlevel = 1
cursorObj.execute("INSERT INTO assignments VALUES(?, ?, ?, ?, ?);", (userid, userrawexp, userdate, userexp, userlevel))
con.commit()
@client.command()
async def тестдатабазы(ctx):
con = sqlite3.connect('mydatabase.db')
cursorObj = con.cursor()
cursorObj.execute("SELECT * FROM assignments;")
d = cursorObj.fetchall()
await ctx.send(f'{d}')
@client.command
async def новаяучетнаязапись(ctx):
con = sqlite3.connect('mydatabase.db')
cursorObj = con.cursor()
cursorObj.execute('create table if not exists assignments(id TEXT, rawexp INTEGER, date TEXT, exp INTEGER, level INTEGER)')
userdate = datetime.now()
userid = ctx.author.id
userrawexp = 0
userexp = 0
userlevel = 1
cursorObj.execute("INSERT INTO assignments VALUES(?, ?, ?, ?, ?);", (userid, userrawexp, userdate, userexp, userlevel))
con.commit()
@client.command()
async def аа(ctx, *, text):
await ctx.send(f'aa')
@client.command()
async def время(ctx):
now = datetime.now()
s = now.time()
await ctx.send(f'{s}')
@client.command()
async def тестсинтаксиса(ctx):
await ctx.send(f"```lol```")
@client.command()
async def примитивныйкалькулятор(ctx,arg1,arg2,arg3):
a = arg1
b = arg2
c = arg3
if (b) == "*" :
a = int(a) * int(c)
else:
if (b) == "+":
a = int(a) + int(c)
else:
if (b) == "-":
a = int(a) + int(c)
else:
if (b) == "/":
a = int(a) / int(c)
await ctx.send(f'{int(a)}')
client.run('Token')