diff --git a/discord_emu.py b/discord_emu.py
new file mode 100644
index 0000000..10bb98b
--- /dev/null
+++ b/discord_emu.py
@@ -0,0 +1,18 @@
+class User():
+ id = 0
+ name = "IBM 80"
+
+class Channel():
+
+ async def send(obj, text=None, embed=None):
+ if text is not None:
+ print(text)
+ if embed is not None:
+ print(embed)
+
+class Message():
+ author = User()
+ channel = Channel()
+
+class Client():
+ pass
\ No newline at end of file
diff --git a/leagues.py b/leagues.py
index dbb9fc0..0fe1438 100644
--- a/leagues.py
+++ b/leagues.py
@@ -344,12 +344,13 @@ class league_structure(object):
return int(list(self.schedule.keys())[-1]) * self.series_length
def standings_embed(self):
- this_embed = Embed(color=Color.purple(), title=f"{self.name} Season {self.season}")
+ this_embed = f"{self.name} Season {self.season}\n" #Embed(color=Color.purple(), title=f"{self.name} Season {self.season}")
standings = {}
for team_name, wins, losses, run_diff in league_db.get_standings(self.name):
standings[team_name] = {"wins" : wins, "losses" : losses, "run_diff" : run_diff}
for subleague in iter(self.league.keys()):
- this_embed.add_field(name="Conference:", value=f"**{subleague}**", inline = False)
+ this_embed += f"Conference: **{subleague}**"
+ #this_embed.add_field(name="Conference:", value=f"**{subleague}**", inline = False)
for division in iter(self.league[subleague].keys()):
teams = self.division_standings(self.league[subleague][division], standings)
@@ -366,9 +367,10 @@ class league_structure(object):
else:
teams_string += f"**{this_team[0].name}\n**{this_team[1]} - {this_team[2]} WR: - GB: {this_team[4]}\n\n"
- this_embed.add_field(name=f"{division} Division:", value=teams_string, inline = False)
+ this_embed += f"\n{division} Division:" + "\n " + teams_string
+ #this_embed.add_field(name=f"{division} Division:", value=teams_string, inline = False)
- this_embed.set_footer(text=f"Standings as of day {self.day-1} / {self.season_length()}")
+ #this_embed.set_footer(text=f"Standings as of day {self.day-1} / {self.season_length()}")
return this_embed
def standings_embed_div(self, division, div_name):
diff --git a/shell.py b/shell.py
new file mode 100644
index 0000000..ecad011
--- /dev/null
+++ b/shell.py
@@ -0,0 +1,23 @@
+import the_prestige, asyncio
+from discord_emu import *
+
+while True:
+ first = input("Command: ")
+ command = []
+ while first != "":
+ command.append(first)
+ first = input(": ")
+
+ command_string = ""
+ for line in command:
+ command_string += line + "\n"
+ command_string = command_string[:-1]
+ try:
+ comm = next(c for c in the_prestige.commands if command_string.split(" ",1)[0].split("\n",1)[0].lower() == c.name)
+
+ asyncio.run(comm.execute(Message(), command_string[len(comm.name):], []))
+
+ except the_prestige.CommandError as ce:
+ print(str(ce))
+ except:
+ pass
\ No newline at end of file
diff --git a/the-prestige.pyproj b/the-prestige.pyproj
index 21abac0..001a2ea 100644
--- a/the-prestige.pyproj
+++ b/the-prestige.pyproj
@@ -4,7 +4,7 @@
2.0
2738449b-4b76-4ed0-aa18-3494aaa9e184
.
- the_prestige.py
+ shell.py
.
@@ -33,6 +33,9 @@
Code
+
+ Code
+
Code
@@ -53,6 +56,9 @@
Code
+
+ Code
+
diff --git a/the_prestige.py b/the_prestige.py
index eabad4e..884c591 100644
--- a/the_prestige.py
+++ b/the_prestige.py
@@ -1,4 +1,5 @@
-import discord, json, math, os, roman, games, asyncio, random, main_controller, threading, time, urllib, leagues, datetime, gametext, real_players, archetypes
+import json, math, os, roman, games, asyncio, random, main_controller, threading, time, urllib, leagues, datetime, gametext, real_players, archetypes
+import discord_emu as discord
import database as db
import onomancer as ono
from league_storage import league_exists, season_save, season_restart, get_mods, get_team_mods, set_mods
@@ -1715,70 +1716,70 @@ def config():
with open(config_filename) as config_file:
return json.load(config_file)
-@client.event
-async def on_ready():
- global watching
- db.initialcheck()
- print(f"logged in as {client.user} with token {config()['token']} to {len(client.guilds)} servers")
- if not watching:
- watching = True
- watch_task = asyncio.create_task(game_watcher())
- await watch_task
+#@client.event
+#async def on_ready():
+# global watching
+# db.initialcheck()
+# print(f"logged in as {client.user} with token {config()['token']} to {len(client.guilds)} servers")
+# if not watching:
+# watching = True
+# watch_task = asyncio.create_task(game_watcher())
+# await watch_task
-@client.event
-async def on_reaction_add(reaction, user):
- if reaction.message in setupmessages.keys():
- game = setupmessages[reaction.message]
- try:
- if str(reaction.emoji) == "🔼" and not user == client.user:
- new_player = games.player(ono.get_stats(db.get_user_player(user)["name"]))
- game.teams["away"].add_lineup(new_player)
- await reaction.message.channel.send(f"{new_player} {new_player.star_string('batting_stars')} takes spot #{len(game.teams['away'].lineup)} on the away lineup.")
- elif str(reaction.emoji) == "🔽" and not user == client.user:
- new_player = games.player(ono.get_stats(db.get_user_player(user)["name"]))
- game.teams["home"].add_lineup(new_player)
- await reaction.message.channel.send(f"{new_player} {new_player.star_string('batting_stars')} takes spot #{len(game.teams['home'].lineup)} on the home lineup.")
- except:
- await reaction.message.channel.send(f"{user.display_name}, we can't find your idol. Maybe you don't have one yet?")
+#@client.event
+#async def on_reaction_add(reaction, user):
+# if reaction.message in setupmessages.keys():
+# game = setupmessages[reaction.message]
+# try:
+# if str(reaction.emoji) == "🔼" and not user == client.user:
+# new_player = games.player(ono.get_stats(db.get_user_player(user)["name"]))
+# game.teams["away"].add_lineup(new_player)
+# await reaction.message.channel.send(f"{new_player} {new_player.star_string('batting_stars')} takes spot #{len(game.teams['away'].lineup)} on the away lineup.")
+# elif str(reaction.emoji) == "🔽" and not user == client.user:
+# new_player = games.player(ono.get_stats(db.get_user_player(user)["name"]))
+# game.teams["home"].add_lineup(new_player)
+# await reaction.message.channel.send(f"{new_player} {new_player.star_string('batting_stars')} takes spot #{len(game.teams['home'].lineup)} on the home lineup.")
+# except:
+# await reaction.message.channel.send(f"{user.display_name}, we can't find your idol. Maybe you don't have one yet?")
-@client.event
-async def on_message(msg):
+#@client.event
+#async def on_message(msg):
- if msg.author == client.user or not msg.webhook_id is None:
- return
+# if msg.author == client.user or not msg.webhook_id is None:
+# return
- command_b = False
- for prefix in config()["prefix"]:
- if msg.content.startswith(prefix):
- command_b = True
- command = msg.content.split(prefix, 1)[1]
- if not command_b:
- return
+# command_b = False
+# for prefix in config()["prefix"]:
+# if msg.content.startswith(prefix):
+# command_b = True
+# command = msg.content.split(prefix, 1)[1]
+# if not command_b:
+# return
- if msg.channel.id == config()["soulscream channel id"]:
- await msg.channel.send(ono.get_scream(msg.author.display_name))
- else:
- try:
- comm = next(c for c in commands if command.split(" ",1)[0].split("\n",1)[0].lower() == c.name)
- send_text = command[len(comm.name):]
- first_line = send_text.split("\n")[0]
- flags = []
- if "-" in first_line:
- check = first_line.split("-")[1:]
- for flag in [_ for _ in check if _ != ""]:
- try:
- flags.append((flag.split(" ")[0][0].lower(), flag.split(" ",1)[1].strip()))
- except IndexError:
- flags.append((flag.split(" ")[0][0].lower(), None))
+# if msg.channel.id == config()["soulscream channel id"]:
+# await msg.channel.send(ono.get_scream(msg.author.display_name))
+# else:
+# try:
+# comm = next(c for c in commands if command.split(" ",1)[0].split("\n",1)[0].lower() == c.name)
+# send_text = command[len(comm.name):]
+# first_line = send_text.split("\n")[0]
+# flags = []
+# if "-" in first_line:
+# check = first_line.split("-")[1:]
+# for flag in [_ for _ in check if _ != ""]:
+# try:
+# flags.append((flag.split(" ")[0][0].lower(), flag.split(" ",1)[1].strip()))
+# except IndexError:
+# flags.append((flag.split(" ")[0][0].lower(), None))
- if comm.isauthorized(msg.author): #only execute command if authorized
- await comm.execute(msg, send_text, flags)
+# if comm.isauthorized(msg.author): #only execute command if authorized
+# await comm.execute(msg, send_text, flags)
- except StopIteration:
- await msg.channel.send("Can't find that command, boss; try checking the list with `m;help`.")
- except CommandError as ce:
- await msg.channel.send(str(ce))
+# except StopIteration:
+# await msg.channel.send("Can't find that command, boss; try checking the list with `m;help`.")
+# except CommandError as ce:
+# await msg.channel.send(str(ce))
async def setup_game(channel, owner, newgame):
@@ -2226,7 +2227,7 @@ def build_draft_embed(names, title="The Draft", footer="You must choose"):
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)
lineup_string = ""
for player in team.lineup:
lineup_string += f"{player.name} {player.star_string('batting_stars')}\n"
@@ -2234,15 +2235,15 @@ def build_team_embed(team):
rotation_string = ""
for player in team.rotation:
rotation_string += f"{player.name} {player.star_string('pitching_stars')}\n"
- embed.add_field(name="Rotation:", value=rotation_string, inline = False)
- embed.add_field(name="Lineup:", value=lineup_string, inline = False)
- embed.add_field(name="█a██:", value=str(abs(hash(team.name)) % (10 ** 4)))
- embed.set_footer(text=team.slogan)
- return embed
+ #embed.add_field(name="Rotation:", value=rotation_string, inline = False)
+ #embed.add_field(name="Lineup:", value=lineup_string, inline = False)
+ #embed.add_field(name="█a██:", value=str(abs(hash(team.name)) % (10 ** 4)))
+ #embed.set_footer(text=team.slogan)
+ return lineup_string + "\n" + rotation_string
def build_star_embed(player_json):
starkeys = {"batting_stars" : "Batting", "pitching_stars" : "Pitching", "baserunning_stars" : "Baserunning", "defense_stars" : "Defense"}
- embed = discord.Embed(color=discord.Color.purple(), title=player_json["name"])
+ #embed = discord.Embed(color=discord.Color.purple(), title=player_json["name"])
if player_json["name"] == "Tim Locastro": #the tim easter egg
for key in ["batting_stars", "pitching_stars", "baserunning_stars", "defense_stars"]:
@@ -2253,18 +2254,21 @@ def build_star_embed(player_json):
stars = half_star + 0.5
player_json[key] = stars
+ text = player_json["name"] + "\n"
+
for key in starkeys.keys():
embedstring = ""
starstring = str(player_json[key])
starnum = int(starstring[0])
addhalf = ".5" in starstring
- embedstring += "⭐" * starnum
+ embedstring += "H" * starnum
if addhalf:
- embedstring += "✨"
+ embedstring += "n"
elif starnum == 0: # why check addhalf twice, amirite
- embedstring += "⚪️"
- embed.add_field(name=starkeys[key], value=embedstring, inline=False)
- return embed
+ embedstring += "O"
+ text += starkeys[key] + "\n " + embedstring + "\n"
+ #embed.add_field(name=starkeys[key], value=embedstring, inline=False)
+ return text
def team_from_collection(newteam_json):
# verify collection against our own restrictions
@@ -2785,4 +2789,4 @@ async def league_subscriber_update(league, start_channel, message):
else:
await channel.send(message)
-client.run(config()["token"])
\ No newline at end of file
+#client.run(config()["token"])
\ No newline at end of file
diff --git a/weather.py b/weather.py
index f3f4a67..0fcb828 100644
--- a/weather.py
+++ b/weather.py
@@ -635,7 +635,7 @@ class WeatherChains():
magic = [Twilight, ThinnedVeil, MeteorShower, Starlight, Dusk] #weathers involving breaking the fabric of spacetime
sudden = [Tornado, Hurricane, Twilight, Starlight, Midnight, Downpour, Smog] #weathers that always happen and leave over 1-3 games
disaster = [Hurricane, Tornado, Downpour, Blizzard] #storms
- aftermath = [Midnight, Starlight, MeteorShower, SummerMist, LeafEddies, Dusk] #calm epilogues
+ aftermath = [Midnight, Starlight, MeteorShower, SummerMist, Dusk] #calm epilogues
dictionary = {
#Supernova : (magic + sudden + disaster, None), supernova happens leaguewide and shouldn't need a chain, but here just in case