Advertisement
Guest User

Untitled

a guest
Jan 4th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 11.39 KB | None | 0 0
  1. import discord
  2. import json
  3. import random
  4. import time
  5. from discord.ext.commands import Bot
  6. from discord.ext import commands
  7.  
  8. que = []
  9. games = []
  10. duogames = []
  11. lock = 10
  12. global open
  13. open = False
  14. subs = False
  15.  
  16. Client = discord.Client()
  17. bot_prefix= "!"
  18. client = commands.Bot(command_prefix=bot_prefix)
  19.  
  20. def split_list(alist, wanted_parts=1):
  21.     length = len(alist)
  22.     return [ alist[i*length // wanted_parts: (i+1)*length // wanted_parts]
  23.              for i in range(wanted_parts) ]
  24.  
  25. TOKEN = 'NDczNzA2OTEzODg0Nzk4OTc2.DkF2_A.-UAFgJf3m_SiYCwcw5Sn7k1a2q8'
  26.  
  27. @client.event
  28. async def on_ready():
  29.     print("Bot Online")
  30.     print("name: {}".format(client.user.name))
  31.     print("ID: {}".format(client.user.id))
  32.  
  33. @client.event
  34. async def on_message(message):
  35.     global open
  36.     global subs
  37.  
  38.     if message.content.startswith('!subonly'):
  39.         author = (message.author)
  40.         for i in (author.roles):
  41.             if str(i.name) in "botmoderator":
  42.                 subs = True
  43.                 await client.send_message(message.channel, "The que is now only for twitch subscribers!")
  44.             else:
  45.                 await client.send_message(message.channel, "Invalid permissions")
  46.  
  47.     if message.content.startswith('!open'):
  48.         author = (message.author)
  49.         for i in (author.roles):
  50.             if str(i.name) in "botmoderator":
  51.                 open = True
  52.                 await client.send_message(message.channel, "The que is open!")
  53.             else:
  54.                 print("Invalid premissions")
  55.  
  56.     if message.content.startswith('!close'):
  57.         author = (message.author)
  58.         for i in (author.roles):
  59.             if str(i.name) in "botmoderator":
  60.                 open = False
  61.                 await client.send_message(message.channel, "The que is closed!")
  62.             else:
  63.                 print("Invalid premissions")
  64.  
  65.     if message.content.startswith('!join') or message.content.startswith('!j'):
  66.         inque = False
  67.         if open == True:
  68.             messageSplit = message.content.split(' ')
  69.             Name = message.author
  70.             Platform = " "
  71.             for i in que:
  72.                 if i == message.author:
  73.                     await client.send_message(message.channel, "You are already in the que!")
  74.                     inque = True
  75.             for i in games:
  76.                 for x in i:
  77.                     if x == message.author:
  78.                         await client.send_message(message.channel, "You are already in a game!")
  79.                         inque = True
  80.             for i in duogames:
  81.                 if i == message.author:
  82.                     await client.send_message(message.channel, "You are already in a game!")
  83.                     inque = True
  84.             if inque == False:
  85.                 que.append(Name)
  86.                 print(str(Name) + " joined the que")
  87.                 await client.send_message(message.channel,"You joined the que!")
  88.         if open == False:
  89.             await client.send_message(message.channel, "The que is currently closed!")
  90.  
  91.     if message.content.startswith('!show_que') or message.content.startswith('!sq'):
  92.         nn = 1
  93.         embed = discord.Embed(title="Que Bot", description="This is the current que:", color=0x00ff00)
  94.         for i in que:
  95.             embed.add_field(name=str(nn), value="Name: " + i.mention, inline=False)
  96.             nn = nn + 1
  97.         await client.send_message(message.channel, embed=embed)
  98.  
  99.     if message.content.startswith('!games') or message.content.startswith('!g'):
  100.         author = (message.author)
  101.         for i in (author.roles):
  102.             if str(i.name) in "botmoderator":
  103.                 ps4 = False
  104.                 print("Creating game...")
  105.                 messageSplit = message.content.split(' ')
  106.                 temp = []
  107.                 x = 0
  108.                 playercount = 1
  109.                 num = messageSplit[1]
  110.                 num = int(num)
  111.                 if (len(que) >= (num * 3)):
  112.                     for i in range(num):
  113.                         while True:
  114.                             temp = []
  115.                             print("Selecting players...")
  116.                             for i in range(3):
  117.                                 while True:
  118.                                     i = que[x]
  119.                                     x = x + 1
  120.                                     if i not in temp:
  121.                                         break
  122.                                 temp.append(i)
  123.                             platforms = ["pc", "pc", "pc"]
  124.                             print(str(platforms))
  125.                             for i in platforms:
  126.                                 if i in ['ps4', 'PS4']:
  127.                                     ps4 = True
  128.                                     break
  129.                             if ps4 == True:
  130.                                 print("PS4 player detected...")
  131.                                 valid = 0
  132.                                 for i in platforms:
  133.                                     print(i)
  134.                                     if i in ['pc', 'PC', 'Pc', 'PS4' , 'Ps4', 'ps4']:
  135.                                         valid = valid + 1
  136.                                         print("valid = " + str(valid))
  137.                                 if valid == 3:
  138.                                     break
  139.                                 else:
  140.                                     print("Player invalid, re-selecting players...")
  141.                             else:
  142.                                 break
  143.                                 x = x + 1
  144.                         await client.send_message(message.channel, str(num) + " games were created! Here are the results: \n")
  145.                         games.append(temp)
  146.                         gnum = 0
  147.                         for i in games:
  148.                             await client.send_message(message.channel, "Game " + str(gnum + 1) + ": " + (games[gnum][0].mention) + " / " + (games[gnum][1].mention) + " / " + (games[gnum][2].mention))
  149.                             remove = 0
  150.                             for i in (temp):
  151.                                 que.remove(i)
  152.                             gnum = gnum + 1
  153.                 else:
  154.                     await client.send_message(message.channel, "Not enough players to create that many games!")
  155.                 print("Game created!")
  156.         else:
  157.             print("Invalid premissions")
  158.  
  159.     if message.content.startswith('!duogame') or message.content.startswith('!dg'):
  160.         permission = False
  161.         author = (message.author)
  162.         for i in (author.roles):
  163.             if str(i.name) in "botmoderator":
  164.                 permission = True
  165.                 if len(que) != 0:
  166.                     i = random.choice(que)
  167.                     duogames.append(i)
  168.                     que.remove(i)
  169.                     await client.send_message(message.channel, "Created duo game with " + i.mention)
  170.                 else:
  171.                     await client.send_message(message.channel, "There are not enough players to create a duo game!")
  172.         if permission == False:
  173.             await client.send_message(message.channel, "You do not have premisson to use this command!")
  174.  
  175.     if message.content.startswith('!show_duo_games') or message.content.startswith('!sd'):
  176.         gnum = 1
  177.         embed = discord.Embed(title="Que Bot", description="Here are the current duo games:", color=0x00ff00)
  178.         for i in duogames:
  179.             embed.add_field(name="Game " + str(gnum), value="Name: " + i.mention, inline=False)
  180.             gnum = gnum + 1
  181.         await client.send_message(message.channel, embed=embed)
  182.  
  183.  
  184.     if message.content.startswith('!leave') or message.content.startswith('!uq'):
  185.         gnum = 1
  186.         messageSplit = message.content.split(' ')
  187.         name = ("@" + str(message.author))
  188.         Platform = " "
  189.         print("Removing player: " + name)
  190.         try:
  191.             que.remove(message.author)
  192.             await client.send_message(message.channel, "Removed " + name + " from que")
  193.         except:
  194.             print("Player not found in que...")
  195.         for i in games:
  196.             try:
  197.                 i.remove([message.author, Platform])
  198.                 await client.send_message(message.channel, "Removed " + name + " from game, finding replacement...")
  199.                 try:
  200.                     i.append(random.choice(que))
  201.                     que.remove(i)
  202.                     await client.send_message(message.channel, "New lineup for game " + str(gnum) + ": \n")
  203.                     await client.send_message(message.channel, (i.mention) + " / " + (i.mention) + " / " + (i.mention))
  204.                 except:
  205.                     await client.send_message(message.channel, "No extra players to fill the game, current game " + str(gnum) + " lineup: \n")
  206.                     await client.send_message(message.channel, (i.mention) + " / " + (i.mention))
  207.                     await client.send_message(message.channel, "@here use the command !fill (gamenumber) (platform) to fill the empty slot in the game!")
  208.             except:
  209.                 print("Player not found in games...")
  210.                 await client.send_message(message.channel, "Player not found")
  211.             gnum = gnum + 1
  212.  
  213.     if message.content.startswith('!fill'):
  214.          messageSplit = message.content.split(' ')
  215.          num = messageSplit[1]
  216.          name = (message.author)
  217.          platform = messageSplit[2]
  218.          games[(int(num) - 1)].append(name)
  219.          await client.send_message(message.channel, "Joined game " + num + "! \nNew lineup: \n" + (games[int(num) - 1].mention) + " / " + (games[int(num) - 1].mention) + " / " + (games[int(num) - 1].mention))
  220.  
  221.     if message.content.startswith('!sg'):
  222.         gnum = 1
  223.         embed = discord.Embed(title="Que Bot", description="Here are the current duo games:", color=0x00ff00)
  224.         for i in games:
  225.             embed.add_field(name="Game " + str(gnum), value=(i[0].mention) + " / " + (i[1].mention) + " / " + (i[2].mention), inline=False)
  226.             gnum = gnum + 1
  227.         await client.send_message(message.channel, embed=embed)
  228.  
  229.     if message.content.startswith('!clear'):
  230.         for i in (author.roles):
  231.             if str(i.name) in "botmoderator":
  232.              messageSplit = message.content.split(' ')
  233.              num = messageSplit[1]
  234.              gameremove = games[(int(num) - 1)]
  235.              for i in games:
  236.                  if i == gameremove:
  237.                      games.remove(i)
  238.              print("Cleared game " + str(num))
  239.              await client.send_message(message.channel, "Cleared game " + str(num))
  240.             else:
  241.              await client.send_message(message.channel, "You do not have permission to do this command!")
  242.  
  243.     if message.content.startswith('!removeduo'):
  244.         for i in (author.roles):
  245.             if str(i.name) in "botmoderator":
  246.              messageSplit = message.content.split(' ')
  247.              num = messageSplit[1]
  248.              gameremove = duogames[(int(num) - 1)]
  249.              print(duogames[0])
  250.              print(gameremove)
  251.              for i in duogames:
  252.                  if i == gameremove:
  253.                      duogames.remove(i)
  254.              print("Cleared duo game " + str(num))
  255.              await client.send_message(message.channel, "Cleared game " + str(num))
  256.             else:
  257.              await client.send_message(message.channel, "You do not have permission to do this command!")
  258. client.run(TOKEN)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement