added leaguerename, to rename divisions and subleagues; NO SUPPORT FOR RENAMING LEAGUES

This commit is contained in:
Sakimori 2021-02-11 19:52:43 -05:00
parent f0d589fecd
commit 93f43ba88f

View file

@ -1169,6 +1169,69 @@ class LeagueSwapTeamCommand(Command):
leagues.save_league_as_new(league)
await msg.channel.send(embed=league.standings_embed())
await msg.channel.send("Paperwork signed, stamped, copied, and faxed up to the goddess. Xie's pretty quick with this stuff.")
else:
await msg.channel.send("That league isn't yours, chief.")
else:
await msg.channel.send("We can't find that league.")
class LeagueRenameCommand(Command):
name = "leaguerename"
template = "m;leaguerename [league name]\n[old subleague/division name]\n[new subleague/division name]"
description = "Changes the name of an existing subleague or division. Can only be executed by a league owner, and only before the start of a new season."
async def execute(self, msg, command):
league_name = command.split("\n")[0].strip()
if league_exists(league_name):
league = leagues.load_league_file(league_name)
if league.day != 1:
await msg.channel.send("That league hasn't finished its current season yet, chief. Either reset it, or be patient.")
return
if (league.owner is not None and msg.author.id in league.owner) or (league.owner is not None and msg.author.id in config()["owners"]):
try:
old_name = command.split("\n")[1].strip()
new_name = command.split("\n")[2].strip()
except IndexError:
await msg.channel.send("Three lines, boss. Make sure you give us the old name, then the new name, on their own lines.")
return
if old_name == new_name:
await msg.channel.send("Quit being cheeky. They have to be different names, clearly.")
found = False
for subleague in league.league.keys():
if subleague == new_name:
found = True
break
for division in league.league[subleague]:
if division == new_name:
found = True
break
if found:
await msg.channel.send(f"{new_name} is already present in that league, chief. They have to be different.")
found = False
for subleague in league.league.keys():
if subleague == old_name:
league.league[new_name] = league.league.pop(old_name)
found = True
break
for division in league.league[subleague]:
if division == old_name:
league.league[subleague][new_name] = league.league[subleague].pop(old_name)
found = True
break
if not found:
await msg.channel.send(f"We couldn't find {old_name} anywhere in that league, boss.")
return
leagues.save_league_as_new(league)
await msg.channel.send(embed=league.standings_embed())
await msg.channel.send("Paperwork signed, stamped, copied, and faxed up to the goddess. Xie's pretty quick with this stuff.")
else:
await msg.channel.send("That league isn't yours, chief.")
else:
await msg.channel.send("We can't find that league.")
commands = [
IntroduceCommand(),
@ -1204,6 +1267,7 @@ commands = [
LeagueTeamScheduleCommand(),
LeagueRegenerateScheduleCommand(),
LeagueSwapTeamCommand(),
LeagueRenameCommand(),
LeagueForceStopCommand(),
CreditCommand(),
RomanCommand(),