diff --git a/bombsquad_server b/bombsquad_server index 67105b1..633bf89 100644 --- a/bombsquad_server +++ b/bombsquad_server @@ -551,7 +551,7 @@ class ServerManagerApp: print(f'{Clr.RED}Error loading config file:\n{exc}.{Clr.RST}', flush=True) - with open(self._ba_root_path + "/mods/defaults/config.yaml", "r") as infile: + with open(self._ba_root_path + "/mods/defaults/config.toml", "r") as infile: default_file = infile.read() with open(self._config_path, "w") as outfile: outfile.write(default_file) diff --git a/dist/ba_root/mods/defaults/config.toml b/dist/ba_root/mods/defaults/config.toml new file mode 100644 index 0000000..a64cdc3 --- /dev/null +++ b/dist/ba_root/mods/defaults/config.toml @@ -0,0 +1,168 @@ +# To configure your server, create a config.toml file in the same directory +# as the ballisticakit_server script. The config_template.toml file can be +# copied or renamed as a convenient starting point. + +# Uncomment any of these values to override defaults. + +# Name of our server in the public parties list. +party_name = "BombSquad Community Server" + +# If true, your party will show up in the global public party list +# Otherwise it will still be joinable via LAN or connecting by IP +# address. +#party_is_public = true + +# If true, all connecting clients will be authenticated through the +# master server to screen for fake account info. Generally this +# should always be enabled unless you are hosting on a LAN with no +# internet connection. +#authenticate_clients = true + +# IDs of server admins. Server admins are not kickable through the default +# kick vote system and they are able to kick players without a vote. To get +# your account id, enter 'getaccountid' in settings->advanced->enter-code. +admins = ["pb-yOuRAccOuNtIdHErE", "pb-aNdMayBeAnotherHeRE"] + +# Whether the default kick-voting system is enabled. +#enable_default_kick_voting = true + +# To be included in the public server list, your server MUST be +# accessible via an ipv4 address. By default, the master server will +# try to use the address your server contacts it from, but this may +# be an ipv6 address these days so you may need to provide an ipv4 +# address explicitly. +#public_ipv4_address = "123.123.123.123" + +# You can optionally provide an ipv6 address for your server for the +# public server list. Unlike ipv4, a server is not required to have +# an ipv6 address to appear in the list, but is still good to +# provide when available since more and more devices are using ipv6 +# these days. Your server's ipv6 address will be autodetected if +# your server uses ipv6 when communicating with the master server. You +# can pass an empty string here to explicitly disable the ipv6 +# address. +#public_ipv6_address = "123A::A123:23A1:A312:12A3:A213:2A13" + +# UDP port to host on. Change this to work around firewalls or run +# multiple servers on one machine. +# +# 43210 is the default and the only port that will show up in the +# LAN browser tab. +#port = 43210 + +# Max devices in the party. Note that this does *NOT* mean max +# players. Any device in the party can have more than one player on +# it if they have multiple controllers. Also, this number currently +# includes the server so generally make it 1 bigger than you need. +#max_party_size = 6 + +# Max players that can join a session. If present this will override +# the session's preferred max_players. if a value below 0 is given +# player limit will be removed. +#session_max_players_override = 8 + +# Options here are 'ffa' (free-for-all), 'teams' and 'coop' +# (cooperative) This value is ignored if you supply a playlist_code +# (see below). +#session_type = "ffa" + +# Playlist-code for teams or free-for-all mode sessions. +# To host your own custom playlists, use the 'share' functionality in the +# playlist editor in the regular version of the game. +# This will give you a numeric code you can enter here to host that +# playlist. +playlist_code = 12345 + +# Alternately, you can embed playlist data here instead of using +# codes. Make sure to set session_type to the correct type for the +# data here. +#playlist_inline = [] + +# Whether to shuffle the playlist or play its games in designated +# order. +#playlist_shuffle = true + +# If true, keeps team sizes equal by disallowing joining the largest +# team (teams mode only). +#auto_balance_teams = true + +# The campaign used when in co-op session mode. Do +# print(ba.app.campaigns) to see available campaign names. +#coop_campaign = "Easy" + +# The level name within the campaign used in co-op session mode. For +# campaign name FOO, do print(ba.app.campaigns['FOO'].levels) to see +# available level names. +#coop_level = "Onslaught Training" + +# Whether to enable telnet access. +# +# IMPORTANT: This option is no longer available, as it was being +# used for exploits. Live access to the running server is still +# possible through the mgr.cmd() function in the server script. Run +# your server through tools such as 'screen' or 'tmux' and you can +# reconnect to it remotely over a secure ssh connection. +#enable_telnet = false + +# Series length in teams mode (7 == 'best-of-7' series; a team must +# get 4 wins) +teams_series_length = 7 + +# Points to win in free-for-all mode (Points are awarded per game based on +# performance) +ffa_series_length = 24 + +# If you have a custom stats webpage for your server, you can use +# this to provide a convenient in-game link to it in the +# server-browser alongside the server name. +# +# if ${ACCOUNT} is present in the string, it will be replaced by the +# currently-signed-in account's id. To fetch info about an account, +# your back-end server can use the following url: +# https://legacy.ballistica.net/accountquery?id=ACCOUNT_ID_HERE +stats_url = "https://discord.gg/ucyaesh" + +# If present, the server subprocess will attempt to gracefully exit +# after this amount of time. A graceful exit can occur at the end of +# a series or other opportune time. Server-managers set to +# auto-restart (the default) will then spin up a fresh subprocess. +# This mechanism can be useful to clear out any memory leaks or +# other accumulated bad state in the server subprocess. +#clean_exit_minutes = 60 + +# If present, the server subprocess will shut down immediately after +# this amount of time. This can be useful as a fallback for +# clean_exit_time. The server manager will then spin up a fresh +# server subprocess if auto-restart is enabled (the default). +#unclean_exit_minutes = 90 + +# If present, the server subprocess will shut down immediately if +# this amount of time passes with no activity from any players. The +# server manager will then spin up a fresh server subprocess if +# auto-restart is enabled (the default). +#idle_exit_minutes = 20 + +# Should the tutorial be shown at the beginning of games? +#show_tutorial = false + +# Team names (teams mode only). +team_names = ["ladoo", "barfi"] + +# Team colors (teams mode only). +team_colors = [[0.8, 0.0, 0.6], [0, 1, 0.8]] + +# Whether to enable the queue where players can line up before +# entering your server. Disabling this can be used as a workaround +# to deal with queue spamming attacks. +#enable_queue = true + +# Protocol version we host with. Currently the default is 33 which +# still allows older 1.4 game clients to connect. Explicitly setting +# to 35 no longer allows those clients but adds/fixes a few things +# such as making camera shake properly work in net games. +#protocol_version = 35 + +# How many seconds individual players from a given account must wait +# before rejoining the game. This can help suppress exploits +# involving leaving and rejoining or switching teams rapidly. +#player_rejoin_cooldown = 10.0 diff --git a/dist/ba_root/mods/defaults/config.yaml b/dist/ba_root/mods/defaults/config.yaml deleted file mode 100644 index e046d67..0000000 --- a/dist/ba_root/mods/defaults/config.yaml +++ /dev/null @@ -1,134 +0,0 @@ -# To configure your server, create a config.yaml file in the same directory -# as the ballisticacore_server script. The config_template.yaml file can be -# copied or renamed as a convenient starting point. - -# Uncomment any of these values to override defaults. - -# Name of our server in the public parties list. -party_name: "BombSquad Community Server" - -# If true, your party will show up in the global public party list -# Otherwise it will still be joinable via LAN or connecting by IP address. -#party_is_public: true - -# If true, all connecting clients will be authenticated through the master -# server to screen for fake account info. Generally this should always -# be enabled unless you are hosting on a LAN with no internet connection. -authenticate_clients: true - -# IDs of server admins. Server admins are not kickable through the default -# kick vote system and they are able to kick players without a vote. To get -# your account id, enter 'getaccountid' in settings->advanced->enter-code. -admins: -- pb-yOuRAccOuNtIdHErE -- pb-aNdMayBeAnotherHeRE - -# Whether the default kick-voting system is enabled. -enable_default_kick_voting: true - -# UDP port to host on. Change this to work around firewalls or run multiple -# servers on one machine. -# 43210 is the default and the only port that will show up in the LAN -# browser tab. -port: 43210 - -# Max devices in the party. Note that this does *NOT* mean max players. -# Any device in the party can have more than one player on it if they have -# multiple controllers. Also, this number currently includes the server so -# generally make it 1 bigger than you need. Max-players is not currently -# exposed but I'll try to add that soon. -max_party_size: 6 - -# Options here are 'ffa' (free-for-all), 'teams' and 'coop' (cooperative) -# This value is ignored if you supply a playlist_code (see below). -#session_type: ffa - -# Playlist-code for teams or free-for-all mode sessions. -# To host your own custom playlists, use the 'share' functionality in the -# playlist editor in the regular version of the game. -# This will give you a numeric code you can enter here to host that -# playlist. -playlist_code: 12345 - -# Alternately, you can embed playlist data here instead of using codes. -# Make sure to set session_type to the correct type for the data here. -#playlist_inline: [] - -# Whether to shuffle the playlist or play its games in designated order. -#playlist_shuffle: true - -# If true, keeps team sizes equal by disallowing joining the largest team -# (teams mode only). -#auto_balance_teams: true - -# The campaign used when in co-op session mode. -# Do print(ba.app.campaigns) to see available campaign names. -#coop_campaign: Easy - -# The level name within the campaign used in co-op session mode. -# For campaign name FOO, do print(ba.app.campaigns['FOO'].levels) to see -# available level names. -#coop_level: Onslaught Training - -# Whether to enable telnet access. -# IMPORTANT: This option is no longer available, as it was being used -# for exploits. Live access to the running server is still possible through -# the mgr.cmd() function in the server script. Run your server through -# tools such as 'screen' or 'tmux' and you can reconnect to it remotely -# over a secure ssh connection. -#enable_telnet: false - -# Series length in teams mode (7 == 'best-of-7' series; a team must -# get 4 wins) -teams_series_length: 7 - -# Points to win in free-for-all mode (Points are awarded per game based on -# performance) -ffa_series_length: 24 - -# If you have a custom stats webpage for your server, you can use this -# to provide a convenient in-game link to it in the server-browser -# alongside the server name. -# if ${ACCOUNT} is present in the string, it will be replaced by the -# currently-signed-in account's id. To fetch info about an account, -# your back-end server can use the following url: -# http://bombsquadgame.com/accountquery?id=ACCOUNT_ID_HERE -stats_url: https://discord.gg/ucyaesh - -# If present, the server subprocess will attempt to gracefully exit after -# this amount of time. A graceful exit can occur at the end of a series -# or other opportune time. Server-managers set to auto-restart (the -# default) will then spin up a fresh subprocess. This mechanism can be -# useful to clear out any memory leaks or other accumulated bad state -# in the server subprocess. -#clean_exit_minutes: 60 - -# If present, the server subprocess will shut down immediately after this -# amount of time. This can be useful as a fallback for clean_exit_time. -# The server manager will then spin up a fresh server subprocess if -# auto-restart is enabled (the default). -#unclean_exit_minutes: 90 - -# If present, the server subprocess will shut down immediately if this -# amount of time passes with no activity from any players. The server -# manager will then spin up a fresh server subprocess if auto-restart is -# enabled (the default). -#idle_exit_minutes: 20 - -# Should the tutorial be shown at the beginning of games? -#show_tutorial: false - -# Team names (teams mode only). -team_names: -- ladoo -- barfi - -# Team colors (teams mode only). -team_colors: -- [0.8, 0.0, 0.6] -- [0, 1, 0.8] - -# Whether to enable the queue where players can line up before entering -# your server. Disabling this can be used as a workaround to deal with -# queue spamming attacks. -#enable_queue: true diff --git a/dist/ba_root/mods/playersdata/pdata.py b/dist/ba_root/mods/playersdata/pdata.py index 756c87f..213d9f1 100644 --- a/dist/ba_root/mods/playersdata/pdata.py +++ b/dist/ba_root/mods/playersdata/pdata.py @@ -78,19 +78,19 @@ def get_profiles() -> dict: newpath = f'{PLAYERS_DATA_PATH}profiles-{str(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))}.json' shutil.copyfile(PLAYERS_DATA_PATH + "profiles.json", newpath) profiles = {"pb-sdf": {}} - print("resetting profiles") + print("Resetting Profiles.") else: f = open(PLAYERS_DATA_PATH + "profiles.json", "r") profiles = json.load(f) f.close() - print("loading old proiles.json") + print("Loading old profiles.json") CacheData.profiles = profiles except Exception as e: f = open(PLAYERS_DATA_PATH + "profiles.json.backup", "r") profiles = json.load(f) print(e) - print("exception happened , falling back to profiles.json.backup") + print("Exception occurred, falling back to profiles.json.backup") CacheData.profiles = profiles f.close() return profiles @@ -118,7 +118,7 @@ def get_blacklist() -> dict: with open(PLAYERS_DATA_PATH + "blacklist.json", "r") as f: CacheData.blacklist = json.load(f) except: - print('error opening blacklist json') + print('Error opening blacklist.json') return { "ban": { "ids": {}, @@ -461,7 +461,7 @@ def add_player_role(role: str, account_id: str) -> None: commit_roles(roles) else: - print("no role such") + print(f'Role named {role} does not exist.') def remove_player_role(role: str, account_id: str) -> str: diff --git a/dist/ba_root/mods/plugins/character_chooser.py b/dist/ba_root/mods/plugins/character_chooser.py index 976128f..33955e1 100644 --- a/dist/ba_root/mods/plugins/character_chooser.py +++ b/dist/ba_root/mods/plugins/character_chooser.py @@ -346,7 +346,6 @@ def _update_text(self) -> None: self._text_node.text = text -# ba_meta export plugin def enable(): _lobby.Chooser.__init__ = __init__ _lobby.Chooser._set_ready = _set_ready diff --git a/dist/ba_root/mods/port.py b/dist/ba_root/mods/port.py index dc71a46..83e0f4e 100644 --- a/dist/ba_root/mods/port.py +++ b/dist/ba_root/mods/port.py @@ -33,7 +33,7 @@ def port(file_path): # stay local or if it'll also be needed to transmitted to the clients. ## For local: - if False: + if bool(False): content = content.replace("_babase.screenmessage", "bui.screenmessage") content = content.replace("babase.screenmessage", "bui.screenmessage") content = content.replace("babase.getsound", "bui.getsound")