added a game queue for more than 45 consecutive games
This commit is contained in:
parent
43736e28f5
commit
bade9c4ede
|
@ -4,6 +4,7 @@ import onomancer as ono
|
||||||
|
|
||||||
client = discord.Client()
|
client = discord.Client()
|
||||||
gamesarray = []
|
gamesarray = []
|
||||||
|
gamesqueue = []
|
||||||
setupmessages = {}
|
setupmessages = {}
|
||||||
|
|
||||||
def config():
|
def config():
|
||||||
|
@ -116,10 +117,8 @@ async def on_message(msg):
|
||||||
|
|
||||||
|
|
||||||
elif command.startswith("startgame\n"):
|
elif command.startswith("startgame\n"):
|
||||||
if len(gamesarray) > 45:
|
|
||||||
await msg.channel.send("We're running 45 games and we doubt Discord will be happy with any more. These edit requests don't come cheap.")
|
if config()["game_freeze"]:
|
||||||
return
|
|
||||||
elif config()["game_freeze"]:
|
|
||||||
await msg.channel.send("Patch incoming. We're not allowing new games right now.")
|
await msg.channel.send("Patch incoming. We're not allowing new games right now.")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -145,7 +144,13 @@ async def on_message(msg):
|
||||||
if team1 is not None and team2 is not None:
|
if team1 is not None and team2 is not None:
|
||||||
game = games.game(msg.author.name, team1, team2, length=innings)
|
game = games.game(msg.author.name, team1, team2, length=innings)
|
||||||
channel = msg.channel
|
channel = msg.channel
|
||||||
|
user_mention = msg.author.mention
|
||||||
await msg.delete()
|
await msg.delete()
|
||||||
|
if len(gamesarray) >= 45:
|
||||||
|
await channel.send(f"We're running 45 games right now, and Discord probably isn't very pleased about it. You're at #{len(gamesqueue)+1} in the list.\nWe'll ping you when it's ready, chief.")
|
||||||
|
gamesqueue.append((channel, game, user_mention))
|
||||||
|
return
|
||||||
|
|
||||||
game_task = asyncio.create_task(watch_game(channel, game))
|
game_task = asyncio.create_task(watch_game(channel, game))
|
||||||
await game_task
|
await game_task
|
||||||
|
|
||||||
|
@ -510,6 +515,17 @@ async def watch_game(channel, game):
|
||||||
gamesarray.pop(gamesarray.index(newgame)) #cleanup is important!
|
gamesarray.pop(gamesarray.index(newgame)) #cleanup is important!
|
||||||
newgame.add_stats()
|
newgame.add_stats()
|
||||||
del newgame
|
del newgame
|
||||||
|
if len(gamesqueue) > 0:
|
||||||
|
channel, game, user_mention = gamesqueue.pop(0)
|
||||||
|
queue_task = asyncio.create_task(play_from_queue(channel, game, user_mention))
|
||||||
|
await queue_task
|
||||||
|
|
||||||
|
async def play_from_queue(channel, game, user_mention):
|
||||||
|
await channel.send(f"{user_mention}, your game's ready.")
|
||||||
|
game_task = asyncio.create_task(watch_game(channel, game))
|
||||||
|
await game_task
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def build_team_embed(team):
|
def build_team_embed(team):
|
||||||
embed = discord.Embed(color=discord.Color.purple(), title=team.name)
|
embed = discord.Embed(color=discord.Color.purple(), title=team.name)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user