Guild not server

howdoi
Bobloy 7 years ago
parent 89ad3939b8
commit e222c553dd

@ -34,12 +34,12 @@ class Fight:
@commands.group(pass_context=True, no_pm=True) @commands.group(pass_context=True, no_pm=True)
async def fight(self, ctx): async def fight(self, ctx):
"""Participate in active fights!""" """Participate in active fights!"""
server = ctx.message.server guild = ctx.message.guild
if not self._activefight(server.id): if not self._activefight(guild.id):
await self.bot.say("No tournament currently running!") await self.bot.say("No tournament currently running!")
else: else:
await self.bot.say("Current tournament ID: " + self._activefight(server.id)) await self.bot.say("Current tournament ID: " + self._activefight(guild.id))
if ctx.invoked_subcommand is None: if ctx.invoked_subcommand is None:
await self.bot.send_cmd_help(ctx) await self.bot.send_cmd_help(ctx)
@ -48,12 +48,12 @@ class Fight:
@fight.command(name="join", pass_context=True) @fight.command(name="join", pass_context=True)
async def fight_join(self, ctx, user: discord.Member=None): async def fight_join(self, ctx, user: discord.Member=None):
"""Join the active fight""" """Join the active fight"""
server = ctx.message.server guild = ctx.message.guild
if not user: if not user:
user = ctx.message.author user = ctx.message.author
currFight = self._getcurrentfight(server.id) currFight = self._getcurrentfight(guild.id)
tID = self._activefight(server.id) tID = self._activefight(guild.id)
if not currFight: if not currFight:
await self.bot.say("No tournament currently running!") await self.bot.say("No tournament currently running!")
return return
@ -62,7 +62,7 @@ class Fight:
await self.bot.say("Tournament currently not accepting new players") await self.bot.say("Tournament currently not accepting new players")
return return
if self._infight(server.id, tID, user.id): if self._infight(guild.id, tID, user.id):
await self.bot.say("You are already in this tournament!") await self.bot.say("You are already in this tournament!")
return return
@ -75,38 +75,38 @@ class Fight:
@fight.command(name="score", pass_context=True) @fight.command(name="score", pass_context=True)
async def fight_score(self, ctx, tID=None, score1=None, score2=None): async def fight_score(self, ctx, tID=None, score1=None, score2=None):
"""Enters score for current match, or for passed tournament ID""" """Enters score for current match, or for passed tournament ID"""
server = ctx.message.server guild = ctx.message.guild
user = ctx.message.author user = ctx.message.author
currFight = self._getcurrentfight(server.id) currFight = self._getcurrentfight(guild.id)
if not currFight: if not currFight:
await self.bot.say("No tournament currently running!") await self.bot.say("No tournament currently running!")
return return
if not tID: if not tID:
tID = self._activefight(server.id) tID = self._activefight(guild.id)
if not self._infight(server.id, tID, user.id): if not self._infight(guild.id, tID, user.id):
await self.bot.say("You are not in a current tournament") await self.bot.say("You are not in a current tournament")
return return
mID = self._parseuser(server.id, tID, user.id) mID = self._parseuser(guild.id, tID, user.id)
if not mID: if not mID:
await self.bot.say("You have no match to update!") await self.bot.say("You have no match to update!")
return return
if currFight["RULES"]["TYPE"] == 0: # Round-Robin if currFight["RULES"]["TYPE"] == 0: # Round-Robin
await self._rr_score(server.id, tID, mID, user, score1, score2) await self._rr_score(guild.id, tID, mID, user, score1, score2)
@fight.command(name="leave", pass_context=True) @fight.command(name="leave", pass_context=True)
async def fight_leave(self, ctx, tID=None, user: discord.Member=None): async def fight_leave(self, ctx, tID=None, user: discord.Member=None):
"""Forfeit your match and all future matches""" """Forfeit your match and all future matches"""
server = ctx.message.server guild = ctx.message.guild
if not user: if not user:
user = ctx.message.author user = ctx.message.author
if not tID: if not tID:
tID = self._activefight(serverid) tID = self._activefight(guildid)
await self.bot.say("Todo Leave") await self.bot.say("Todo Leave")
# @fight.command(name="leaderboard", pass_context=True) # @fight.command(name="leaderboard", pass_context=True)
@ -128,18 +128,18 @@ class Fight:
# **********************Fightset command group start********************* # **********************Fightset command group start*********************
# def fightsetdec(func): # def fightsetdec(func):
# async def decorated(self, ctx, *args, **kwargs): # async def decorated(self, ctx, *args, **kwargs):
# server = ctx.message.server # guild = ctx.message.guild
# await func(self, ctx, server, *args, **kwargs) # await func(self, ctx, guild, *args, **kwargs)
# return decorated # return decorated
@commands.group(pass_context=True, no_pm=True, aliases=['setfight']) @commands.group(pass_context=True, no_pm=True, aliases=['setfight'])
@checks.mod_or_permissions(administrator=True) @checks.mod_or_permissions(administrator=True)
async def fightset(self, ctx): async def fightset(self, ctx):
"""Admin command for starting or managing tournaments""" """Admin command for starting or managing tournaments"""
server = ctx.message.server guild = ctx.message.guild
if server.id not in self.the_data or True: if guild.id not in self.the_data:
self.the_data[server.id] = { self.the_data[guild.id] = {
"CURRENT": None, "CURRENT": None,
"TOURNEYS": {}, "TOURNEYS": {},
"SETTINGS": { "SETTINGS": {
@ -168,13 +168,13 @@ class Fight:
@fightset.command(name="bestof", pass_context=True) @fightset.command(name="bestof", pass_context=True)
async def fightset_bestof(self, ctx, incount, tID=None): async def fightset_bestof(self, ctx, incount, tID=None):
"""Adjust # of games played per match. Must be an odd number""" """Adjust # of games played per match. Must be an odd number"""
server = ctx.message.server guild = ctx.message.guild
if not tID and not self._activefight(server.id): if not tID and not self._activefight(guild.id):
await self.bot.say("No active fight to adjust") await self.bot.say("No active fight to adjust")
return return
if not tID: if not tID:
tID = self._activefight(server.id) tID = self._activefight(guild.id)
try: try:
num = int(incount) num = int(incount)
@ -194,7 +194,7 @@ class Fight:
await self.bot.say("I can't go that high! Max 17") await self.bot.say("I can't go that high! Max 17")
return return
self._getfight(server.id, tID)["RULES"]["BESTOF"] = num self._getfight(guild.id, tID)["RULES"]["BESTOF"] = num
self.save_data() self.save_data()
await self.bot.say("Tourney ID "+tID+" is now Best of "+str(num)) await self.bot.say("Tourney ID "+tID+" is now Best of "+str(num))
@ -202,13 +202,13 @@ class Fight:
async def fightset_bestoffinal(self, ctx, incount, tID=None): async def fightset_bestoffinal(self, ctx, incount, tID=None):
"""Adjust # of games played in finals. Must be an odd number """Adjust # of games played in finals. Must be an odd number
(Does not apply to tournament types without finals, such as Round Robin)""" (Does not apply to tournament types without finals, such as Round Robin)"""
server = ctx.message.server guild = ctx.message.guild
if not tID and not self._activefight(server.id): if not tID and not self._activefight(guild.id):
await self.bot.say("No active fight to adjust") await self.bot.say("No active fight to adjust")
return return
if not tID: if not tID:
tID = self._activefight(server.id) tID = self._activefight(guild.id)
try: try:
num = int(incount) num = int(incount)
@ -224,21 +224,21 @@ class Fight:
await self.bot.say("Must be greater than 0, idiot") await self.bot.say("Must be greater than 0, idiot")
return return
self._getfight(server.id, tID)["RULES"]["BESTOFFINAL"] = num self._getfight(guild.id, tID)["RULES"]["BESTOFFINAL"] = num
self.save_data() self.save_data()
await self.bot.say("Tourney ID "+tID+" is now Best of "+str(num)) await self.bot.say("Tourney ID "+tID+" is now Best of "+str(num))
@fightset.command(name="current", pass_context=True) @fightset.command(name="current", pass_context=True)
async def fightset_current(self, ctx, tID): async def fightset_current(self, ctx, tID):
"""Sets the current tournament to passed ID""" """Sets the current tournament to passed ID"""
server = ctx.message.server guild = ctx.message.guild
aFight = self._getfight(server.id, tID) aFight = self._getfight(guild.id, tID)
if not aFight: if not aFight:
await self.bot.say("No tourney found with that ID") await self.bot.say("No tourney found with that ID")
return return
self.the_data[server.id]["CURRENT"] = tID self.the_data[guild.id]["CURRENT"] = tID
self.save_data() self.save_data()
await self.bot.say("Current tournament set to "+tID) await self.bot.say("Current tournament set to "+tID)
@ -246,9 +246,9 @@ class Fight:
@fightset.command(name="list", pass_context=True) @fightset.command(name="list", pass_context=True)
async def fightset_list(self, ctx): async def fightset_list(self, ctx):
"""Lists all current and past fights""" """Lists all current and past fights"""
server = ctx.message.server guild = ctx.message.guild
for page in pagify(str(self.the_data[server.id]["TOURNEYS"])): for page in pagify(str(self.the_data[guild.id]["TOURNEYS"])):
await self.bot.say(box(page)) await self.bot.say(box(page))
await self.bot.say("Done") await self.bot.say("Done")
@ -256,12 +256,12 @@ class Fight:
@fightset.command(name="open", pass_context=True) @fightset.command(name="open", pass_context=True)
async def fightset_open(self, ctx): async def fightset_open(self, ctx):
"""Toggles the open status of current tournament""" """Toggles the open status of current tournament"""
server = ctx.message.server guild = ctx.message.guild
if not self._activefight(server.id): if not self._activefight(guild.id):
await self.bot.say("No active fight to adjust") await self.bot.say("No active fight to adjust")
return return
currFight = self._getcurrentfight(server.id) currFight = self._getcurrentfight(guild.id)
currFight["OPEN"] = not currFight["OPEN"] currFight["OPEN"] = not currFight["OPEN"]
self.save_data() self.save_data()
@ -271,25 +271,25 @@ class Fight:
@fightset.command(name="name", pass_context=True) @fightset.command(name="name", pass_context=True)
async def fightset_name(self, ctx, inname, tID=None): async def fightset_name(self, ctx, inname, tID=None):
"""Renames the tournament""" """Renames the tournament"""
server = ctx.message.server guild = ctx.message.guild
if not tID and not self._activefight(server.id): if not tID and not self._activefight(guild.id):
await self.bot.say("No active fight to adjust") await self.bot.say("No active fight to adjust")
return return
if not tID: if not tID:
tID = self._activefight(server.id) tID = self._activefight(guild.id)
self._getfight(server.id, tID)["NAME"] = inname self._getfight(guild.id, tID)["NAME"] = inname
self.save_data() self.save_data()
await self.bot.say("Tourney ID "+tID+" is now called "+self._getfight(server.id, tID)["NAME"]) await self.bot.say("Tourney ID "+tID+" is now called "+self._getfight(guild.id, tID)["NAME"])
@fightset.command(name="start", pass_context=True) @fightset.command(name="start", pass_context=True)
async def fightset_start(self, ctx): async def fightset_start(self, ctx):
"""Starts the current tournament, must run setup first""" """Starts the current tournament, must run setup first"""
server = ctx.message.server guild = ctx.message.guild
author = ctx.message.author author = ctx.message.author
currFight = self._getcurrentfight(server.id) currFight = self._getcurrentfight(guild.id)
tID = self._activefight(server.id) tID = self._activefight(guild.id)
if not tID: if not tID:
await self.bot.say("No current fight to start") await self.bot.say("No current fight to start")
@ -307,7 +307,7 @@ class Fight:
self.save_data() self.save_data()
if currFight["RULES"]["TYPE"] == 0: # Round-Robin if currFight["RULES"]["TYPE"] == 0: # Round-Robin
await self._rr_start(server.id, tID) await self._rr_start(guild.id, tID)
@fightset.command(name="setup", pass_context=True) @fightset.command(name="setup", pass_context=True)
async def fightset_setup(self, ctx): async def fightset_setup(self, ctx):
@ -318,8 +318,8 @@ class Fight:
Best of (final): 1 Best of (final): 1
Self Report: True Self Report: True
Type: 0 (Round Robin)""" Type: 0 (Round Robin)"""
server = ctx.message.server guild = ctx.message.guild
currServ = self.the_data[server.id] currServ = self.the_data[guild.id]
tID = str(len(currServ["TOURNEYS"])) # Can just be len without +1, tourney 0 makes len 1, tourney 1 makes len 2, etc tID = str(len(currServ["TOURNEYS"])) # Can just be len without +1, tourney 0 makes len 1, tourney 1 makes len 2, etc
currServ["CURRENT"] = tID currServ["CURRENT"] = tID
currServ["TOURNEYS"][tID] = { currServ["TOURNEYS"][tID] = {
@ -340,13 +340,13 @@ class Fight:
@fightset.command(name="stop", pass_context=True) @fightset.command(name="stop", pass_context=True)
async def fightset_stop(self, ctx): async def fightset_stop(self, ctx):
"""Stops current tournament""" """Stops current tournament"""
server = ctx.message.server guild = ctx.message.guild
if not self._activefight(server.id): if not self._activefight(guild.id):
await self.bot.say("No active fight to adjust") await self.bot.say("No active fight to adjust")
return return
author = ctx.message.author author = ctx.message.author
currServ = self.the_data[server.id] currServ = self.the_data[guild.id]
await self.bot.say("Current fight ID is "+str(currServ["CURRENT"])+"\nOkay to stop? (yes/no)") await self.bot.say("Current fight ID is "+str(currServ["CURRENT"])+"\nOkay to stop? (yes/no)")
@ -361,19 +361,19 @@ class Fight:
self.save_data() self.save_data()
await self.bot.say("Fight has been stopped") await self.bot.say("Fight has been stopped")
# ***************************Fightset_server command group start************************** # ***************************Fightset_guild command group start**************************
@fightset.group(name="server", pass_context=True) @fightset.group(name="guild", pass_context=True)
async def fightset_server(self, ctx): async def fightset_guild(self, ctx):
"""Adjust server wide settings""" """Adjust guild wide settings"""
if ctx.invoked_subcommand is None: if ctx.invoked_subcommand is None:
await self.bot.send_cmd_help(ctx) await self.bot.send_cmd_help(ctx)
@fightset_server.command(name="selfreport", pass_context=True) @fightset_guild.command(name="selfreport", pass_context=True)
async def fightset_server_selfreport(self, ctx): async def fightset_guild_selfreport(self, ctx):
"""Toggles the ability to self-report scores for all tournaments""" """Toggles the ability to self-report scores for all tournaments"""
server = ctx.message.server guild = ctx.message.guild
settings = self._getsettings(server.id) settings = self._getsettings(guild.id)
settings["SELFREPORT"] = not settings["SELFREPORT"] settings["SELFREPORT"] = not settings["SELFREPORT"]
@ -381,12 +381,12 @@ class Fight:
await self.bot.say("Self-Reporting ability is now set to: " + str(settings["SELFREPORT"])) await self.bot.say("Self-Reporting ability is now set to: " + str(settings["SELFREPORT"]))
@fightset_server.command(name="reportchnnl", pass_context=True) @fightset_guild.command(name="reportchnnl", pass_context=True)
async def fightset_server_reportchnnl(self, ctx, channel: discord.Channel=None): async def fightset_guild_reportchnnl(self, ctx, channel: discord.Channel=None):
"""Set the channel for self-reporting""" """Set the channel for self-reporting"""
server = ctx.message.server guild = ctx.message.guild
settings = self._getsettings(server.id) settings = self._getsettings(guild.id)
settings["REPORTCHNNL"] = channel.id settings["REPORTCHNNL"] = channel.id
@ -394,12 +394,12 @@ class Fight:
await self.bot.say("Self-Reporting Channel is now set to: " + channel.mention) await self.bot.say("Self-Reporting Channel is now set to: " + channel.mention)
@fightset_server.command(name="announcechnnl", pass_context=True) @fightset_guild.command(name="announcechnnl", pass_context=True)
async def fightset_server_announcechnnl(self, ctx, channel: discord.Channel=None): async def fightset_guild_announcechnnl(self, ctx, channel: discord.Channel=None):
"""Set the channel for tournament announcements""" """Set the channel for tournament announcements"""
server = ctx.message.server guild = ctx.message.guild
settings = self._getsettings(server.id) settings = self._getsettings(guild.id)
settings["ANNOUNCECHNNL"] = channel.id settings["ANNOUNCECHNNL"] = channel.id
@ -407,25 +407,12 @@ class Fight:
await self.bot.say("Announcement Channel is now set to: " + channel.mention) await self.bot.say("Announcement Channel is now set to: " + channel.mention)
@fightset_server.command(name="announcechnnl", pass_context=True) @fightset_guild.command(name="setadmin", pass_context=True)
async def fightset_server_announcechnnl(self, ctx, channel: discord.Channel=None): async def fightset_guild_setadmin(self, ctx, role: discord.Role=None):
"""Set the channel for tournament announcements"""
server = ctx.message.server
settings = self._getsettings(server.id)
settings["ANNOUNCECHNNL"] = channel.id
self.save_data()
await self.bot.say("Announcement Channel is now set to: " + channel.mention)
@fightset_server.command(name="setadmin", pass_context=True)
async def fightset_server_setadmin(self, ctx, role: discord.Role=None):
"""Chooses the tournament-admin role. CAREFUL: This grants the ability to override self-reported scores!""" """Chooses the tournament-admin role. CAREFUL: This grants the ability to override self-reported scores!"""
server = ctx.message.server guild = ctx.message.guild
settings = self._getsettings(server.id) settings = self._getsettings(guild.id)
settings["ADMIN"] = role.id settings["ADMIN"] = role.id
@ -434,24 +421,24 @@ class Fight:
await self.bot.say("Tournament Admin role is now set to: " + role.mention) await self.bot.say("Tournament Admin role is now set to: " + role.mention)
# **********************Private command group start********************* # **********************Private command group start*********************
def _serversettings(self, serverid): def _guildsettings(self, guildid):
"""Returns the dictionary of server settings""" """Returns the dictionary of guild settings"""
return self.the_data[serverid]["SETTINGS"] return self.the_data[guildid]["SETTINGS"]
def _messagetracker(self, serverid): def _messagetracker(self, guildid):
"""Returns the dictionary of message tracking""" """Returns the dictionary of message tracking"""
return self.the_data[serverid]["SRTRACKER"] return self.the_data[guildid]["SRTRACKER"]
def _activefight(self, serverid): def _activefight(self, guildid):
"""Returns id for active fight, or None if no active fight""" """Returns id for active fight, or None if no active fight"""
return self.the_data[serverid]["CURRENT"] return self.the_data[guildid]["CURRENT"]
def _infight(self, serverid, tID, userid): def _infight(self, guildid, tID, userid):
"""Checks if passed member is already in the tournament""" """Checks if passed member is already in the tournament"""
return userid in self.the_data[serverid]["TOURNEYS"][tID]["PLAYERS"] return userid in self.the_data[guildid]["TOURNEYS"][tID]["PLAYERS"]
async def _embed_tourney(self, serverid, tID): async def _embed_tourney(self, guildid, tID):
"""Prints a pretty embed of the tournament""" """Prints a pretty embed of the tournament"""
await self.bot.say("_placeholder Todo") await self.bot.say("_placeholder Todo")
@ -459,22 +446,22 @@ class Fight:
"""Checks user submitted scores for inconsistancies""" """Checks user submitted scores for inconsistancies"""
await self.bot.say("_comparescores Todo") await self.bot.say("_comparescores Todo")
def _parseuser(self, serverid, tID, userid): def _parseuser(self, guildid, tID, userid):
"""Finds user in the tournament""" """Finds user in the tournament"""
if self._getfight(serverid, tID)["RULES"]["TYPE"] == 0: # RR if self._getfight(guildid, tID)["RULES"]["TYPE"] == 0: # RR
return self._rr_parseuser(serverid, tID, userid) return self._rr_parseuser(guildid, tID, userid)
return False return False
def _get_team(self, serverid, teaminfo): def _get_team(self, guildid, teaminfo):
"""Team info is a list of userid's. Returns a list of user objects""" """Team info is a list of userid's. Returns a list of user objects"""
outlist = [] outlist = []
for player in teaminfo: for player in teaminfo:
outlist.append(self._get_user_from_id(serverid, player)) outlist.append(self._get_user_from_id(guildid, player))
return outlist return outlist
def _getsettings(self, serverid): def _getsettings(self, guildid):
return self.the_data[serverid]["SETTINGS"] return self.the_data[guildid]["SETTINGS"]
async def _get_message_from_id(self, channelid, messageid): async def _get_message_from_id(self, channelid, messageid):
return await self.bot.get_message(self._get_channel_from_id(channelid), messageid) return await self.bot.get_message(self._get_channel_from_id(channelid), messageid)
@ -482,25 +469,25 @@ class Fight:
def _get_message_from_id_recent(self, messageid): def _get_message_from_id_recent(self, messageid):
return discord.utils.get(self.bot.messages, id=messageid) return discord.utils.get(self.bot.messages, id=messageid)
def _get_channel_from_id(self, serverid, channelid): def _get_channel_from_id(self, guildid, channelid):
server = self._get_server_from_id(serverid) guild = self._get_guild_from_id(guildid)
return discord.utils.get(server.channels, id=channelid) return discord.utils.get(guild.channels, id=channelid)
def _get_user_from_id(self, serverid, userid): def _get_user_from_id(self, guildid, userid):
server = self._get_server_from_id(serverid) guild = self._get_guild_from_id(guildid)
return discord.utils.get(server.members, id=userid) return discord.utils.get(guild.members, id=userid)
def _get_server_from_id(self, serverid): def _get_guild_from_id(self, guildid):
return discord.utils.get(self.bot.servers, id=serverid) return discord.utils.get(self.bot.guilds, id=guildid)
def _getfight(self, serverid, tID): def _getfight(self, guildid, tID):
return self.the_data[serverid]["TOURNEYS"][tID] return self.the_data[guildid]["TOURNEYS"][tID]
def _getcurrentfight(self, serverid): def _getcurrentfight(self, guildid):
if not self._activefight(serverid): if not self._activefight(guildid):
return None return None
return self._getfight(serverid, self._activefight(serverid)) return self._getfight(guildid, self._activefight(guildid))
# *********** References to "TYPEDATA" must be done per tournament mode (Below this line) ******* # *********** References to "TYPEDATA" must be done per tournament mode (Below this line) *******
@ -515,21 +502,21 @@ class Fight:
await self.bot.say("Elim update todo") await self.bot.say("Elim update todo")
# **********************Round-Robin********************************** # **********************Round-Robin**********************************
def _rr_parseuser(self, serverid, tID, userid): def _rr_parseuser(self, guildid, tID, userid):
theT = self._getfight(serverid, tID) theT = self._getfight(guildid, tID)
matches = theT["TYPEDATA"]["MATCHES"] matches = theT["TYPEDATA"]["MATCHES"]
schedule = theT["TYPEDATA"]["SCHEDULE"] schedule = theT["TYPEDATA"]["SCHEDULE"]
for round in schedule: for round in schedule:
for mID in round: for mID in round:
teamnum = self._rr_matchperms(serverid, tID, userid, mID) teamnum = self._rr_matchperms(guildid, tID, userid, mID)
if teamnum and not self._rr_matchover(serverid, tID, mID): # User is in this match, check if it's done yet if teamnum and not self._rr_matchover(guildid, tID, mID): # User is in this match, check if it's done yet
return mID return mID
return False # All matches done or not in tourney return False # All matches done or not in tourney
def _rr_matchover(self, serverid, tID, mID): def _rr_matchover(self, guildid, tID, mID):
theT = self._getfight(serverid, tID) theT = self._getfight(guildid, tID)
match = theT["TYPEDATA"]["MATCHES"][mID] match = theT["TYPEDATA"]["MATCHES"][mID]
if (match["SCORE1"] == math.ceil(theT["RULES"]["BESTOF"]/2) or if (match["SCORE1"] == math.ceil(theT["RULES"]["BESTOF"]/2) or
@ -538,18 +525,18 @@ class Fight:
return True return True
return False return False
def _rr_roundover(self, serverid, tID): def _rr_roundover(self, guildid, tID):
currFight = self._getfight(serverid, tID) currFight = self._getfight(guildid, tID)
currRound = currFight["TYPEDATA"]["SCHEDULE"][currFight["TYPEDATA"]["ROUND"]] currRound = currFight["TYPEDATA"]["SCHEDULE"][currFight["TYPEDATA"]["ROUND"]]
for mID in currRound: for mID in currRound:
if not self._rr_matchover(serverid, tID, mID): if not self._rr_matchover(guildid, tID, mID):
return False return False
return True return True
def _rr_matchperms(self, serverid, tID, userid, mID): def _rr_matchperms(self, guildid, tID, userid, mID):
# if self._get_user_from_id(serverid, userid) # Do an if-admin at start # if self._get_user_from_id(guildid, userid) # Do an if-admin at start
theT = self._getfight(serverid, tID) theT = self._getfight(guildid, tID)
if userid in theT["TYPEDATA"]["MATCHES"][mID]["TEAM1"]: if userid in theT["TYPEDATA"]["MATCHES"][mID]["TEAM1"]:
return 1 return 1
@ -558,9 +545,9 @@ class Fight:
return False return False
def _rr_setup(self, serverid, tID): def _rr_setup(self, guildid, tID):
theT = self._getfight(serverid, tID) theT = self._getfight(guildid, tID)
theD = theT["TYPEDATA"] theD = theT["TYPEDATA"]
get_schedule = self._rr_schedule(theT["PLAYERS"]) get_schedule = self._rr_schedule(theT["PLAYERS"])
@ -571,14 +558,14 @@ class Fight:
self.save_data() self.save_data()
async def _rr_printround(self, serverid, tID, rID): async def _rr_printround(self, guildid, tID, rID):
theT = self._getfight(serverid, tID) theT = self._getfight(guildid, tID)
theD = theT["TYPEDATA"] theD = theT["TYPEDATA"]
# rID starts at 0, so print +1. Never used for computation, so doesn't matter # rID starts at 0, so print +1. Never used for computation, so doesn't matter
if self._serversettings(serverid)["ANNOUNCECHNNL"]: if self._guildsettings(guildid)["ANNOUNCECHNNL"]:
await self.bot.send_message( await self.bot.send_message(
self._get_channel_from_id(serverid, self._serversettings(serverid)["ANNOUNCECHNNL"]), self._get_channel_from_id(guildid, self._guildsettings(guildid)["ANNOUNCECHNNL"]),
"Round "+str(rID+1) "Round "+str(rID+1)
) )
else: else:
@ -586,8 +573,8 @@ class Fight:
for mID in theD["SCHEDULE"][rID]: for mID in theD["SCHEDULE"][rID]:
team1 = self._get_team(serverid, theD["MATCHES"][mID]["TEAM1"]) team1 = self._get_team(guildid, theD["MATCHES"][mID]["TEAM1"])
team2 = self._get_team(serverid, theD["MATCHES"][mID]["TEAM2"]) team2 = self._get_team(guildid, theD["MATCHES"][mID]["TEAM2"])
for i in range(len(team1)): for i in range(len(team1)):
if team1[i]: if team1[i]:
@ -608,36 +595,36 @@ class Fight:
outembed.add_field(name="Team 2", value=mention2, inline=True) outembed.add_field(name="Team 2", value=mention2, inline=True)
outembed.set_footer(text="React your team's score, then your opponents score!") outembed.set_footer(text="React your team's score, then your opponents score!")
if self._serversettings(serverid)["REPORTCHNNL"]: if self._guildsettings(guildid)["REPORTCHNNL"]:
message = await self.bot.send_message( message = await self.bot.send_message(
self._get_channel_from_id(serverid, self._serversettings(serverid)["REPORTCHNNL"]), self._get_channel_from_id(guildid, self._guildsettings(guildid)["REPORTCHNNL"]),
embed=outembed embed=outembed
) )
else: else:
message = await self.bot.say(embed=outembed) message = await self.bot.say(embed=outembed)
self._messagetracker(serverid)[message.id] = {"TID": tID, "MID": mID, "RID": rID} self._messagetracker(guildid)[message.id] = {"TID": tID, "MID": mID, "RID": rID}
self.save_data() self.save_data()
# await self.bot.say(team1 + " vs " + team2 + " || Match ID: " + match) # await self.bot.say(team1 + " vs " + team2 + " || Match ID: " + match)
async def _rr_start(self, serverid, tID): async def _rr_start(self, guildid, tID):
self._rr_setup(serverid, tID) self._rr_setup(guildid, tID)
if self._serversettings(serverid)["ANNOUNCECHNNL"]: if self._guildsettings(guildid)["ANNOUNCECHNNL"]:
await self.bot.send_message( await self.bot.send_message(
self._get_channel_from_id(serverid, self._serversettings(serverid)["ANNOUNCECHNNL"]), self._get_channel_from_id(guildid, self._guildsettings(guildid)["ANNOUNCECHNNL"]),
"**Tournament is Starting**" "**Tournament is Starting**"
) )
else: else:
await self.bot.say("**Tournament is Starting**") await self.bot.say("**Tournament is Starting**")
await self._rr_printround(serverid, tID, 0) await self._rr_printround(guildid, tID, 0)
async def _rr_score(self, serverid, tID, mID, author, t1points, t2points): async def _rr_score(self, guildid, tID, mID, author, t1points, t2points):
theT = self._getfight(serverid, tID) theT = self._getfight(guildid, tID)
theD = theT["TYPEDATA"] theD = theT["TYPEDATA"]
# if t1points and t2points: # if t1points and t2points:
@ -649,7 +636,7 @@ class Fight:
if not t1points: if not t1points:
await self.bot.say("Entering scores for match ID: " + mID + "\n\n") await self.bot.say("Entering scores for match ID: " + mID + "\n\n")
await self.bot.say("How many points did TEAM1 get?") await self.bot.say("How many points did TEAM1 get?")
if self._rr_matchperms(serverid, tID, author.id, mID) == 1: if self._rr_matchperms(guildid, tID, author.id, mID) == 1:
await self.bot.say("*HINT: You are on TEAM1*") await self.bot.say("*HINT: You are on TEAM1*")
answer = await self.bot.wait_for_message(timeout=120, author=author) answer = await self.bot.wait_for_message(timeout=120, author=author)
try: try:
@ -660,7 +647,7 @@ class Fight:
if not t2points: if not t2points:
await self.bot.say("How many points did TEAM2 get?") await self.bot.say("How many points did TEAM2 get?")
if self._rr_matchperms(serverid, tID, author.id, mID) == 2: if self._rr_matchperms(guildid, tID, author.id, mID) == 2:
await self.bot.say("*HINT: You are on TEAM2*") await self.bot.say("*HINT: You are on TEAM2*")
answer = await self.bot.wait_for_message(timeout=120, author=author) answer = await self.bot.wait_for_message(timeout=120, author=author)
try: try:
@ -680,7 +667,7 @@ class Fight:
await self.bot.say("Scores have been saved successfully!") await self.bot.say("Scores have been saved successfully!")
# if self._rr_checkround(serverid, tID) # if self._rr_checkround(guildid, tID)
def _rr_schedule(self, inlist): def _rr_schedule(self, inlist):
""" Create a schedule for the teams in the list and return it""" """ Create a schedule for the teams in the list and return it"""
@ -745,6 +732,52 @@ class Fight:
return outlist return outlist
#**************** Socket attempt ********************
async def _on_react(self, reaction, user):
"""do nothing"""
# if not self.the_data["trackmessage"]:
# return
#
# if user == self.bot.user:
# return # Don't remove bot's own reactions
# message = reaction.message
# emoji = reaction.emoji
#
# if not message.id == self.the_data["trackmessage"]:
# return
#
# if str(emoji) in self.letters:
# letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[self.letters.index(str(emoji))]
# await self._guessletter(letter, message.channel)
#
#
# if str(emoji) in self.navigate:
# if str(emoji) == self.navigate[0]:
# await self._reactmessage_am(message)
#
# if str(emoji) == self.navigate[-1]:
# await self._reactmessage_nz(message)
async def on_socket_response(self, obj):
if obj["t"] != "MESSAGE_REACTION_ADD":
return
if "emoji" not in obj["d"]: # This reaction is in the messages deque, use other listener
return
#if message_id not in guildid for
#for guildid in self.the_data:
# if not self._messagetracker(guildid)
message_id = obj["d"]["message_id"]
emoji = obj["d"]["emoji"]["name"]
user_id = obj["d"]["user_id"]
def check_folders(): def check_folders():
if not os.path.exists("data/Fox-Cogs"): if not os.path.exists("data/Fox-Cogs"):
print("Creating data/Fox-Cogs folder...") print("Creating data/Fox-Cogs folder...")
@ -763,4 +796,6 @@ def check_files():
def setup(bot): def setup(bot):
check_folders() check_folders()
check_files() check_files()
bot.add_cog(Fight(bot)) n = Fight(bot)
bot.add_cog(n)
bot.add_listener(n._on_react, "on_reaction_add")

Loading…
Cancel
Save