Есть код варнингов через sql:
class datebase():
user = "default"
guild = "default"
search1 = "default"
search2 = "default"
search3 = "default"
def start(self):
global sql,db
db = sqlite3.connect('datebase/base.db')
sql = db.cursor()
sql.execute('''CREATE TABLE IF NOT EXISTS datebase (
guild INT,
user INT,
warn INT
)''')
db.commit()
def warn(self):
sql.execute(f"SELECT guild FROM datebase WHERE guild = '{self.guild}'")
if sql.fetchall() is None:
sql.execute(f"INSERT INTO datebase VALUES (?,?,?)", (self.guild, self.user, 1 ))
db.commit()
else:
sql.execute(f"SELECT user FROM datebase WHERE guild = '{self.guild}' AND user = '{self.user}'")
if sql.fetchall() is None:
sql.execute(f"INSERT INTO datebase VALUES (?,?,?)", (self.guild, self.user, 1))
db.commit()
else:
for i in sql.execute(f"SELECT warn FROM datebase WHERE guild = '{self.guild}' AND user = '{self.user}'"):
newWarn = i[0] + 1
sql.execute(f"UPDATE datebase SET warn = '{newWarn}' WHERE guild = '{self.guild}' AND user = '{self.user}'")
db.commit()
def search(self):
self.search1 = ""
self.search2 = ""
self.search3 = ""
for i in sql.execute("SELECT guild FROM datebase"):
self.search1 += f"\n{ i[0] }"
for i in sql.execute("SELECT user FROM datebase"):
self.search2 += f"\n{ i[0] }"
for i in sql.execute("SELECT warn FROM datebase"):
self.search3 += f"\n{ i[0] }"
from click import pass_context
from discord.ext import commands
import discord
import os
from datebase.datebase import datebase as dt
class base (commands.Cog):
def __init__(self, client):
self.client = client
@commands.command()
async def warn(self, base, ctx, user: discord.User, guild:discord.Guild = None):
guild = ctx.guild if not guild else guild
self.base = dt()
self.base.guild = guild.id
self.base.user = user.id
self.base.warn()
await ctx.send(f"Уебал лоха {user.name}")
@commands.command()
async def search(self, ctx):
self.base.search()
emb = discord.Embed(title = "Варны")
emb.add_field(name = 'id guild:', value = base.search1)
emb.add_field(name = 'id user:', value = base.search2)
emb.add_field(name = 'warns:', value = base.search3)
await ctx.send(Embed = emb)
async def setup(client):
await client.add_cog( base( client ) )
При выдачи варна через сам дискорд выдаёт ошибку:
!warn
Arguments:
ctx No description given
user No description given
guild No description given (default: None)
Как пофиксить?