Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import discord
- import json
- import random
- import time
- from discord.ext.commands import Bot
- from discord.ext import commands
- que = []
- games = []
- duogames = []
- lock = 10
- global open
- open = False
- subs = False
- Client = discord.Client()
- bot_prefix= "!"
- client = commands.Bot(command_prefix=bot_prefix)
- def split_list(alist, wanted_parts=1):
- length = len(alist)
- return [ alist[i*length // wanted_parts: (i+1)*length // wanted_parts]
- for i in range(wanted_parts) ]
- TOKEN = 'NDczNzA2OTEzODg0Nzk4OTc2.DkF2_A.-UAFgJf3m_SiYCwcw5Sn7k1a2q8'
- @client.event
- async def on_ready():
- print("Bot Online")
- print("name: {}".format(client.user.name))
- print("ID: {}".format(client.user.id))
- @client.event
- async def on_message(message):
- global open
- global subs
- if message.content.startswith('!subonly'):
- author = (message.author)
- for i in (author.roles):
- if str(i.name) in "botmoderator":
- subs = True
- await client.send_message(message.channel, "The que is now only for twitch subscribers!")
- else:
- await client.send_message(message.channel, "Invalid permissions")
- if message.content.startswith('!open'):
- author = (message.author)
- for i in (author.roles):
- if str(i.name) in "botmoderator":
- open = True
- await client.send_message(message.channel, "The que is open!")
- else:
- print("Invalid premissions")
- if message.content.startswith('!close'):
- author = (message.author)
- for i in (author.roles):
- if str(i.name) in "botmoderator":
- open = False
- await client.send_message(message.channel, "The que is closed!")
- else:
- print("Invalid premissions")
- if message.content.startswith('!join') or message.content.startswith('!j'):
- inque = False
- if open == True:
- messageSplit = message.content.split(' ')
- Name = message.author
- Platform = " "
- for i in que:
- if i == message.author:
- await client.send_message(message.channel, "You are already in the que!")
- inque = True
- for i in games:
- for x in i:
- if x == message.author:
- await client.send_message(message.channel, "You are already in a game!")
- inque = True
- for i in duogames:
- if i == message.author:
- await client.send_message(message.channel, "You are already in a game!")
- inque = True
- if inque == False:
- que.append(Name)
- print(str(Name) + " joined the que")
- await client.send_message(message.channel,"You joined the que!")
- if open == False:
- await client.send_message(message.channel, "The que is currently closed!")
- if message.content.startswith('!show_que') or message.content.startswith('!sq'):
- nn = 1
- embed = discord.Embed(title="Que Bot", description="This is the current que:", color=0x00ff00)
- for i in que:
- embed.add_field(name=str(nn), value="Name: " + i.mention, inline=False)
- nn = nn + 1
- await client.send_message(message.channel, embed=embed)
- if message.content.startswith('!games') or message.content.startswith('!g'):
- author = (message.author)
- for i in (author.roles):
- if str(i.name) in "botmoderator":
- ps4 = False
- print("Creating game...")
- messageSplit = message.content.split(' ')
- temp = []
- x = 0
- playercount = 1
- num = messageSplit[1]
- num = int(num)
- if (len(que) >= (num * 3)):
- for i in range(num):
- while True:
- temp = []
- print("Selecting players...")
- for i in range(3):
- while True:
- i = que[x]
- x = x + 1
- if i not in temp:
- break
- temp.append(i)
- platforms = ["pc", "pc", "pc"]
- print(str(platforms))
- for i in platforms:
- if i in ['ps4', 'PS4']:
- ps4 = True
- break
- if ps4 == True:
- print("PS4 player detected...")
- valid = 0
- for i in platforms:
- print(i)
- if i in ['pc', 'PC', 'Pc', 'PS4' , 'Ps4', 'ps4']:
- valid = valid + 1
- print("valid = " + str(valid))
- if valid == 3:
- break
- else:
- print("Player invalid, re-selecting players...")
- else:
- break
- x = x + 1
- await client.send_message(message.channel, str(num) + " games were created! Here are the results: \n")
- games.append(temp)
- gnum = 0
- for i in games:
- await client.send_message(message.channel, "Game " + str(gnum + 1) + ": " + (games[gnum][0].mention) + " / " + (games[gnum][1].mention) + " / " + (games[gnum][2].mention))
- remove = 0
- for i in (temp):
- que.remove(i)
- gnum = gnum + 1
- else:
- await client.send_message(message.channel, "Not enough players to create that many games!")
- print("Game created!")
- else:
- print("Invalid premissions")
- if message.content.startswith('!duogame') or message.content.startswith('!dg'):
- permission = False
- author = (message.author)
- for i in (author.roles):
- if str(i.name) in "botmoderator":
- permission = True
- if len(que) != 0:
- i = random.choice(que)
- duogames.append(i)
- que.remove(i)
- await client.send_message(message.channel, "Created duo game with " + i.mention)
- else:
- await client.send_message(message.channel, "There are not enough players to create a duo game!")
- if permission == False:
- await client.send_message(message.channel, "You do not have premisson to use this command!")
- if message.content.startswith('!show_duo_games') or message.content.startswith('!sd'):
- gnum = 1
- embed = discord.Embed(title="Que Bot", description="Here are the current duo games:", color=0x00ff00)
- for i in duogames:
- embed.add_field(name="Game " + str(gnum), value="Name: " + i.mention, inline=False)
- gnum = gnum + 1
- await client.send_message(message.channel, embed=embed)
- if message.content.startswith('!leave') or message.content.startswith('!uq'):
- gnum = 1
- messageSplit = message.content.split(' ')
- name = ("@" + str(message.author))
- Platform = " "
- print("Removing player: " + name)
- try:
- que.remove(message.author)
- await client.send_message(message.channel, "Removed " + name + " from que")
- except:
- print("Player not found in que...")
- for i in games:
- try:
- i.remove([message.author, Platform])
- await client.send_message(message.channel, "Removed " + name + " from game, finding replacement...")
- try:
- i.append(random.choice(que))
- que.remove(i)
- await client.send_message(message.channel, "New lineup for game " + str(gnum) + ": \n")
- await client.send_message(message.channel, (i.mention) + " / " + (i.mention) + " / " + (i.mention))
- except:
- await client.send_message(message.channel, "No extra players to fill the game, current game " + str(gnum) + " lineup: \n")
- await client.send_message(message.channel, (i.mention) + " / " + (i.mention))
- await client.send_message(message.channel, "@here use the command !fill (gamenumber) (platform) to fill the empty slot in the game!")
- except:
- print("Player not found in games...")
- await client.send_message(message.channel, "Player not found")
- gnum = gnum + 1
- if message.content.startswith('!fill'):
- messageSplit = message.content.split(' ')
- num = messageSplit[1]
- name = (message.author)
- platform = messageSplit[2]
- games[(int(num) - 1)].append(name)
- 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))
- if message.content.startswith('!sg'):
- gnum = 1
- embed = discord.Embed(title="Que Bot", description="Here are the current duo games:", color=0x00ff00)
- for i in games:
- embed.add_field(name="Game " + str(gnum), value=(i[0].mention) + " / " + (i[1].mention) + " / " + (i[2].mention), inline=False)
- gnum = gnum + 1
- await client.send_message(message.channel, embed=embed)
- if message.content.startswith('!clear'):
- for i in (author.roles):
- if str(i.name) in "botmoderator":
- messageSplit = message.content.split(' ')
- num = messageSplit[1]
- gameremove = games[(int(num) - 1)]
- for i in games:
- if i == gameremove:
- games.remove(i)
- print("Cleared game " + str(num))
- await client.send_message(message.channel, "Cleared game " + str(num))
- else:
- await client.send_message(message.channel, "You do not have permission to do this command!")
- if message.content.startswith('!removeduo'):
- for i in (author.roles):
- if str(i.name) in "botmoderator":
- messageSplit = message.content.split(' ')
- num = messageSplit[1]
- gameremove = duogames[(int(num) - 1)]
- print(duogames[0])
- print(gameremove)
- for i in duogames:
- if i == gameremove:
- duogames.remove(i)
- print("Cleared duo game " + str(num))
- await client.send_message(message.channel, "Cleared game " + str(num))
- else:
- await client.send_message(message.channel, "You do not have permission to do this command!")
- client.run(TOKEN)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement