Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import disnake
- import sqlite3
- from disnake.ext import commands
- bot = commands.Bot(command_prefix="!", help_command=None, intents=disnake.Intents.all())
- conn = sqlite3.connect('main.db')
- c = conn.cursor()
- @bot.event
- async def on_ready():
- print(f"Bot {bot.user} is ready to work!")
- c.execute("""CREATE TABLE IF NOT EXISTS users (
- name TEXT,
- score BIGINT,
- wins INTEGER,
- loses INTEGER
- )""")
- conn.commit()
- for guild in bot.guilds:
- for member in guild.members:
- if c.execute(f"SELECT name FROM users WHERE name = '{member}'").fetchone() is None:
- c.execute(f"INSERT INTO users VALUES ('{member}', 0, 0, 0)")
- else:
- pass
- c.execute
- conn.commit()
- print('client connected')
- @bot.slash_command(name='счетчик', description='Добавить победу/поражение')
- async def addwinlose(ctx, user: disnake.User, score: int, winlose: str = commands.Param(choices=['Победа', 'Поражение'])):
- allowed_role = ctx.guild.get_role("1224836480531169474")
- if allowed_role in ctx.author.roles or 1 == 1:
- if winlose == "Победа":
- c.execute("UPDATE users SET wins=wins+1, score=score+? WHERE name=?", (score, f'{user}'))
- else:
- c.execute("UPDATE users SET loses=loses+1, score=score+? WHERE name=?", (score, f'{user}'))
- await ctx.send('Готово')
- else:
- await ctx.send("У вас недостаточно прав для выполнения этой команды.")
- conn.commit()
- @bot.slash_command(name='инфа', description='Вывести информацию по юзеру')
- async def addwinlose(ctx, user: disnake.User):
- allowed_role = ctx.guild.get_role("1224836480531169474")
- if allowed_role in ctx.author.roles or 1 == 1:
- c.execute("SELECT wins, loses, score FROM users WHERE name=?", (f'{user}',))
- wins, loses, score = c.fetchone()
- if wins == 0:
- winrate = 0
- elif loses == 0:
- winrate = 100
- else:
- modifier = 1 + score / wins
- winrate = ((wins * modifier) / (wins / loses)) * 100
- embed = disnake.Embed(
- title=f"Информация по {user}",
- description=f"Баллов: {score}\nПобед: {wins}\nПоражений: {loses}\nПроцент побед: {winrate}%",
- color=0x00ff00
- )
- await ctx.send(embed=embed)
- else:
- await ctx.send("У вас недостаточно прав для выполнения этой команды.")
- conn.commit()
- bot.run('MTIyNDgzNjA4Mzk0NzQwOTQ1OQ.GjfTEd._RIT41txWEEv-HN_6IisXRf67bJWRXaOhHjFfY')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement