from collections import deque play_queue=deque() play_set=set() def joinQueue(bot, nick, msg): args=msg.split(None, 1) name=args[1] for pair in play_set: if nick ==pair[0]: bot.say(nick+": you are already in queue as "+pair[1]) return if name == pair[1]: bot.say(name+": is already registered to the user "+pair[0]) return play_queue.append((nick, name)) play_set.add((nick, name)) bot.say(nick+" you have joined the queue as "+name) joinQueue.commands=["^!joinQueue [^\s].+"] joinQueue.privilege="regular" joinQueue.usage=("joinQueue", "!joinQueue inGameName -- add your name to the queue to play in upcoming games") def getPlayers(bot, nick, msg): args=msg.split() num= int(args[1]) length=min(len(play_set), num) results=[] for x in range(length): pair = play_queue.popleft() play_set.remove(pair) results.append(pair[1]) end=", ".join(results) if len(play_set) ==0: end+=" --queue is now empty" bot.say(end) getPlayers.commands=["^!getPlayers [1-9]$"] getPlayers.privilege="owners" def removeNickOwner(bot, nick, msg): args=msg.split(None, 1) name=args[1] for pair in play_set: if pair[0] == name: play_set.remove(pair) play_queue.remove(pair) bot.say(name+" has been removed from the queue by "+nick) return bot.say("no such person in the queue") removeNickOwner.commands=["^!removePerson [^\s].+"] removeNickOwner.privilege="owners" def exitQueue(bot, nick, msg): for pair in play_set: if pair[0] == nick: play_set.remove(pair) play_queue.remove(pair) bot.say(nick+" has been removed him/herself from the queue") return bot.say(nick+", you are not in the queue!") exitQueue.commands=["^!exitQueue$"] exitQueue.usage=("exitQueue", "!exitQueue - remove yourself from the queue to play in upcoming games")