Advertisement
yasi04

Untitled

Apr 2nd, 2024
988
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.76 KB | None | 0 0
  1. import disnake
  2. import sqlite3
  3. from disnake.ext import commands
  4.  
  5.  
  6. bot = commands.Bot(command_prefix="!", help_command=None, intents=disnake.Intents.all())
  7.  
  8. conn = sqlite3.connect('main.db')
  9. c = conn.cursor()
  10.  
  11.  
  12. @bot.event
  13. async def on_ready():
  14.     print(f"Bot {bot.user} is ready to work!")
  15.  
  16.     c.execute("""CREATE TABLE IF NOT EXISTS users (
  17.        name TEXT,
  18.        score BIGINT,
  19.        wins INTEGER,
  20.        loses INTEGER
  21.    )""")
  22.  
  23.     conn.commit()
  24.  
  25.     for guild in bot.guilds:
  26.         for member in guild.members:
  27.             if c.execute(f"SELECT name FROM users WHERE name = '{member}'").fetchone() is None:
  28.                 c.execute(f"INSERT INTO users VALUES ('{member}', 0, 0, 0)")
  29.             else:
  30.                 pass
  31.     c.execute
  32.  
  33.     conn.commit()
  34.     print('client connected')
  35.  
  36.  
  37. @bot.slash_command(name='счетчик', description='Добавить победу/поражение')
  38. async def addwinlose(ctx, user: disnake.User, score: int, winlose: str = commands.Param(choices=['Победа', 'Поражение'])):
  39.     allowed_role = ctx.guild.get_role("1224836480531169474")
  40.     if allowed_role in ctx.author.roles or 1 == 1:
  41.         if winlose == "Победа":
  42.             c.execute("UPDATE users SET wins=wins+1, score=score+? WHERE name=?", (score, f'{user}'))
  43.         else:
  44.             c.execute("UPDATE users SET loses=loses+1, score=score+? WHERE name=?", (score, f'{user}'))
  45.         await ctx.send('Готово')
  46.     else:
  47.         await ctx.send("У вас недостаточно прав для выполнения этой команды.")
  48.     conn.commit()
  49.  
  50.  
  51. @bot.slash_command(name='инфа', description='Вывести информацию по юзеру')
  52. async def addwinlose(ctx, user: disnake.User):
  53.     allowed_role = ctx.guild.get_role("1224836480531169474")
  54.     if allowed_role in ctx.author.roles or 1 == 1:
  55.         c.execute("SELECT wins, loses, score FROM users WHERE name=?", (f'{user}',))
  56.         wins, loses, score = c.fetchone()
  57.  
  58.         if wins == 0:
  59.             winrate = 0
  60.         elif loses == 0:
  61.             winrate = 100
  62.         else:
  63.             modifier = 1 + score / wins
  64.             winrate = ((wins * modifier) / (wins / loses)) * 100
  65.  
  66.         embed = disnake.Embed(
  67.             title=f"Информация по {user}",
  68.             description=f"Баллов: {score}\nПобед: {wins}\nПоражений: {loses}\nПроцент побед: {winrate}%",
  69.             color=0x00ff00
  70.         )
  71.         await ctx.send(embed=embed)
  72.     else:
  73.         await ctx.send("У вас недостаточно прав для выполнения этой команды.")
  74.     conn.commit()
  75.  
  76.  
  77.  
  78. bot.run('MTIyNDgzNjA4Mzk0NzQwOTQ1OQ.GjfTEd._RIT41txWEEv-HN_6IisXRf67bJWRXaOhHjFfY')
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement