diff --git a/.we_are_good b/.we_are_good new file mode 100644 index 0000000..e69de29 diff --git a/bombsquad_server b/bombsquad_server index 939b429..15a948f 100755 --- a/bombsquad_server +++ b/bombsquad_server @@ -18,7 +18,7 @@ def migrate_to_aarch(): games = ["CanonFight.so","DuelElimination.so","FlappyBird.so","LaserTracer.so","MonkeyClimb.so","OneNightNoStand.so","RealSoccer.so", "SquidRace.so","StumbleRace.so","SubwayRun.so","UFOAttackGame.so"] features = ["StumbledScoreScreen.so"] - tools = ["corelib.so"] + tools = ["corelib.so","mongo.so","handle.so","pinfo.so"] root = os.path.realpath(".")+"/dist/ba_root" for map in maps: shutil.copy(root+"/mods/aarch64/"+map,root+'/mods/maps/'+map) diff --git a/config.yaml b/config.yaml index 29a933b..754c2f0 100644 --- a/config.yaml +++ b/config.yaml @@ -5,11 +5,11 @@ # Uncomment any of these values to override defaults. # Name of our server in the public parties list. -party_name: "VORTEX AND HONOR BANG xD" +party_name: "|-VORTEX BANG-|" # 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: false +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 @@ -29,7 +29,7 @@ enable_default_kick_voting: true # servers on one machine. # 43210 is the default and the only port that will show up in the LAN # browser tab. -port: 43222 +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 diff --git a/dist/ba_data/python-site-packages/__pycache__/filelock.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/__pycache__/filelock.cpython-310.opt-1.pyc index 027071a..1650134 100644 Binary files a/dist/ba_data/python-site-packages/__pycache__/filelock.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/__pycache__/filelock.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/__init__.cpython-310.opt-1.pyc index af9dafe..72e5542 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/_compat.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/_compat.cpython-310.opt-1.pyc index d89b94c..aa834df 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/_compat.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/_compat.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/_sha3.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/_sha3.cpython-310.opt-1.pyc index 76c8c24..fe743a4 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/_sha3.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/_sha3.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/_version.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/_version.cpython-310.opt-1.pyc index 0f8df5d..cf8d1ac 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/_version.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/_version.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/curves.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/curves.cpython-310.opt-1.pyc index c3e295a..12941e6 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/curves.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/curves.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/der.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/der.cpython-310.opt-1.pyc index 03eed35..ea830bd 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/der.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/der.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/ecdh.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/ecdh.cpython-310.opt-1.pyc index 16aa624..a197c11 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/ecdh.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/ecdh.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/ecdsa.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/ecdsa.cpython-310.opt-1.pyc index 87e5619..f99fd08 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/ecdsa.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/ecdsa.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/eddsa.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/eddsa.cpython-310.opt-1.pyc index 3da572f..c0525b6 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/eddsa.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/eddsa.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/ellipticcurve.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/ellipticcurve.cpython-310.opt-1.pyc index 3cbe2bb..a8ec489 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/ellipticcurve.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/ellipticcurve.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/errors.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/errors.cpython-310.opt-1.pyc index 35d2820..f7f60b4 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/errors.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/errors.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/keys.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/keys.cpython-310.opt-1.pyc index 2d69ec7..6e29a30 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/keys.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/keys.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/numbertheory.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/numbertheory.cpython-310.opt-1.pyc index a28ebfd..e8ca5de 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/numbertheory.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/numbertheory.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/rfc6979.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/rfc6979.cpython-310.opt-1.pyc index 656bda9..74f52ad 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/rfc6979.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/rfc6979.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/ecdsa/__pycache__/util.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/ecdsa/__pycache__/util.cpython-310.opt-1.pyc index ca2fa77..6aa0502 100644 Binary files a/dist/ba_data/python-site-packages/ecdsa/__pycache__/util.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/ecdsa/__pycache__/util.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/http_ece/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/http_ece/__pycache__/__init__.cpython-310.opt-1.pyc index e286cc9..9e12ba0 100644 Binary files a/dist/ba_data/python-site-packages/http_ece/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/http_ece/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/py_vapid/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/py_vapid/__pycache__/__init__.cpython-310.opt-1.pyc index 492ee6a..ee5b437 100644 Binary files a/dist/ba_data/python-site-packages/py_vapid/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/py_vapid/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/py_vapid/__pycache__/jwt.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/py_vapid/__pycache__/jwt.cpython-310.opt-1.pyc index 063c039..0970d52 100644 Binary files a/dist/ba_data/python-site-packages/py_vapid/__pycache__/jwt.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/py_vapid/__pycache__/jwt.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/py_vapid/__pycache__/utils.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/py_vapid/__pycache__/utils.cpython-310.opt-1.pyc index bb2a494..629e506 100644 Binary files a/dist/ba_data/python-site-packages/py_vapid/__pycache__/utils.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/py_vapid/__pycache__/utils.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python-site-packages/pywebpush/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python-site-packages/pywebpush/__pycache__/__init__.cpython-310.opt-1.pyc index 309e2ae..c278661 100644 Binary files a/dist/ba_data/python-site-packages/pywebpush/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python-site-packages/pywebpush/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/__init__.cpython-310.opt-1.pyc index 0270edc..2d652af 100644 Binary files a/dist/ba_data/python/ba/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_accountv1.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_accountv1.cpython-310.opt-1.pyc index d77ee9f..0947661 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_accountv1.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_accountv1.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_accountv2.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_accountv2.cpython-310.opt-1.pyc index 92361c9..45cb4d2 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_accountv2.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_accountv2.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_achievement.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_achievement.cpython-310.opt-1.pyc index 585f3a2..0cfc2c9 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_achievement.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_achievement.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_activity.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_activity.cpython-310.opt-1.pyc index 6eb26a1..b8cc620 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_activity.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_activity.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_activitytypes.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_activitytypes.cpython-310.opt-1.pyc index 9d2fce9..62087e2 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_activitytypes.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_activitytypes.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_actor.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_actor.cpython-310.opt-1.pyc index a3a9387..89e3621 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_actor.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_actor.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_ads.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_ads.cpython-310.opt-1.pyc index b7b725e..3d7ab62 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_ads.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_ads.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_analytics.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_analytics.cpython-310.opt-1.pyc new file mode 100644 index 0000000..f85bdd3 Binary files /dev/null and b/dist/ba_data/python/ba/__pycache__/_analytics.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_app.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_app.cpython-310.opt-1.pyc index 45c7595..e13920f 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_app.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_app.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_appcomponent.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_appcomponent.cpython-310.opt-1.pyc index 4d98be8..cb56032 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_appcomponent.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_appcomponent.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_appconfig.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_appconfig.cpython-310.opt-1.pyc index fb648b9..74dd7f0 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_appconfig.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_appconfig.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_appdelegate.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_appdelegate.cpython-310.opt-1.pyc index 0d0e694..92fb690 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_appdelegate.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_appdelegate.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_apputils.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_apputils.cpython-310.opt-1.pyc index f4d7c70..7ce7db6 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_apputils.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_apputils.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_asyncio.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_asyncio.cpython-310.opt-1.pyc index 3a56b95..4df22bc 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_asyncio.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_asyncio.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_benchmark.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_benchmark.cpython-310.opt-1.pyc index 44f5217..426257e 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_benchmark.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_benchmark.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_bootstrap.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_bootstrap.cpython-310.opt-1.pyc index 08e3f87..a67d38d 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_bootstrap.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_bootstrap.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_campaign.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_campaign.cpython-310.opt-1.pyc index be45689..cf1e266 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_campaign.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_campaign.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_cloud.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_cloud.cpython-310.opt-1.pyc index 0a59ad8..53a3cb8 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_cloud.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_cloud.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_collision.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_collision.cpython-310.opt-1.pyc index d5c2c6f..6bf7700 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_collision.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_collision.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_coopgame.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_coopgame.cpython-310.opt-1.pyc index 8c0dd66..0109882 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_coopgame.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_coopgame.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_coopsession.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_coopsession.cpython-310.opt-1.pyc index 7797f31..f79a885 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_coopsession.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_coopsession.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_dependency.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_dependency.cpython-310.opt-1.pyc index ca81b10..28f32ef 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_dependency.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_dependency.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_dualteamsession.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_dualteamsession.cpython-310.opt-1.pyc index 02377bc..66eae07 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_dualteamsession.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_dualteamsession.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_enums.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_enums.cpython-310.opt-1.pyc index 249b02f..6e64c61 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_enums.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_enums.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_error.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_error.cpython-310.opt-1.pyc index 491c3f6..73d165e 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_error.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_error.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_freeforallsession.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_freeforallsession.cpython-310.opt-1.pyc index 50e821a..45df5f0 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_freeforallsession.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_freeforallsession.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_gameactivity.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_gameactivity.cpython-310.opt-1.pyc index ecd3d01..30ae86b 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_gameactivity.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_gameactivity.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_gameresults.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_gameresults.cpython-310.opt-1.pyc index 9ece160..82f19bb 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_gameresults.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_gameresults.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_gameutils.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_gameutils.cpython-310.opt-1.pyc index 2f1088a..da0f3a0 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_gameutils.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_gameutils.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_general.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_general.cpython-310.opt-1.pyc index 39e17e3..51e1ca2 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_general.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_general.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_hooks.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_hooks.cpython-310.opt-1.pyc index febb9df..222aa56 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_hooks.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_hooks.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_input.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_input.cpython-310.opt-1.pyc index 845d254..bd6aea2 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_input.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_input.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_internal.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_internal.cpython-310.opt-1.pyc index c91abdc..1ca3beb 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_internal.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_internal.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_keyboard.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_keyboard.cpython-310.opt-1.pyc index a8d7e76..7ce9cd5 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_keyboard.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_keyboard.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_language.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_language.cpython-310.opt-1.pyc index 9b0236c..c35fa6f 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_language.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_language.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_level.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_level.cpython-310.opt-1.pyc index bfd7eb1..1702b8a 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_level.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_level.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_lobby.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_lobby.cpython-310.opt-1.pyc index 297f517..71c0469 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_lobby.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_lobby.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_login.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_login.cpython-310.opt-1.pyc index 81cd485..ced21a9 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_login.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_login.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_map.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_map.cpython-310.opt-1.pyc index a466dda..c73b8ec 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_map.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_map.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_math.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_math.cpython-310.opt-1.pyc index fea2831..8f99e34 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_math.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_math.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_messages.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_messages.cpython-310.opt-1.pyc index 13646b4..de4aecf 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_messages.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_messages.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_meta.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_meta.cpython-310.opt-1.pyc index b01fc7f..b338aa3 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_meta.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_meta.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_multiteamsession.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_multiteamsession.cpython-310.opt-1.pyc index 94bbae7..78e5e16 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_multiteamsession.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_multiteamsession.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_music.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_music.cpython-310.opt-1.pyc index 1c0a52b..98ae358 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_music.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_music.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_net.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_net.cpython-310.opt-1.pyc index b6cd414..459c05d 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_net.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_net.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_nodeactor.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_nodeactor.cpython-310.opt-1.pyc index 75c2c4e..a2c1f5a 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_nodeactor.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_nodeactor.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_player.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_player.cpython-310.opt-1.pyc index 09064eb..84fbf12 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_player.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_player.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_playlist.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_playlist.cpython-310.opt-1.pyc index 5f16345..446af67 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_playlist.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_playlist.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_plugin.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_plugin.cpython-310.opt-1.pyc index e829c86..6eb9c1c 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_plugin.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_plugin.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_powerup.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_powerup.cpython-310.opt-1.pyc index 691651d..6cfb441 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_powerup.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_powerup.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_profile.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_profile.cpython-310.opt-1.pyc index 7d05ff8..027cb5b 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_profile.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_profile.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_score.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_score.cpython-310.opt-1.pyc index ec0aec7..02ae177 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_score.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_score.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_servermode.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_servermode.cpython-310.opt-1.pyc index df3a7b8..873ee7d 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_servermode.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_servermode.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_session.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_session.cpython-310.opt-1.pyc index a2d215b..8fb6f9a 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_session.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_session.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_settings.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_settings.cpython-310.opt-1.pyc index b594942..d749f1f 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_settings.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_settings.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_stats.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_stats.cpython-310.opt-1.pyc index 5685b17..068704b 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_stats.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_stats.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_store.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_store.cpython-310.opt-1.pyc index e0a171d..97f32d6 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_store.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_store.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_team.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_team.cpython-310.opt-1.pyc index 446abcf..175256e 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_team.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_team.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_teamgame.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_teamgame.cpython-310.opt-1.pyc index 1dbe96b..5601a2c 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_teamgame.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_teamgame.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_tips.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_tips.cpython-310.opt-1.pyc index a5a0a43..964f38b 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_tips.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_tips.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_tournament.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_tournament.cpython-310.opt-1.pyc index 311e8f4..fb8c2d0 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_tournament.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_tournament.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_ui.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_ui.cpython-310.opt-1.pyc index c97aebc..5aea258 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_ui.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_ui.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/_workspace.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/_workspace.cpython-310.opt-1.pyc index ee25699..3b0972e 100644 Binary files a/dist/ba_data/python/ba/__pycache__/_workspace.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/_workspace.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/__pycache__/internal.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/__pycache__/internal.cpython-310.opt-1.pyc index 073fae3..fec74ce 100644 Binary files a/dist/ba_data/python/ba/__pycache__/internal.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/__pycache__/internal.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/_generated/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/_generated/__pycache__/__init__.cpython-310.opt-1.pyc index 67331ad..0ee48f1 100644 Binary files a/dist/ba_data/python/ba/_generated/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/_generated/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/_generated/__pycache__/enums.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/_generated/__pycache__/enums.cpython-310.opt-1.pyc index 8a7b699..7a328ac 100644 Binary files a/dist/ba_data/python/ba/_generated/__pycache__/enums.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/_generated/__pycache__/enums.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/ba/_stats.py b/dist/ba_data/python/ba/_stats.py index 0f68beb..51e4d9a 100644 --- a/dist/ba_data/python/ba/_stats.py +++ b/dist/ba_data/python/ba/_stats.py @@ -466,7 +466,8 @@ class Stats: ) -> None: """Should be called when a player is killed.""" from ba._language import Lstr - + from chatHandle.chatFilter.betrayerWarn import betrayer + betrayer(player, killer) name = player.getname() prec = self._player_records[name] prec.streak = 0 diff --git a/dist/ba_data/python/ba/ui/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/ba/ui/__pycache__/__init__.cpython-310.opt-1.pyc index 82085bf..6eec854 100644 Binary files a/dist/ba_data/python/ba/ui/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/ba/ui/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bacommon/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bacommon/__pycache__/__init__.cpython-310.opt-1.pyc index 3561286..9c65182 100644 Binary files a/dist/ba_data/python/bacommon/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bacommon/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bacommon/__pycache__/cloud.cpython-310.opt-1.pyc b/dist/ba_data/python/bacommon/__pycache__/cloud.cpython-310.opt-1.pyc index dbb0762..421475d 100644 Binary files a/dist/ba_data/python/bacommon/__pycache__/cloud.cpython-310.opt-1.pyc and b/dist/ba_data/python/bacommon/__pycache__/cloud.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bacommon/__pycache__/login.cpython-310.opt-1.pyc b/dist/ba_data/python/bacommon/__pycache__/login.cpython-310.opt-1.pyc index 2e29f06..d879f1a 100644 Binary files a/dist/ba_data/python/bacommon/__pycache__/login.cpython-310.opt-1.pyc and b/dist/ba_data/python/bacommon/__pycache__/login.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bacommon/__pycache__/net.cpython-310.opt-1.pyc b/dist/ba_data/python/bacommon/__pycache__/net.cpython-310.opt-1.pyc index 9528142..bf40f17 100644 Binary files a/dist/ba_data/python/bacommon/__pycache__/net.cpython-310.opt-1.pyc and b/dist/ba_data/python/bacommon/__pycache__/net.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bacommon/__pycache__/servermanager.cpython-310.opt-1.pyc b/dist/ba_data/python/bacommon/__pycache__/servermanager.cpython-310.opt-1.pyc index 2813152..825ca9d 100644 Binary files a/dist/ba_data/python/bacommon/__pycache__/servermanager.cpython-310.opt-1.pyc and b/dist/ba_data/python/bacommon/__pycache__/servermanager.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bacommon/__pycache__/transfer.cpython-310.opt-1.pyc b/dist/ba_data/python/bacommon/__pycache__/transfer.cpython-310.opt-1.pyc index 25a5ddc..f89a613 100644 Binary files a/dist/ba_data/python/bacommon/__pycache__/transfer.cpython-310.opt-1.pyc and b/dist/ba_data/python/bacommon/__pycache__/transfer.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/__pycache__/__init__.cpython-310.opt-1.pyc index c46ebb0..2900edf 100644 Binary files a/dist/ba_data/python/bastd/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/__pycache__/appdelegate.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/__pycache__/appdelegate.cpython-310.opt-1.pyc index d3bd0bd..9116d67 100644 Binary files a/dist/ba_data/python/bastd/__pycache__/appdelegate.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/__pycache__/appdelegate.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/__pycache__/gameutils.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/__pycache__/gameutils.cpython-310.opt-1.pyc index f654f03..77c648d 100644 Binary files a/dist/ba_data/python/bastd/__pycache__/gameutils.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/__pycache__/gameutils.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/__pycache__/mainmenu.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/__pycache__/mainmenu.cpython-310.opt-1.pyc index 249d34f..bff0bd3 100644 Binary files a/dist/ba_data/python/bastd/__pycache__/mainmenu.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/__pycache__/mainmenu.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/__pycache__/maps.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/__pycache__/maps.cpython-310.opt-1.pyc index db146d6..b89b6f5 100644 Binary files a/dist/ba_data/python/bastd/__pycache__/maps.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/__pycache__/maps.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/__pycache__/tutorial.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/__pycache__/tutorial.cpython-310.opt-1.pyc new file mode 100644 index 0000000..4463202 Binary files /dev/null and b/dist/ba_data/python/bastd/__pycache__/tutorial.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/activity/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/activity/__pycache__/__init__.cpython-310.opt-1.pyc index e45d0f7..7744fe7 100644 Binary files a/dist/ba_data/python/bastd/activity/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/activity/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/activity/__pycache__/coopscore.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/activity/__pycache__/coopscore.cpython-310.opt-1.pyc index f7c2f49..2607d67 100644 Binary files a/dist/ba_data/python/bastd/activity/__pycache__/coopscore.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/activity/__pycache__/coopscore.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/activity/__pycache__/drawscore.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/activity/__pycache__/drawscore.cpython-310.opt-1.pyc index df504fe..6703134 100644 Binary files a/dist/ba_data/python/bastd/activity/__pycache__/drawscore.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/activity/__pycache__/drawscore.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-310.opt-1.pyc index 7e1a70d..e4bda98 100644 Binary files a/dist/ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/activity/__pycache__/multiteamjoin.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/activity/__pycache__/multiteamjoin.cpython-310.opt-1.pyc index 0df303c..ab58ec7 100644 Binary files a/dist/ba_data/python/bastd/activity/__pycache__/multiteamjoin.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/activity/__pycache__/multiteamjoin.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/activity/__pycache__/multiteamscore.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/activity/__pycache__/multiteamscore.cpython-310.opt-1.pyc index 9c9e2b1..59c0105 100644 Binary files a/dist/ba_data/python/bastd/activity/__pycache__/multiteamscore.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/activity/__pycache__/multiteamscore.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/activity/__pycache__/multiteamvictory.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/activity/__pycache__/multiteamvictory.cpython-310.opt-1.pyc index bcc42b1..752bd0c 100644 Binary files a/dist/ba_data/python/bastd/activity/__pycache__/multiteamvictory.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/activity/__pycache__/multiteamvictory.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/__init__.cpython-310.opt-1.pyc index 09569dd..3c2e894 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/background.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/background.cpython-310.opt-1.pyc index 81f44ed..6013898 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/background.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/background.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/bomb.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/bomb.cpython-310.opt-1.pyc index af2929a..50f7577 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/bomb.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/bomb.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/controlsguide.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/controlsguide.cpython-310.opt-1.pyc index 31e7b06..1e67f49 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/controlsguide.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/controlsguide.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/flag.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/flag.cpython-310.opt-1.pyc index 7cb7b88..fd65d86 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/flag.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/flag.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/image.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/image.cpython-310.opt-1.pyc index abc7c3c..354d832 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/image.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/image.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/onscreencountdown.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/onscreencountdown.cpython-310.opt-1.pyc index 99d3661..3c802e1 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/onscreencountdown.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/onscreencountdown.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/onscreentimer.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/onscreentimer.cpython-310.opt-1.pyc index 9fea48e..146b8c1 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/onscreentimer.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/onscreentimer.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/playerspaz.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/playerspaz.cpython-310.opt-1.pyc index 11039a0..b046d3d 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/playerspaz.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/playerspaz.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/popuptext.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/popuptext.cpython-310.opt-1.pyc index e4f60a4..e3a508e 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/popuptext.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/popuptext.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/powerupbox.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/powerupbox.cpython-310.opt-1.pyc index f7f11ff..dd203a5 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/powerupbox.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/powerupbox.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/respawnicon.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/respawnicon.cpython-310.opt-1.pyc index ffbe285..58670cd 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/respawnicon.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/respawnicon.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/scoreboard.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/scoreboard.cpython-310.opt-1.pyc index e956069..207d4be 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/scoreboard.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/scoreboard.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/spawner.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/spawner.cpython-310.opt-1.pyc index 4b58dbd..1d09538 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/spawner.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/spawner.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/spaz.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/spaz.cpython-310.opt-1.pyc index f8382dd..adcf7c6 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/spaz.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/spaz.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/spazappearance.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/spazappearance.cpython-310.opt-1.pyc index 6373e65..fb045ad 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/spazappearance.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/spazappearance.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/spazbot.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/spazbot.cpython-310.opt-1.pyc index d76b79c..a7e1209 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/spazbot.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/spazbot.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/spazfactory.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/spazfactory.cpython-310.opt-1.pyc index dd4973f..d860af8 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/spazfactory.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/spazfactory.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/text.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/text.cpython-310.opt-1.pyc index 4856224..b0daf7a 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/text.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/text.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/tipstext.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/tipstext.cpython-310.opt-1.pyc index 279512f..cfb9f41 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/tipstext.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/tipstext.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/actor/__pycache__/zoomtext.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/actor/__pycache__/zoomtext.cpython-310.opt-1.pyc index 324d130..e500234 100644 Binary files a/dist/ba_data/python/bastd/actor/__pycache__/zoomtext.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/actor/__pycache__/zoomtext.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/__init__.cpython-310.opt-1.pyc index 2047322..7e81a5d 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/assault.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/assault.cpython-310.opt-1.pyc index 7734fb1..1f20f4b 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/assault.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/assault.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/capturetheflag.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/capturetheflag.cpython-310.opt-1.pyc index 3f26ab5..d6e0030 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/capturetheflag.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/capturetheflag.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/chosenone.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/chosenone.cpython-310.opt-1.pyc index 9afd186..e45d8e9 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/chosenone.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/chosenone.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/conquest.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/conquest.cpython-310.opt-1.pyc index 72373a3..d6951c2 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/conquest.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/conquest.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/deathmatch.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/deathmatch.cpython-310.opt-1.pyc index 09476d3..978a574 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/deathmatch.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/deathmatch.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/easteregghunt.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/easteregghunt.cpython-310.opt-1.pyc index 38c8612..f022cfc 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/easteregghunt.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/easteregghunt.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/elimination.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/elimination.cpython-310.opt-1.pyc index dc804ae..8c125a7 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/elimination.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/elimination.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/football.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/football.cpython-310.opt-1.pyc index 52971a2..e6da752 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/football.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/football.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/hockey.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/hockey.cpython-310.opt-1.pyc index f03d61d..e000b73 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/hockey.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/hockey.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/keepaway.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/keepaway.cpython-310.opt-1.pyc index a2df466..c6584db 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/keepaway.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/keepaway.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/kingofthehill.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/kingofthehill.cpython-310.opt-1.pyc index c11dafd..b092b3d 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/kingofthehill.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/kingofthehill.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/meteorshower.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/meteorshower.cpython-310.opt-1.pyc index 98d9285..8a9be22 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/meteorshower.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/meteorshower.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/ninjafight.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/ninjafight.cpython-310.opt-1.pyc index d1b317c..e18bc2f 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/ninjafight.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/ninjafight.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/onslaught.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/onslaught.cpython-310.opt-1.pyc index 82bb03e..5f23c0e 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/onslaught.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/onslaught.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/race.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/race.cpython-310.opt-1.pyc index deeeb48..5eeea15 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/race.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/race.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/runaround.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/runaround.cpython-310.opt-1.pyc index f708745..9e772e3 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/runaround.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/runaround.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/targetpractice.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/targetpractice.cpython-310.opt-1.pyc index 10dec1f..d7ced0a 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/targetpractice.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/targetpractice.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/game/__pycache__/thelaststand.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/game/__pycache__/thelaststand.cpython-310.opt-1.pyc index b75a612..4130024 100644 Binary files a/dist/ba_data/python/bastd/game/__pycache__/thelaststand.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/game/__pycache__/thelaststand.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/__init__.cpython-310.opt-1.pyc index bb2b633..f2e49ec 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/big_g.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/big_g.cpython-310.opt-1.pyc index 60bfb38..669f3b3 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/big_g.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/big_g.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/bridgit.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/bridgit.cpython-310.opt-1.pyc index 0b699d1..02c4cd6 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/bridgit.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/bridgit.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/courtyard.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/courtyard.cpython-310.opt-1.pyc index 4885b57..2d0a184 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/courtyard.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/courtyard.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/crag_castle.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/crag_castle.cpython-310.opt-1.pyc index f1be691..c0547c1 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/crag_castle.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/crag_castle.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/doom_shroom.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/doom_shroom.cpython-310.opt-1.pyc index 22302a9..bd40c14 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/doom_shroom.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/doom_shroom.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/football_stadium.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/football_stadium.cpython-310.opt-1.pyc index 060bf8a..12959d1 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/football_stadium.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/football_stadium.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/happy_thoughts.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/happy_thoughts.cpython-310.opt-1.pyc index e6e8ddb..caeb100 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/happy_thoughts.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/happy_thoughts.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/hockey_stadium.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/hockey_stadium.cpython-310.opt-1.pyc index 130764f..9c76d2e 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/hockey_stadium.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/hockey_stadium.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/lake_frigid.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/lake_frigid.cpython-310.opt-1.pyc index e933be8..7f9644d 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/lake_frigid.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/lake_frigid.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/monkey_face.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/monkey_face.cpython-310.opt-1.pyc index 74accbe..84097fb 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/monkey_face.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/monkey_face.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/rampage.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/rampage.cpython-310.opt-1.pyc index 643d573..47b0a04 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/rampage.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/rampage.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/roundabout.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/roundabout.cpython-310.opt-1.pyc index 3fbf08e..9e673f9 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/roundabout.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/roundabout.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/step_right_up.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/step_right_up.cpython-310.opt-1.pyc index 9732a0d..6dcdaf6 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/step_right_up.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/step_right_up.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/the_pad.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/the_pad.cpython-310.opt-1.pyc index 80ce620..b01eab6 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/the_pad.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/the_pad.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/tip_top.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/tip_top.cpython-310.opt-1.pyc index 8e88e8c..de8e851 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/tip_top.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/tip_top.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/tower_d.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/tower_d.cpython-310.opt-1.pyc index 149bc91..ac723c0 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/tower_d.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/tower_d.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/mapdata/__pycache__/zig_zag.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/mapdata/__pycache__/zig_zag.cpython-310.opt-1.pyc index f6c9f01..daa429a 100644 Binary files a/dist/ba_data/python/bastd/mapdata/__pycache__/zig_zag.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/mapdata/__pycache__/zig_zag.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/__init__.cpython-310.opt-1.pyc index 8f2a656..42672f3 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/confirm.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/confirm.cpython-310.opt-1.pyc index 9a84a2f..af40e64 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/confirm.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/confirm.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/creditslist.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/creditslist.cpython-310.opt-1.pyc index c459de7..0cf1165 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/creditslist.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/creditslist.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/feedback.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/feedback.cpython-310.opt-1.pyc index d97da5d..4df3ae2 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/feedback.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/feedback.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/getremote.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/getremote.cpython-310.opt-1.pyc index 543c100..ac6cf6a 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/getremote.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/getremote.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/helpui.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/helpui.cpython-310.opt-1.pyc index d20dab7..55193e1 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/helpui.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/helpui.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/kiosk.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/kiosk.cpython-310.opt-1.pyc index 2e3fd4f..e460811 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/kiosk.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/kiosk.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/mainmenu.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/mainmenu.cpython-310.opt-1.pyc index 72f736c..d3758e7 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/mainmenu.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/mainmenu.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/onscreenkeyboard.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/onscreenkeyboard.cpython-310.opt-1.pyc index a20ae35..799ac9c 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/onscreenkeyboard.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/onscreenkeyboard.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/play.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/play.cpython-310.opt-1.pyc index d190008..a142181 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/play.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/play.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/popup.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/popup.cpython-310.opt-1.pyc index 07bf68f..97cba74 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/popup.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/popup.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/specialoffer.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/specialoffer.cpython-310.opt-1.pyc index 1c35aa0..9a68d0f 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/specialoffer.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/specialoffer.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/tabs.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/tabs.cpython-310.opt-1.pyc index f721ab5..e93fb84 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/tabs.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/tabs.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/__pycache__/watch.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/__pycache__/watch.cpython-310.opt-1.pyc index c7699c5..60d898b 100644 Binary files a/dist/ba_data/python/bastd/ui/__pycache__/watch.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/__pycache__/watch.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/account/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/account/__pycache__/__init__.cpython-310.opt-1.pyc index 7b2ec12..cac5c9a 100644 Binary files a/dist/ba_data/python/bastd/ui/account/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/account/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/account/__pycache__/settings.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/account/__pycache__/settings.cpython-310.opt-1.pyc index 3e4ad54..a8bcde6 100644 Binary files a/dist/ba_data/python/bastd/ui/account/__pycache__/settings.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/account/__pycache__/settings.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/gather/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/gather/__pycache__/__init__.cpython-310.opt-1.pyc index 2618dc7..5b060db 100644 Binary files a/dist/ba_data/python/bastd/ui/gather/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/gather/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/profile/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/profile/__pycache__/__init__.cpython-310.opt-1.pyc index a31652b..e6450e9 100644 Binary files a/dist/ba_data/python/bastd/ui/profile/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/profile/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/profile/__pycache__/browser.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/profile/__pycache__/browser.cpython-310.opt-1.pyc index c4ccc49..705fd7e 100644 Binary files a/dist/ba_data/python/bastd/ui/profile/__pycache__/browser.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/profile/__pycache__/browser.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/settings/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/settings/__pycache__/__init__.cpython-310.opt-1.pyc index 7087e05..6b38811 100644 Binary files a/dist/ba_data/python/bastd/ui/settings/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/settings/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/settings/__pycache__/allsettings.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/settings/__pycache__/allsettings.cpython-310.opt-1.pyc index 6a2c92f..1eaf725 100644 Binary files a/dist/ba_data/python/bastd/ui/settings/__pycache__/allsettings.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/settings/__pycache__/allsettings.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/store/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/store/__pycache__/__init__.cpython-310.opt-1.pyc index 09bb2db..fa4c3d8 100644 Binary files a/dist/ba_data/python/bastd/ui/store/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/store/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/store/__pycache__/browser.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/store/__pycache__/browser.cpython-310.opt-1.pyc index 11d9119..1e57cbc 100644 Binary files a/dist/ba_data/python/bastd/ui/store/__pycache__/browser.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/store/__pycache__/browser.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/bastd/ui/store/__pycache__/button.cpython-310.opt-1.pyc b/dist/ba_data/python/bastd/ui/store/__pycache__/button.cpython-310.opt-1.pyc index 9b8b9f5..84d90a9 100644 Binary files a/dist/ba_data/python/bastd/ui/store/__pycache__/button.cpython-310.opt-1.pyc and b/dist/ba_data/python/bastd/ui/store/__pycache__/button.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/__pycache__/__init__.cpython-310.opt-1.pyc index f05668b..3ce8e9b 100644 Binary files a/dist/ba_data/python/efro/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/__pycache__/call.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/__pycache__/call.cpython-310.opt-1.pyc index 4b6e48c..3fd21a0 100644 Binary files a/dist/ba_data/python/efro/__pycache__/call.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/__pycache__/call.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/__pycache__/error.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/__pycache__/error.cpython-310.opt-1.pyc index 131dee0..adacb1d 100644 Binary files a/dist/ba_data/python/efro/__pycache__/error.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/__pycache__/error.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/__pycache__/log.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/__pycache__/log.cpython-310.opt-1.pyc index 0f497bb..eb74b63 100644 Binary files a/dist/ba_data/python/efro/__pycache__/log.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/__pycache__/log.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/__pycache__/rpc.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/__pycache__/rpc.cpython-310.opt-1.pyc index 2ce2ed3..11ceb73 100644 Binary files a/dist/ba_data/python/efro/__pycache__/rpc.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/__pycache__/rpc.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/__pycache__/terminal.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/__pycache__/terminal.cpython-310.opt-1.pyc index 8907469..8ba8a3c 100644 Binary files a/dist/ba_data/python/efro/__pycache__/terminal.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/__pycache__/terminal.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/__pycache__/util.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/__pycache__/util.cpython-310.opt-1.pyc index 3209365..93e124c 100644 Binary files a/dist/ba_data/python/efro/__pycache__/util.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/__pycache__/util.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/dataclassio/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/dataclassio/__pycache__/__init__.cpython-310.opt-1.pyc index dbc50ad..dd77943 100644 Binary files a/dist/ba_data/python/efro/dataclassio/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/dataclassio/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/dataclassio/__pycache__/_api.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/dataclassio/__pycache__/_api.cpython-310.opt-1.pyc index 42c9eba..1921722 100644 Binary files a/dist/ba_data/python/efro/dataclassio/__pycache__/_api.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/dataclassio/__pycache__/_api.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/dataclassio/__pycache__/_base.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/dataclassio/__pycache__/_base.cpython-310.opt-1.pyc index da62ba5..9fa67b0 100644 Binary files a/dist/ba_data/python/efro/dataclassio/__pycache__/_base.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/dataclassio/__pycache__/_base.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/dataclassio/__pycache__/_inputter.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/dataclassio/__pycache__/_inputter.cpython-310.opt-1.pyc index b285ffd..d66e31d 100644 Binary files a/dist/ba_data/python/efro/dataclassio/__pycache__/_inputter.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/dataclassio/__pycache__/_inputter.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/dataclassio/__pycache__/_outputter.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/dataclassio/__pycache__/_outputter.cpython-310.opt-1.pyc index 0b82ddf..a57ccf2 100644 Binary files a/dist/ba_data/python/efro/dataclassio/__pycache__/_outputter.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/dataclassio/__pycache__/_outputter.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/dataclassio/__pycache__/_pathcapture.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/dataclassio/__pycache__/_pathcapture.cpython-310.opt-1.pyc index 8ee5d0d..37af431 100644 Binary files a/dist/ba_data/python/efro/dataclassio/__pycache__/_pathcapture.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/dataclassio/__pycache__/_pathcapture.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/dataclassio/__pycache__/_prep.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/dataclassio/__pycache__/_prep.cpython-310.opt-1.pyc index bf96467..2bfe762 100644 Binary files a/dist/ba_data/python/efro/dataclassio/__pycache__/_prep.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/dataclassio/__pycache__/_prep.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/message/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/message/__pycache__/__init__.cpython-310.opt-1.pyc index f7f5b43..8cd1e71 100644 Binary files a/dist/ba_data/python/efro/message/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/message/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/message/__pycache__/_message.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/message/__pycache__/_message.cpython-310.opt-1.pyc index b147379..4f779d4 100644 Binary files a/dist/ba_data/python/efro/message/__pycache__/_message.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/message/__pycache__/_message.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/message/__pycache__/_module.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/message/__pycache__/_module.cpython-310.opt-1.pyc index 1e47f76..e150e1d 100644 Binary files a/dist/ba_data/python/efro/message/__pycache__/_module.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/message/__pycache__/_module.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/message/__pycache__/_protocol.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/message/__pycache__/_protocol.cpython-310.opt-1.pyc index 495c7fd..54eb207 100644 Binary files a/dist/ba_data/python/efro/message/__pycache__/_protocol.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/message/__pycache__/_protocol.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/message/__pycache__/_receiver.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/message/__pycache__/_receiver.cpython-310.opt-1.pyc index 1a44d5e..f62989e 100644 Binary files a/dist/ba_data/python/efro/message/__pycache__/_receiver.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/message/__pycache__/_receiver.cpython-310.opt-1.pyc differ diff --git a/dist/ba_data/python/efro/message/__pycache__/_sender.cpython-310.opt-1.pyc b/dist/ba_data/python/efro/message/__pycache__/_sender.cpython-310.opt-1.pyc index aa472b6..9bbf02c 100644 Binary files a/dist/ba_data/python/efro/message/__pycache__/_sender.cpython-310.opt-1.pyc and b/dist/ba_data/python/efro/message/__pycache__/_sender.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/.bsac2 b/dist/ba_root/.bsac2 index 82aa4b8..8910782 100644 --- a/dist/ba_root/.bsac2 +++ b/dist/ba_root/.bsac2 @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/dist/ba_root/config.json b/dist/ba_root/config.json index 7392de4..7985f4f 100644 --- a/dist/ba_root/config.json +++ b/dist/ba_root/config.json @@ -1 +1,661 @@ -{"Achievements": {"Boom Goes the Dynamite": {"Complete": true}, "Boxer": {"Complete": true}, "Dual Wielding": {"Complete": false}, "Flawless Victory": {"Complete": false}, "Free Loader": {"Complete": true}, "Gold Miner": {"Complete": true}, "Got the Moves": {"Complete": false}, "In Control": {"Complete": false}, "Last Stand God": {"Complete": true}, "Last Stand Master": {"Complete": true}, "Last Stand Wizard": {"Complete": true}, "Mine Games": {"Complete": true}, "Off You Go Then": {"Complete": true}, "Onslaught God": {"Complete": false}, "Onslaught Master": {"Complete": true}, "Onslaught Training Victory": {"Complete": true}, "Onslaught Wizard": {"Complete": true}, "Precision Bombing": {"Complete": true}, "Pro Boxer": {"Complete": true}, "Pro Football Shutout": {"Complete": true}, "Pro Football Victory": {"Complete": true}, "Pro Onslaught Victory": {"Complete": true}, "Pro Runaround Victory": {"Complete": true}, "Rookie Football Shutout": {"Complete": true}, "Rookie Football Victory": {"Complete": true}, "Rookie Onslaught Victory": {"Complete": true}, "Runaround God": {"Complete": false}, "Runaround Master": {"Complete": true}, "Runaround Wizard": {"Complete": true}, "Sharing is Caring": {"Complete": false}, "Stayin' Alive": {"Complete": true}, "Super Mega Punch": {"Complete": true}, "Super Punch": {"Complete": true}, "TNT Terror": {"Complete": true}, "Team Player": {"Complete": true}, "The Great Wall": {"Complete": true}, "The Wall": {"Complete": true}, "Uber Football Shutout": {"Complete": true}, "Uber Football Victory": {"Complete": true}, "Uber Onslaught Victory": {"Complete": true}, "Uber Runaround Victory": {"Complete": true}}, "Auto Account State": "Server", "Auto Balance Teams": true, "Bear Coin": 1033, "Bear Store": {"Buy Firebombs": false, "Buy Option": false, "Buy Percentage": false, "Promo Code": {"B-0mB3RYT2z": [true, 910], "B-Asd14mON9G0D": [true, 910], "D-rAcK0cJ23": [true, 910], "E-Am54igO42Os": [true, 600], "E-M4uN3K34XB": [true, 840], "E-a27ZO6f3Y": [true, 600], "G-Am54igO42Os": [true, 1100], "P-tRo8nM8dZ": [true, 2800], "PM-731ClcAF": [true, 50000], "Y-tU2B3S": [true, 500]}}, "Campaigns": {}, "Custom Team Colors": [[0.8, 0.0, 0.6], [0.0, 1.0, 0.8]], "Custom Team Names": ["vortex", "Honor"], "Default Player Profiles": {"Client Input Device #1": "__account__", "Client Input Device #10": "\ua9c1\ud83d\udcab\u2022NFR\u2022\ud83d\udcab\ua9c2", "Client Input Device #2": "Mithi wins", "Client Input Device #3": "__account__", "Client Input Device #4": "__account__", "Client Input Device #5": "billy", "Client Input Device #6": "all dog", "Client Input Device #7": "__account__", "Client Input Device #8": "MINNAL \u1b44MURALI\u0fd0", "Client Input Device #9": "_random"}, "Fleet Zone Pings": {"prod": {"bahrain": 48.92464261603163, "bangkok": 89.40636147713667, "delhi": 23.57106822710921, "dubai": 28.20400463828264, "hong_kong": 91.58688576205896, "hyderabad": 22.741593281149107, "kolkata": 25.83847074302321, "mumbai": 1.1225382366828853, "singapore": 64.8370358425891, "tel_aviv": 143.04014899971662}}, "Free-for-All Max Players": 25, "Free-for-All Playlist Randomize": true, "Free-for-All Playlist Selection": "__default__", "Free-for-All Playlists": {}, "Idle Exit Minutes": null, "Local Account Name": "Server7611774", "PPM Settings": {"Healing Damage PTG": 72, "Powers Gravity": true, "Powerup Name": true, "Powerup Scale": 1.0, "Powerup Style": "Auto", "Powerup Time": true, "Powerup With Shield": false, "Powerups": {"Champion": 0, "Curse": 1, "ExtraLyfe": 2, "False Bombs": 0, "Fire Bombs": 3, "Fly Bombs": 2, "Goodbye": 2, "Healing Damage": 0, "Health": 1, "Ice Bombs": 3, "Ice Man": 1, "Impact Bombs": 3, "Impairment Bombs": 2, "Mine Bombs": 2, "Multi Bomb": 0, "PWP": 0, "Punch": 0, "Radius": 0, "Shield": 0, "Speed": 2, "Spunch": 0, "Sticky Bombs": 3, "Tank Shield": 0, "Triple": 3}, "Tank Shield PTG": 96}, "PSTR": 0, "Player Profiles": {"__account__": {"character": "Spaz", "color": [0.5, 0.25, 1.0], "highlight": [0.5, 0.25, 1.0]}}, "Plugins": {"custom_hooks.modSetup": {"enabled": true}, "plugins.Init": {"enabled": true}}, "Port": 43222, "Region Pings": {"af-south-1": 328.2357999996748, "ap-northeast-1": 150.0941541948123, "ap-northeast-2": 160.2201884064998, "ap-south-1": 45.05286179925315, "ap-southeast-1": 101.91129060697858, "ap-southeast-2": 183.6228000029223, "ca-central-1": 262.4569968022115, "eu-central-1": 155.88790780561976, "eu-north-1": 181.94498299446423, "eu-south-1": 156.48616400256287, "eu-west-1": 179.42955539320246, "eu-west-2": 158.43393659518915, "eu-west-3": 170.620519401622, "me-south-1": 78.16982959693996, "sa-east-1": 345.57150000182446, "us-east-1": 238.92560360513744, "us-east-2": 257.30932620124076, "us-west-1": 255.34800000605173, "us-west-2": 292.9734999925131}, "Selected Coop Game": "Easy:Rookie Onslaught", "Show Tutorial": false, "Signed In Last Session": false, "Team Game Max Player": 25, "Team Game Max Players": 25, "Team Tournament Playlist Randomize": true, "Team Tournament Playlist Selection": "sara_full_epic_best_playlist", "Team Tournament Playlists": {"bcs_fun_all_games": [{"settings": {"Balance Total Lives": true, "Epic Mode": true, "Lives Per Player": 2, "Respawn Times": 0.5, "Solo Mode": true, "Time Limit": 300, "map": "Rampage"}, "type": "BroElimination.BroEliminaition"}, {"settings": {"Respawn Times": 0.1, "Score to Win": 3, "Time Limit": 300, "map": "Creative Thoughts"}, "type": "air_soccer.AirSoccerGame"}, {"settings": {"Boxing Gloves": true, "Epic Mode": true, "Ice Floor": true, "Respawn Times": 0.5, "Score to Win": 6, "Time Limit": 300, "map": "Hockey Stadium"}, "type": "soccerhockey.HockeyGame"}, {"settings": {"Boxing Gloves": true, "Epic Mode": true, "Icy Floor": true, "Respawn Times": 0.25, "Score to Win": 6, "Time Limit": 300, "map": "Football Stadium"}, "type": "soccer.HockeyGame"}, {"settings": {"Boxing Gloves": false, "Epic Mode": true, "Icy Floor": true, "Respawn Times": 0.25, "Score to Win": 4, "Time Limit": 600, "map": "Soccer Stadium Pro"}, "type": "soccer.HockeyGame"}, {"settings": {"Boxing Gloves": false, "Epic Mode": true, "Icy Floor": false, "Respawn Times": 0.5, "Score to Win": 6, "Time Limit": 300, "map": "Football Stadium"}, "type": "soccer.HockeyGame"}, {"settings": {"Epic Mode": true, "Lives (0 = Unlimited)": 2, "Respawn Times": 0.5, "Time Limit": 300, "map": "Step Right Up"}, "type": "SuperSmash.SuperSmash"}, {"settings": {"Epic Mode": true, "Lives (0 = Unlimited)": 2, "Respawn Times": 0.25, "Time Limit": 300, "map": "Courtyard"}, "type": "SuperSmash.SuperSmash"}, {"settings": {"Balance Total Lives": true, "Epic Mode": false, "Lives Per Player": 1, "Players Per Team In Arena": 2, "Respawn Times": 0.5, "Time Limit": 300, "map": "Zigzag Stubbed"}, "type": "alliance_elimination.AllianceEliminationGame"}, {"settings": {"Chosen One Gets Gloves": false, "Chosen One Gets Shield": false, "Chosen One Time": 30, "Epic Mode": false, "Respawn Times": 0.25, "Time Limit": 300, "map": "Lake of Death"}, "type": "bastd.game.chosenone.ChosenOneGame"}, {"settings": {"Epic Mode": false, "Kills to Win Per Player": 5, "Respawn Times": 0.25, "Time Limit": 300, "map": "Desert"}, "type": "bastd.game.deathmatch.DeathMatchGame"}, {"settings": {"Epic Mode": false, "Kills to Win Per Player": 5, "Respawn Times": 1.0, "Time Limit": 0, "map": "Lake of Death"}, "type": "bastd.game.deathmatch.DeathMatchGame"}, {"settings": {"Epic Mode": false, "Kills to Win Per Player": 5, "Respawn Times": 0.5, "Time Limit": 300, "map": "Creative Thoughts"}, "type": "shimla.ShimlaGame"}, {"settings": {"Allow Lucky Capsules": true, "Capsules on Death": 2, "Capsules to Win": 10, "Epic Mode": false, "Respawn Times": 0.5, "Time Limit": 300, "map": "Courtyard"}, "type": "Collector.CollectorGame"}, {"settings": {"Epic Mode": false, "Slow Motion Deaths": false, "map": "Courtyard"}, "type": "FlagDay.FlagDayGame"}, {"settings": {"Respawn Times": 0.5, "Score to Win": 3, "Time Limit": 300, "map": "Soccer Stadium Pro"}, "type": "RealSoccer.HockeyGame"}, {"settings": {"Basic Bombs": true, "Epic Mode": true, "Frozen Bombs": true, "Grabbing only": true, "Impact Bombs": true, "Punching only": true, "Respawn Times": 0.5, "Sticky Bombs": true, "Time Limit": 300, "map": "\ue019Powerups Factory"}, "type": "ArmsRace.ArmsRaceGame"}, {"settings": {"Countdown Time Each Round": 45, "Epic Mode": false, "Kill player on ground": true, "Random Spawn Point (Team)": false, "Respawn Times": 1, "Score to Win Per Team": 5, "Time Limit": 300, "[On score] Single Celebrate": true, "[On score] Single Teleport": true, "map": "Tower D"}, "type": "Tower_Rush.BaseRaidGame"}, {"settings": {"Enable speed": false, "Epic Mode": true, "Powerups Spawn": true, "Respawn Times": 1, "Score to Win": 3, "Time Limit": 300, "map": "BasketBall Stadium V2"}, "type": "baBasketBomb.BasketGame"}, {"settings": {"Epic Mode": false, "Large Box Count": 3, "Points to win per Player": 1000, "Respawn Times": 0.5, "Small Box Count": 1, "Time Limit": 300, "map": "Football Stadium"}, "type": "crazyBoxes.CrazyBoxGame"}, {"settings": {"Epic Mode": true, "Points to Win Per Player": 2, "Respawn Times": 1, "Target Indicator": 1, "Time Limit": 300, "Time to Kill": 7, "map": "Football Stadium"}, "type": "GetTheTarget.GetTheTargetGame"}, {"settings": {"Balance Total Lives": false, "Epic Mode": false, "Lives Per Player": 1, "Respawn Times": 1, "Solo Mode": false, "Time Limit": 300, "map": "Football Stadium"}, "type": "GravityFalls.GFGame"}, {"settings": {"Epic Mode": true, "Respawn Times": 0.5, "Score to Win": 3, "Time Limit": 300, "map": "Bridgit Parallelo"}, "type": "bastd.game.assault.AssaultGame"}, {"settings": {"Epic Mode": false, "map": "Wooden Floor"}, "type": "UFOAttackGame.UFOAttackGame"}, {"settings": {"Balance Total Lives": true, "Epic Mode": true, "Lives Per Player": 3, "Players Per Team In Arena": 2, "Respawn Times": 0.25, "Time Limit": 300, "map": "Bridgit Parallelo"}, "type": "alliance_elimination.AllianceEliminationGame"}, {"settings": {"Epic Mode": false, "Respawn Times": 1, "Time Limit": 300, "map": "Bridgit Mash"}, "type": "bastd.game.conquest.ConquestGame"}, {"settings": {"Boxing Gloves": false, "Epic Mode": false, "Icy Floor": true, "Respawn Times": 0.1, "Score to Win": 7, "Time Limit": 60, "map": "Soccer Stadium Pro"}, "type": "RealSoccer.HockeyGame"}, {"settings": {"Balance Total Lives": true, "Epic Mode": true, "Lives Per Player": 2, "Respawn Times": 0.5, "Solo Mode": true, "Time Limit": 300, "map": "\ue019The Limbo"}, "type": "bastd.game.elimination.EliminationGame"}, {"settings": {"Hold Time": 30, "Respawn Times": 1, "Time Limit": 300, "map": "\ue019Platforms"}, "type": "bastd.game.kingofthehill.KingOfTheHillGame"}, {"settings": {"Balloon Mode": false, "Difficulty": 0.15, "Distractor Bones": 2, "Enable Bananas": true, "Epic Mode": true, "Immortality": true, "Mesh Color": 4, "Respawn Times": 0.5, "Score to Win": 3, "Space Under the Mesh": true, "Time Limit": 300, "Timer": 3, "Type of Hot Bomb": 0, "map": "Hot Bomb Map"}, "type": "Hot-Bomb.HotBombGame"}, {"settings": {"Epic Mode": true, "Respawn Times": 0.5, "Score to Win": 3, "Time Limit": 300, "map": "\ue019Neo Zone"}, "type": "bastd.game.assault.AssaultGame"}, {"settings": {"Epic Mode": false, "Flag Idle Return Time": 25, "Flag Touch Return Time": 8, "Respawn Times": 1, "Score to Win": 3, "Time Limit": 300, "map": "\ue019Big H"}, "type": "bastd.game.capturetheflag.CaptureTheFlagGame"}, {"settings": {"Enable Bottom Credit": true, "Enable Punching": false, "Enable Running": false, "Epic Mode": false, "Time Limit": 300, "map": "Doom Shroom"}, "type": "MusicalFlags.MFGame"}, {"settings": {"Epic Mode": false, "map": "Rampage"}, "type": "TnT_Error.TntErrorGame"}, {"settings": {"Balance Total Lives": false, "Epic Mode": false, "Lives Per Player": 2, "Respawn Times": 0.5, "Solo Mode": false, "Time Limit": 300, "map": "Football Stadium"}, "type": "safe_zone.SafeZoneGame"}, {"settings": {"Enable Bomb": false, "Enable Jump": false, "Enable Pickup": false, "Epic Mode": true, "Kills to Win Per Player": 12, "Obstacles": true, "Obstacles Count": 16, "Obstacles Form": 0, "Obstacles Mirror Shots": false, "Random Obstacles Color": false, "Respawn Times": 0.25, "Speed": true, "Time Limit": 300, "Weapon Type": 0, "map": "Football Stadium"}, "type": "quake.game.QuakeGame"}, {"settings": {"Epic Mode": true, "Grant Powers on Score": true, "Night Mode": true, "Respawn Times": 0.5, "Score to Win": 1, "Time Limit": 300, "map": "Football Stadium"}, "type": "BigBall.BBGame"}, {"settings": {"Enable Bottom Credits": true, "Epic Mode": false, "map": "Sky Tiles"}, "type": "MemoryGame.MGgame"}, {"settings": {"Bomb Spawning": 2000, "Entire Team Must Finish": false, "Epic Mode": true, "Laps": 3, "Mine Spawning": 4000, "Time Limit": 120, "map": "InTheAir"}, "type": "StumbleRace.StumbleRaceGame"}, {"settings": {"Epic Mode": false, "Frozen One Gets Gloves": true, "Frozen One Gets Shield": false, "Frozen One Time": 30, "Respawn Times": 1, "Time Limit": 300, "map": "Tip Top"}, "type": "FrozenOne16.FrozenOneGame"}, {"settings": {"Epic Mode": false, "Players as center of interest": true, "Respawn Times": 1, "Score to Win": 4, "Time Limit": 300, "map": "Football Stadium"}, "type": "baDarkFields.DarkFieldsGame"}, {"settings": {"Epic Mode": true, "map": "InTheAir"}, "type": "SubwayRun.SubwayRunGame"}, {"settings": {"Balance Total Lives": false, "Epic Mode": true, "Lives Per Player": 1, "Respawn Times": 1, "Solo Mode": false, "Time Limit": 120, "map": "Courtyard"}, "type": "LaserTracer.LasorTracerGame"}, {"settings": {"Epic Mode": false, "map": "Lake Frigid"}, "type": "IcyEmits16.IcyEmitsGame"}, {"settings": {"Epic Mode": true, "map": "Creative Thoughts"}, "type": "FlappyBird.FlappyBirdGame"}, {"settings": {"Respawn Times": 1, "Score to Win": 1, "Time Limit": 40, "map": "Football Stadium"}, "type": "EggGame.EggGame"}, {"settings": {"Balance Total Lives": false, "Epic Mode": false, "Lives Per Player": 1, "Respawn Times": 1, "Solo Mode": false, "Time Limit": 300, "map": "Wooden Floor"}, "type": "BlockDash.BlockDashGame"}, {"settings": {"Epic Mode": true, "Kills to Win Per Player": 5, "Respawn Times": 0.25, "Time Limit": 300, "map": "Rampage"}, "type": "Yeeting-party.BoxingGame"}, {"settings": {"Epic Mode": false, "Model Type": 1, "Respawn Times": 1, "TNT Hitpoints": 25000, "Time Limit": 300, "map": "Football Stadium"}, "type": "Heist.TNTTeamGame"}, {"settings": {"Epic Mode": false, "Kills to Win Per Player": 5, "Respawn Times": 1, "Time Limit": 300, "map": "Step Right Up"}, "type": "CanonFight.CanonFightGame"}, {"settings": {"Balance Total Lives": true, "Epic Mode": true, "Lives Per Player": 2, "Respawn Times": 0.25, "Solo Mode": false, "Time Limit": 300, "map": "FloatingIsland"}, "type": "DuelElimination.DuelEliminationGame"}, {"settings": {"Enable Bombs": true, "Epic Mode": false, "Infection Spread Rate": 0.03, "Max Infected Size": 6, "Max Size Increases Every": 20, "Mines": 10, "Sec/Extra Mine": 9, "map": "Football Stadium"}, "type": "Infection.Infection"}, {"settings": {"Bomb Spawning": 2000, "Entire Team Must Finish": false, "Epic Mode": true, "Laps": 2, "Mine Spawning": 4000, "Time Limit": 300, "map": "Big G"}, "type": "Reverserace.ReverseRaceGame"}, {"settings": {"Bomb Spawning": 2000, "Entire Team Must Finish": false, "Epic Mode": false, "Laps": 1, "Mine Spawning": 4000, "Time Limit": 120, "map": "Football Stadium"}, "type": "SquidRace.SquidRaceGame"}, {"settings": {"Disable Bombs": false, "Disable Punch": true, "Enable Bottom Credits": true, "Epic Mode": true, "Icy Floor": true, "Night Mode": false, "Respawn Times": 0.25, "Score to Win": 7, "Time Limit": 300, "map": "Closed Arena"}, "type": "VolleyBall.VolleyBallGame"}, {"settings": {"Epic Mode": true, "Kills to Win Per Player": 3, "Respawn Times": 0.25, "Time Limit": 120, "map": "Courtyard"}, "type": "ms_BombWar.BombWar"}], "sara_full_epic_best_playlist": [{"settings": {"Balance Total Lives": true, "Epic Mode": true, "Lives Per Player": 2, "Respawn Times": 0.25, "Solo Mode": false, "Time Limit": 0, "map": "Crag Castle"}, "type": "bastd.game.elimination.EliminationGame"}, {"settings": {"Enable Bottom Credit": false, "Enable Punching": false, "Enable Running": true, "Epic Mode": true, "Time Limit": 0, "map": "Doom Shroom"}, "type": "MusicalFlags.MFGame"}, {"settings": {"Boxing Gloves": true, "Epic Mode": true, "Icy Floor": true, "Respawn Times": 0.25, "Score to Win": 6, "Time Limit": 0, "map": "Football Stadium"}, "type": "soccer.HockeyGame"}, {"settings": {"Epic Mode": true, "Lives (0 = Unlimited)": 2, "Respawn Times": 0.5, "Time Limit": 0, "map": "Step Right Up"}, "type": "SuperSmash.SuperSmash"}, {"settings": {"Balance Total Lives": true, "Epic Mode": true, "Lives Per Player": 2, "Respawn Times": 0.25, "Solo Mode": false, "Time Limit": 0, "map": "Monkey Face"}, "type": "bastd.game.elimination.EliminationGame"}, {"settings": {"Balance Total Lives": false, "Epic Mode": true, "Lives Per Player": 2, "Players Per Team In Arena": 2, "Respawn Times": 0.25, "Time Limit": 0, "map": "Tip Top"}, "type": "alliance_elimination.AllianceEliminationGame"}, {"settings": {"Epic Mode": true, "Lives (0 = Unlimited)": 2, "Respawn Times": 0.25, "Time Limit": 0, "map": "Courtyard"}, "type": "SuperSmash.SuperSmash"}, {"settings": {"Chosen One Gets Gloves": true, "Chosen One Gets Shield": false, "Chosen One Time": 20, "Epic Mode": true, "Respawn Times": 0.25, "Time Limit": 0, "map": "Rampage"}, "type": "bastd.game.chosenone.ChosenOneGame"}, {"settings": {"Epic Mode": true, "Respawn Times": 0.25, "Score to Win": 2, "Time Limit": 0, "map": "Tip Top"}, "type": "bastd.game.assault.AssaultGame"}, {"settings": {"Epic Mode": true, "Kills to Win Per Player": 5, "Respawn Times": 0.25, "Time Limit": 0, "map": "Bridgit"}, "type": "bastd.game.deathmatch.DeathMatchGame"}, {"settings": {"Epic Mode": true, "Respawn Times": 0.25, "Score to Win": 2, "Time Limit": 0, "map": "Rampage"}, "type": "bastd.game.assault.AssaultGame"}, {"settings": {"Chosen One Gets Gloves": true, "Chosen One Gets Shield": false, "Chosen One Time": 20, "Epic Mode": true, "Respawn Times": 0.25, "Time Limit": 0, "map": "Tip Top"}, "type": "bastd.game.chosenone.ChosenOneGame"}, {"settings": {"Epic Mode": true, "Respawn Times": 0.25, "Score to Win": 3, "Time Limit": 0, "map": "Zigzag"}, "type": "bastd.game.assault.AssaultGame"}, {"settings": {"Balance Total Lives": true, "Epic Mode": true, "Lives Per Player": 2, "Players Per Team In Arena": 4, "Respawn Times": 0.25, "Time Limit": 0, "map": "Doom Shroom"}, "type": "alliance_elimination.AllianceEliminationGame"}, {"settings": {"Chosen One Gets Gloves": true, "Chosen One Gets Shield": false, "Chosen One Time": 20, "Epic Mode": true, "Respawn Times": 0.25, "Time Limit": 0, "map": "Football Stadium"}, "type": "bastd.game.chosenone.ChosenOneGame"}, {"settings": {"Epic Mode": true, "Respawn Times": 0.25, "Score to Win": 2, "Time Limit": 0, "map": "Courtyard"}, "type": "bastd.game.assault.AssaultGame"}, {"settings": {"Epic Mode": true, "Respawn Times": 0.25, "Time Limit": 0, "map": "Zigzag"}, "type": "bastd.game.conquest.ConquestGame"}, {"settings": {"Bomb Spawning": 2000, "Entire Team Must Finish": false, "Epic Mode": true, "Laps": 2, "Mine Spawning": 4000, "Time Limit": 0, "map": "Big G"}, "type": "bastd.game.race.RaceGame"}, {"settings": {"Balance Total Lives": true, "Epic Mode": true, "Lives Per Player": 2, "Players Per Team In Arena": 2, "Respawn Times": 0.25, "Time Limit": 0, "map": "The Pad"}, "type": "alliance_elimination.AllianceEliminationGame"}, {"settings": {"Hold Time": 20, "Respawn Times": 0.25, "Time Limit": 0, "map": "The Pad"}, "type": "bastd.game.keepaway.KeepAwayGame"}, {"settings": {"Respawn Times": 1.0, "Score to Win": 1, "Time Limit": 40, "map": "Football Stadium"}, "type": "EggGame.EggGame"}, {"settings": {"Balance Total Lives": true, "Epic Mode": true, "Lives Per Player": 2, "Players Per Team In Arena": 2, "Respawn Times": 0.25, "Time Limit": 0, "map": "Bridgit"}, "type": "alliance_elimination.AllianceEliminationGame"}, {"settings": {"Epic Mode": true, "Respawn Times": 0.25, "Time Limit": 0, "map": "Step Right Up"}, "type": "bastd.game.conquest.ConquestGame"}, {"settings": {"Epic Mode": true, "Respawn Times": 0.25, "Score to Win": 3, "Time Limit": 0, "map": "Crag Castle"}, "type": "bastd.game.assault.AssaultGame"}, {"settings": {"Epic Mode": true, "Kills to Win Per Player": 5, "Respawn Times": 0.25, "Time Limit": 0, "map": "Rampage"}, "type": "Yeeting-party.BoxingGame"}, {"settings": {"Epic Mode": true, "Model Type": 1, "Respawn Times": 0.25, "TNT Hitpoints": 5000, "Time Limit": 0, "map": "Football Stadium"}, "type": "Heist.TNTTeamGame"}, {"settings": {"Epic Mode": true, "Respawn Times": 0.25, "Score to Win": 3, "Time Limit": 0, "map": "Step Right Up"}, "type": "bastd.game.assault.AssaultGame"}, {"settings": {"Balance Total Lives": true, "Epic Mode": true, "Lives Per Player": 1, "Players Per Team In Arena": 3, "Respawn Times": 0.25, "Time Limit": 0, "map": "Football Stadium"}, "type": "alliance_elimination.AllianceEliminationGame"}, {"settings": {"Epic Mode": true, "Flag Idle Return Time": 300, "Flag Touch Return Time": 0, "Respawn Times": 0.25, "Score to Win": 2, "Time Limit": 0, "map": "Roundabout"}, "type": "bastd.game.capturetheflag.CaptureTheFlagGame"}, {"settings": {"Epic Mode": true, "Kills to Win Per Player": 6, "Respawn Times": 0.25, "Time Limit": 0, "map": "Rampage"}, "type": "bastd.game.deathmatch.DeathMatchGame"}, {"settings": {"Disable Bombs": false, "Disable Punch": true, "Enable Bottom Credits": false, "Epic Mode": true, "Icy Floor": true, "Night Mode": true, "Respawn Times": 0.25, "Score to Win": 5, "Time Limit": 0, "map": "Open Field"}, "type": "volleyball.VolleyBallGame"}]}, "launchCount": 403, "lc14173": 1, "lc14292": 1} \ No newline at end of file +{ + "Achievements": { + "Boom Goes the Dynamite": { + "Complete": true + }, + "Boxer": { + "Complete": true + }, + "Dual Wielding": { + "Complete": false + }, + "Flawless Victory": { + "Complete": false + }, + "Free Loader": { + "Complete": true + }, + "Gold Miner": { + "Complete": true + }, + "Got the Moves": { + "Complete": false + }, + "In Control": { + "Complete": false + }, + "Last Stand God": { + "Complete": true + }, + "Last Stand Master": { + "Complete": true + }, + "Last Stand Wizard": { + "Complete": true + }, + "Mine Games": { + "Complete": true + }, + "Off You Go Then": { + "Complete": true + }, + "Onslaught God": { + "Complete": false + }, + "Onslaught Master": { + "Complete": true + }, + "Onslaught Training Victory": { + "Complete": true + }, + "Onslaught Wizard": { + "Complete": true + }, + "Precision Bombing": { + "Complete": true + }, + "Pro Boxer": { + "Complete": true + }, + "Pro Football Shutout": { + "Complete": true + }, + "Pro Football Victory": { + "Complete": true + }, + "Pro Onslaught Victory": { + "Complete": true + }, + "Pro Runaround Victory": { + "Complete": true + }, + "Rookie Football Shutout": { + "Complete": true + }, + "Rookie Football Victory": { + "Complete": true + }, + "Rookie Onslaught Victory": { + "Complete": true + }, + "Runaround God": { + "Complete": false + }, + "Runaround Master": { + "Complete": true + }, + "Runaround Wizard": { + "Complete": true + }, + "Sharing is Caring": { + "Complete": false + }, + "Stayin' Alive": { + "Complete": true + }, + "Super Mega Punch": { + "Complete": true + }, + "Super Punch": { + "Complete": true + }, + "TNT Terror": { + "Complete": true + }, + "Team Player": { + "Complete": true + }, + "The Great Wall": { + "Complete": true + }, + "The Wall": { + "Complete": true + }, + "Uber Football Shutout": { + "Complete": true + }, + "Uber Football Victory": { + "Complete": true + }, + "Uber Onslaught Victory": { + "Complete": true + }, + "Uber Runaround Victory": { + "Complete": true + } + }, + "Auto Account State": "Server", + "Auto Balance Teams": true, + "Bear Coin": 1040, + "Bear Store": { + "Buy Firebombs": false, + "Buy Option": false, + "Buy Percentage": false, + "Promo Code": { + "B-0mB3RYT2z": [ + true, + 910 + ], + "B-Asd14mON9G0D": [ + true, + 910 + ], + "D-rAcK0cJ23": [ + true, + 910 + ], + "E-Am54igO42Os": [ + true, + 600 + ], + "E-M4uN3K34XB": [ + true, + 840 + ], + "E-a27ZO6f3Y": [ + true, + 600 + ], + "G-Am54igO42Os": [ + true, + 1100 + ], + "P-tRo8nM8dZ": [ + true, + 2800 + ], + "PM-731ClcAF": [ + true, + 50000 + ], + "Y-tU2B3S": [ + true, + 500 + ] + } + }, + "Campaigns": {}, + "Custom Team Colors": [ + [ + 0.8, + 0.0, + 0.6 + ], + [ + 0.0, + 1.0, + 0.8 + ] + ], + "Custom Team Names": [ + "vortex", + "Honor" + ], + "Default Player Profiles": { + "Client Input Device #1": "__account__", + "Client Input Device #10": "\ua9c1\ud83d\udcab\u2022NFR\u2022\ud83d\udcab\ua9c2", + "Client Input Device #2": "\u0443\u03b1\u0455\u043d \u2654", + "Client Input Device #3": "__account__", + "Client Input Device #4": "__account__", + "Client Input Device #5": "Bandar", + "Client Input Device #6": "all dog", + "Client Input Device #7": "__account__", + "Client Input Device #8": "MINNAL \u1b44MURALI\u0fd0", + "Client Input Device #9": "_random" + }, + "Fleet Zone Pings": { + "prod": { + "bangkok": 26.429095985833555, + "hong_kong": 35.74068416003138, + "hyderabad": 44.0639028204605, + "jakarta": 17.52473648963496, + "kolkata": 60.89354034792632, + "manila": 31.664122780319303, + "mumbai": 75.16153318667784, + "perth": 261.18016010150313, + "singapore": 2.0734858927316964, + "taipei": 48.98719755932689 + } + }, + "Free-for-All Max Players": 25, + "Free-for-All Playlist Randomize": true, + "Free-for-All Playlist Selection": "__default__", + "Free-for-All Playlists": {}, + "Idle Exit Minutes": null, + "Local Account Name": "Server7611774", + "PPM Settings": { + "Healing Damage PTG": 72, + "Powers Gravity": true, + "Powerup Name": true, + "Powerup Scale": 1.0, + "Powerup Style": "Auto", + "Powerup Time": true, + "Powerup With Shield": false, + "Powerups": { + "Champion": 0, + "Curse": 1, + "ExtraLyfe": 2, + "False Bombs": 0, + "Fire Bombs": 3, + "Fly Bombs": 2, + "Goodbye": 2, + "Healing Damage": 0, + "Health": 1, + "Ice Bombs": 3, + "Ice Man": 1, + "Impact Bombs": 3, + "Impairment Bombs": 2, + "Mine Bombs": 2, + "Multi Bomb": 0, + "PWP": 0, + "Punch": 0, + "Radius": 0, + "Shield": 0, + "Speed": 2, + "Spunch": 0, + "Sticky Bombs": 3, + "Tank Shield": 0, + "Triple": 3 + }, + "Tank Shield PTG": 96 + }, + "PSTR": 0, + "Player Profiles": { + "__account__": { + "character": "Spaz", + "color": [ + 0.5, + 0.25, + 1.0 + ], + "highlight": [ + 0.5, + 0.25, + 1.0 + ] + } + }, + "Plugins": { + "custom_hooks.modSetup": { + "enabled": true + }, + "plugins.Init": { + "enabled": true + } + }, + "Port": 43210, + "Region Pings": { + "af-south-1": 328.2357999996748, + "ap-northeast-1": 150.0941541948123, + "ap-northeast-2": 160.2201884064998, + "ap-south-1": 45.05286179925315, + "ap-southeast-1": 101.91129060697858, + "ap-southeast-2": 183.6228000029223, + "ca-central-1": 262.4569968022115, + "eu-central-1": 155.88790780561976, + "eu-north-1": 181.94498299446423, + "eu-south-1": 156.48616400256287, + "eu-west-1": 179.42955539320246, + "eu-west-2": 158.43393659518915, + "eu-west-3": 170.620519401622, + "me-south-1": 78.16982959693996, + "sa-east-1": 345.57150000182446, + "us-east-1": 238.92560360513744, + "us-east-2": 257.30932620124076, + "us-west-1": 255.34800000605173, + "us-west-2": 292.9734999925131 + }, + "Selected Coop Game": "Easy:Rookie Onslaught", + "Show Tutorial": false, + "Signed In Last Session": false, + "Team Game Max Player": 25, + "Team Game Max Players": 25, + "Team Tournament Playlist Randomize": true, + "Team Tournament Playlist Selection": "sara_full_epic_best_playlist", + "Team Tournament Playlists": { + "sara_full_epic_best_playlist": [ + { + "settings": { + "Balance Total Lives": true, + "Epic Mode": true, + "Lives Per Player": 2, + "Respawn Times": 0.25, + "Solo Mode": false, + "Time Limit": 0, + "map": "Crag Castle" + }, + "type": "bastd.game.elimination.EliminationGame" + }, + { + "settings": { + "Enable Bottom Credit": false, + "Enable Punching": false, + "Enable Running": true, + "Epic Mode": true, + "Time Limit": 0, + "map": "Doom Shroom" + }, + "type": "MusicalFlags.MFGame" + }, + { + "settings": { + "Boxing Gloves": true, + "Epic Mode": true, + "Icy Floor": true, + "Respawn Times": 0.25, + "Score to Win": 6, + "Time Limit": 0, + "map": "Football Stadium" + }, + "type": "soccer.HockeyGame" + }, + { + "settings": { + "Epic Mode": true, + "Lives (0 = Unlimited)": 2, + "Respawn Times": 0.5, + "Time Limit": 0, + "map": "Step Right Up" + }, + "type": "SuperSmash.SuperSmash" + }, + { + "settings": { + "Balance Total Lives": true, + "Epic Mode": true, + "Lives Per Player": 2, + "Respawn Times": 0.25, + "Solo Mode": false, + "Time Limit": 0, + "map": "Monkey Face" + }, + "type": "bastd.game.elimination.EliminationGame" + }, + { + "settings": { + "Balance Total Lives": false, + "Epic Mode": true, + "Lives Per Player": 2, + "Players Per Team In Arena": 2, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Tip Top" + }, + "type": "alliance_elimination.AllianceEliminationGame" + }, + { + "settings": { + "Epic Mode": true, + "Lives (0 = Unlimited)": 2, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Courtyard" + }, + "type": "SuperSmash.SuperSmash" + }, + { + "settings": { + "Chosen One Gets Gloves": true, + "Chosen One Gets Shield": false, + "Chosen One Time": 20, + "Epic Mode": true, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Rampage" + }, + "type": "bastd.game.chosenone.ChosenOneGame" + }, + { + "settings": { + "Epic Mode": true, + "Respawn Times": 0.25, + "Score to Win": 2, + "Time Limit": 0, + "map": "Tip Top" + }, + "type": "bastd.game.assault.AssaultGame" + }, + { + "settings": { + "Epic Mode": true, + "Kills to Win Per Player": 5, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Bridgit" + }, + "type": "bastd.game.deathmatch.DeathMatchGame" + }, + { + "settings": { + "Epic Mode": true, + "Respawn Times": 0.25, + "Score to Win": 2, + "Time Limit": 0, + "map": "Rampage" + }, + "type": "bastd.game.assault.AssaultGame" + }, + { + "settings": { + "Chosen One Gets Gloves": true, + "Chosen One Gets Shield": false, + "Chosen One Time": 20, + "Epic Mode": true, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Tip Top" + }, + "type": "bastd.game.chosenone.ChosenOneGame" + }, + { + "settings": { + "Epic Mode": true, + "Respawn Times": 0.25, + "Score to Win": 3, + "Time Limit": 0, + "map": "Zigzag" + }, + "type": "bastd.game.assault.AssaultGame" + }, + { + "settings": { + "Balance Total Lives": true, + "Epic Mode": true, + "Lives Per Player": 2, + "Players Per Team In Arena": 4, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Doom Shroom" + }, + "type": "alliance_elimination.AllianceEliminationGame" + }, + { + "settings": { + "Chosen One Gets Gloves": true, + "Chosen One Gets Shield": false, + "Chosen One Time": 20, + "Epic Mode": true, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Football Stadium" + }, + "type": "bastd.game.chosenone.ChosenOneGame" + }, + { + "settings": { + "Epic Mode": true, + "Respawn Times": 0.25, + "Score to Win": 2, + "Time Limit": 0, + "map": "Courtyard" + }, + "type": "bastd.game.assault.AssaultGame" + }, + { + "settings": { + "Epic Mode": true, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Zigzag" + }, + "type": "bastd.game.conquest.ConquestGame" + }, + { + "settings": { + "Bomb Spawning": 2000, + "Entire Team Must Finish": false, + "Epic Mode": true, + "Laps": 2, + "Mine Spawning": 4000, + "Time Limit": 0, + "map": "Big G" + }, + "type": "bastd.game.race.RaceGame" + }, + { + "settings": { + "Balance Total Lives": true, + "Epic Mode": true, + "Lives Per Player": 2, + "Players Per Team In Arena": 2, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "The Pad" + }, + "type": "alliance_elimination.AllianceEliminationGame" + }, + { + "settings": { + "Hold Time": 20, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "The Pad" + }, + "type": "bastd.game.keepaway.KeepAwayGame" + }, + { + "settings": { + "Respawn Times": 1.0, + "Score to Win": 1, + "Time Limit": 40, + "map": "Football Stadium" + }, + "type": "EggGame.EggGame" + }, + { + "settings": { + "Balance Total Lives": true, + "Epic Mode": true, + "Lives Per Player": 2, + "Players Per Team In Arena": 2, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Bridgit" + }, + "type": "alliance_elimination.AllianceEliminationGame" + }, + { + "settings": { + "Epic Mode": true, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Step Right Up" + }, + "type": "bastd.game.conquest.ConquestGame" + }, + { + "settings": { + "Epic Mode": true, + "Respawn Times": 0.25, + "Score to Win": 3, + "Time Limit": 0, + "map": "Crag Castle" + }, + "type": "bastd.game.assault.AssaultGame" + }, + { + "settings": { + "Epic Mode": true, + "Kills to Win Per Player": 5, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Rampage" + }, + "type": "Yeeting-party.BoxingGame" + }, + { + "settings": { + "Epic Mode": true, + "Model Type": 1, + "Respawn Times": 0.25, + "TNT Hitpoints": 5000, + "Time Limit": 0, + "map": "Football Stadium" + }, + "type": "Heist.TNTTeamGame" + }, + { + "settings": { + "Epic Mode": true, + "Respawn Times": 0.25, + "Score to Win": 3, + "Time Limit": 0, + "map": "Step Right Up" + }, + "type": "bastd.game.assault.AssaultGame" + }, + { + "settings": { + "Balance Total Lives": true, + "Epic Mode": true, + "Lives Per Player": 1, + "Players Per Team In Arena": 3, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Football Stadium" + }, + "type": "alliance_elimination.AllianceEliminationGame" + }, + { + "settings": { + "Epic Mode": true, + "Flag Idle Return Time": 300, + "Flag Touch Return Time": 0, + "Respawn Times": 0.25, + "Score to Win": 2, + "Time Limit": 0, + "map": "Roundabout" + }, + "type": "bastd.game.capturetheflag.CaptureTheFlagGame" + }, + { + "settings": { + "Epic Mode": true, + "Kills to Win Per Player": 6, + "Respawn Times": 0.25, + "Time Limit": 0, + "map": "Rampage" + }, + "type": "bastd.game.deathmatch.DeathMatchGame" + }, + { + "settings": { + "Disable Bombs": false, + "Disable Punch": true, + "Enable Bottom Credits": false, + "Epic Mode": true, + "Icy Floor": true, + "Night Mode": true, + "Respawn Times": 0.25, + "Score to Win": 5, + "Time Limit": 0, + "map": "Open Field" + }, + "type": "volleyball.VolleyBallGame" + } + ] + }, + "launchCount": 420, + "lc14173": 1, + "lc14292": 1 +} \ No newline at end of file diff --git a/dist/ba_root/config.json.prev b/dist/ba_root/config.json.prev index 43e2736..06f91ae 100644 --- a/dist/ba_root/config.json.prev +++ b/dist/ba_root/config.json.prev @@ -126,7 +126,7 @@ }, "Auto Account State": "Server", "Auto Balance Teams": true, - "Bear Coin": 1033, + "Bear Coin": 1040, "Bear Store": { "Buy Firebombs": false, "Buy Option": false, @@ -194,10 +194,10 @@ "Default Player Profiles": { "Client Input Device #1": "__account__", "Client Input Device #10": "\ua9c1\ud83d\udcab\u2022NFR\u2022\ud83d\udcab\ua9c2", - "Client Input Device #2": "Mithi wins", + "Client Input Device #2": "\u0443\u03b1\u0455\u043d \u2654", "Client Input Device #3": "__account__", "Client Input Device #4": "__account__", - "Client Input Device #5": "billy", + "Client Input Device #5": "Bandar", "Client Input Device #6": "all dog", "Client Input Device #7": "__account__", "Client Input Device #8": "MINNAL \u1b44MURALI\u0fd0", @@ -205,16 +205,16 @@ }, "Fleet Zone Pings": { "prod": { - "bahrain": 50.1930877956911, - "bangkok": 87.88689586078544, - "delhi": 23.65389847498591, - "dubai": 27.745292825515207, - "hong_kong": 95.69818103595026, - "hyderabad": 33.70670963448356, - "kolkata": 25.623328417314042, - "mumbai": 1.1657054016322945, - "singapore": 52.400881985522574, - "tel_aviv": 144.68723299796693 + "bangkok": 25.618015334941447, + "hong_kong": 35.25494678737596, + "hyderabad": 45.24563904199749, + "jakarta": 18.14538147021085, + "kolkata": 68.43316691368818, + "manila": 31.472366586327553, + "mumbai": 55.83524323767051, + "perth": 262.0663621928543, + "singapore": 2.4549079868011177, + "taipei": 48.856315108481795 } }, "Free-for-All Max Players": 25, @@ -283,7 +283,7 @@ "enabled": true } }, - "Port": 43222, + "Port": 43210, "Region Pings": { "af-south-1": 328.2357999996748, "ap-northeast-1": 150.0941541948123, @@ -313,634 +313,6 @@ "Team Tournament Playlist Randomize": true, "Team Tournament Playlist Selection": "sara_full_epic_best_playlist", "Team Tournament Playlists": { - "bcs_fun_all_games": [ - { - "settings": { - "Balance Total Lives": true, - "Epic Mode": true, - "Lives Per Player": 2, - "Respawn Times": 0.5, - "Solo Mode": true, - "Time Limit": 300, - "map": "Rampage" - }, - "type": "BroElimination.BroEliminaition" - }, - { - "settings": { - "Respawn Times": 0.1, - "Score to Win": 3, - "Time Limit": 300, - "map": "Creative Thoughts" - }, - "type": "air_soccer.AirSoccerGame" - }, - { - "settings": { - "Boxing Gloves": true, - "Epic Mode": true, - "Ice Floor": true, - "Respawn Times": 0.5, - "Score to Win": 6, - "Time Limit": 300, - "map": "Hockey Stadium" - }, - "type": "soccerhockey.HockeyGame" - }, - { - "settings": { - "Boxing Gloves": true, - "Epic Mode": true, - "Icy Floor": true, - "Respawn Times": 0.25, - "Score to Win": 6, - "Time Limit": 300, - "map": "Football Stadium" - }, - "type": "soccer.HockeyGame" - }, - { - "settings": { - "Boxing Gloves": false, - "Epic Mode": true, - "Icy Floor": true, - "Respawn Times": 0.25, - "Score to Win": 4, - "Time Limit": 600, - "map": "Soccer Stadium Pro" - }, - "type": "soccer.HockeyGame" - }, - { - "settings": { - "Boxing Gloves": false, - "Epic Mode": true, - "Icy Floor": false, - "Respawn Times": 0.5, - "Score to Win": 6, - "Time Limit": 300, - "map": "Football Stadium" - }, - "type": "soccer.HockeyGame" - }, - { - "settings": { - "Epic Mode": true, - "Lives (0 = Unlimited)": 2, - "Respawn Times": 0.5, - "Time Limit": 300, - "map": "Step Right Up" - }, - "type": "SuperSmash.SuperSmash" - }, - { - "settings": { - "Epic Mode": true, - "Lives (0 = Unlimited)": 2, - "Respawn Times": 0.25, - "Time Limit": 300, - "map": "Courtyard" - }, - "type": "SuperSmash.SuperSmash" - }, - { - "settings": { - "Balance Total Lives": true, - "Epic Mode": false, - "Lives Per Player": 1, - "Players Per Team In Arena": 2, - "Respawn Times": 0.5, - "Time Limit": 300, - "map": "Zigzag Stubbed" - }, - "type": "alliance_elimination.AllianceEliminationGame" - }, - { - "settings": { - "Chosen One Gets Gloves": false, - "Chosen One Gets Shield": false, - "Chosen One Time": 30, - "Epic Mode": false, - "Respawn Times": 0.25, - "Time Limit": 300, - "map": "Lake of Death" - }, - "type": "bastd.game.chosenone.ChosenOneGame" - }, - { - "settings": { - "Epic Mode": false, - "Kills to Win Per Player": 5, - "Respawn Times": 0.25, - "Time Limit": 300, - "map": "Desert" - }, - "type": "bastd.game.deathmatch.DeathMatchGame" - }, - { - "settings": { - "Epic Mode": false, - "Kills to Win Per Player": 5, - "Respawn Times": 1.0, - "Time Limit": 0, - "map": "Lake of Death" - }, - "type": "bastd.game.deathmatch.DeathMatchGame" - }, - { - "settings": { - "Epic Mode": false, - "Kills to Win Per Player": 5, - "Respawn Times": 0.5, - "Time Limit": 300, - "map": "Creative Thoughts" - }, - "type": "shimla.ShimlaGame" - }, - { - "settings": { - "Allow Lucky Capsules": true, - "Capsules on Death": 2, - "Capsules to Win": 10, - "Epic Mode": false, - "Respawn Times": 0.5, - "Time Limit": 300, - "map": "Courtyard" - }, - "type": "Collector.CollectorGame" - }, - { - "settings": { - "Epic Mode": false, - "Slow Motion Deaths": false, - "map": "Courtyard" - }, - "type": "FlagDay.FlagDayGame" - }, - { - "settings": { - "Respawn Times": 0.5, - "Score to Win": 3, - "Time Limit": 300, - "map": "Soccer Stadium Pro" - }, - "type": "RealSoccer.HockeyGame" - }, - { - "settings": { - "Basic Bombs": true, - "Epic Mode": true, - "Frozen Bombs": true, - "Grabbing only": true, - "Impact Bombs": true, - "Punching only": true, - "Respawn Times": 0.5, - "Sticky Bombs": true, - "Time Limit": 300, - "map": "\ue019Powerups Factory" - }, - "type": "ArmsRace.ArmsRaceGame" - }, - { - "settings": { - "Countdown Time Each Round": 45, - "Epic Mode": false, - "Kill player on ground": true, - "Random Spawn Point (Team)": false, - "Respawn Times": 1, - "Score to Win Per Team": 5, - "Time Limit": 300, - "[On score] Single Celebrate": true, - "[On score] Single Teleport": true, - "map": "Tower D" - }, - "type": "Tower_Rush.BaseRaidGame" - }, - { - "settings": { - "Enable speed": false, - "Epic Mode": true, - "Powerups Spawn": true, - "Respawn Times": 1, - "Score to Win": 3, - "Time Limit": 300, - "map": "BasketBall Stadium V2" - }, - "type": "baBasketBomb.BasketGame" - }, - { - "settings": { - "Epic Mode": false, - "Large Box Count": 3, - "Points to win per Player": 1000, - "Respawn Times": 0.5, - "Small Box Count": 1, - "Time Limit": 300, - "map": "Football Stadium" - }, - "type": "crazyBoxes.CrazyBoxGame" - }, - { - "settings": { - "Epic Mode": true, - "Points to Win Per Player": 2, - "Respawn Times": 1, - "Target Indicator": 1, - "Time Limit": 300, - "Time to Kill": 7, - "map": "Football Stadium" - }, - "type": "GetTheTarget.GetTheTargetGame" - }, - { - "settings": { - "Balance Total Lives": false, - "Epic Mode": false, - "Lives Per Player": 1, - "Respawn Times": 1, - "Solo Mode": false, - "Time Limit": 300, - "map": "Football Stadium" - }, - "type": "GravityFalls.GFGame" - }, - { - "settings": { - "Epic Mode": true, - "Respawn Times": 0.5, - "Score to Win": 3, - "Time Limit": 300, - "map": "Bridgit Parallelo" - }, - "type": "bastd.game.assault.AssaultGame" - }, - { - "settings": { - "Epic Mode": false, - "map": "Wooden Floor" - }, - "type": "UFOAttackGame.UFOAttackGame" - }, - { - "settings": { - "Balance Total Lives": true, - "Epic Mode": true, - "Lives Per Player": 3, - "Players Per Team In Arena": 2, - "Respawn Times": 0.25, - "Time Limit": 300, - "map": "Bridgit Parallelo" - }, - "type": "alliance_elimination.AllianceEliminationGame" - }, - { - "settings": { - "Epic Mode": false, - "Respawn Times": 1, - "Time Limit": 300, - "map": "Bridgit Mash" - }, - "type": "bastd.game.conquest.ConquestGame" - }, - { - "settings": { - "Boxing Gloves": false, - "Epic Mode": false, - "Icy Floor": true, - "Respawn Times": 0.1, - "Score to Win": 7, - "Time Limit": 60, - "map": "Soccer Stadium Pro" - }, - "type": "RealSoccer.HockeyGame" - }, - { - "settings": { - "Balance Total Lives": true, - "Epic Mode": true, - "Lives Per Player": 2, - "Respawn Times": 0.5, - "Solo Mode": true, - "Time Limit": 300, - "map": "\ue019The Limbo" - }, - "type": "bastd.game.elimination.EliminationGame" - }, - { - "settings": { - "Hold Time": 30, - "Respawn Times": 1, - "Time Limit": 300, - "map": "\ue019Platforms" - }, - "type": "bastd.game.kingofthehill.KingOfTheHillGame" - }, - { - "settings": { - "Balloon Mode": false, - "Difficulty": 0.15, - "Distractor Bones": 2, - "Enable Bananas": true, - "Epic Mode": true, - "Immortality": true, - "Mesh Color": 4, - "Respawn Times": 0.5, - "Score to Win": 3, - "Space Under the Mesh": true, - "Time Limit": 300, - "Timer": 3, - "Type of Hot Bomb": 0, - "map": "Hot Bomb Map" - }, - "type": "Hot-Bomb.HotBombGame" - }, - { - "settings": { - "Epic Mode": true, - "Respawn Times": 0.5, - "Score to Win": 3, - "Time Limit": 300, - "map": "\ue019Neo Zone" - }, - "type": "bastd.game.assault.AssaultGame" - }, - { - "settings": { - "Epic Mode": false, - "Flag Idle Return Time": 25, - "Flag Touch Return Time": 8, - "Respawn Times": 1, - "Score to Win": 3, - "Time Limit": 300, - "map": "\ue019Big H" - }, - "type": "bastd.game.capturetheflag.CaptureTheFlagGame" - }, - { - "settings": { - "Enable Bottom Credit": true, - "Enable Punching": false, - "Enable Running": false, - "Epic Mode": false, - "Time Limit": 300, - "map": "Doom Shroom" - }, - "type": "MusicalFlags.MFGame" - }, - { - "settings": { - "Epic Mode": false, - "map": "Rampage" - }, - "type": "TnT_Error.TntErrorGame" - }, - { - "settings": { - "Balance Total Lives": false, - "Epic Mode": false, - "Lives Per Player": 2, - "Respawn Times": 0.5, - "Solo Mode": false, - "Time Limit": 300, - "map": "Football Stadium" - }, - "type": "safe_zone.SafeZoneGame" - }, - { - "settings": { - "Enable Bomb": false, - "Enable Jump": false, - "Enable Pickup": false, - "Epic Mode": true, - "Kills to Win Per Player": 12, - "Obstacles": true, - "Obstacles Count": 16, - "Obstacles Form": 0, - "Obstacles Mirror Shots": false, - "Random Obstacles Color": false, - "Respawn Times": 0.25, - "Speed": true, - "Time Limit": 300, - "Weapon Type": 0, - "map": "Football Stadium" - }, - "type": "quake.game.QuakeGame" - }, - { - "settings": { - "Epic Mode": true, - "Grant Powers on Score": true, - "Night Mode": true, - "Respawn Times": 0.5, - "Score to Win": 1, - "Time Limit": 300, - "map": "Football Stadium" - }, - "type": "BigBall.BBGame" - }, - { - "settings": { - "Enable Bottom Credits": true, - "Epic Mode": false, - "map": "Sky Tiles" - }, - "type": "MemoryGame.MGgame" - }, - { - "settings": { - "Bomb Spawning": 2000, - "Entire Team Must Finish": false, - "Epic Mode": true, - "Laps": 3, - "Mine Spawning": 4000, - "Time Limit": 120, - "map": "InTheAir" - }, - "type": "StumbleRace.StumbleRaceGame" - }, - { - "settings": { - "Epic Mode": false, - "Frozen One Gets Gloves": true, - "Frozen One Gets Shield": false, - "Frozen One Time": 30, - "Respawn Times": 1, - "Time Limit": 300, - "map": "Tip Top" - }, - "type": "FrozenOne16.FrozenOneGame" - }, - { - "settings": { - "Epic Mode": false, - "Players as center of interest": true, - "Respawn Times": 1, - "Score to Win": 4, - "Time Limit": 300, - "map": "Football Stadium" - }, - "type": "baDarkFields.DarkFieldsGame" - }, - { - "settings": { - "Epic Mode": true, - "map": "InTheAir" - }, - "type": "SubwayRun.SubwayRunGame" - }, - { - "settings": { - "Balance Total Lives": false, - "Epic Mode": true, - "Lives Per Player": 1, - "Respawn Times": 1, - "Solo Mode": false, - "Time Limit": 120, - "map": "Courtyard" - }, - "type": "LaserTracer.LasorTracerGame" - }, - { - "settings": { - "Epic Mode": false, - "map": "Lake Frigid" - }, - "type": "IcyEmits16.IcyEmitsGame" - }, - { - "settings": { - "Epic Mode": true, - "map": "Creative Thoughts" - }, - "type": "FlappyBird.FlappyBirdGame" - }, - { - "settings": { - "Respawn Times": 1, - "Score to Win": 1, - "Time Limit": 40, - "map": "Football Stadium" - }, - "type": "EggGame.EggGame" - }, - { - "settings": { - "Balance Total Lives": false, - "Epic Mode": false, - "Lives Per Player": 1, - "Respawn Times": 1, - "Solo Mode": false, - "Time Limit": 300, - "map": "Wooden Floor" - }, - "type": "BlockDash.BlockDashGame" - }, - { - "settings": { - "Epic Mode": true, - "Kills to Win Per Player": 5, - "Respawn Times": 0.25, - "Time Limit": 300, - "map": "Rampage" - }, - "type": "Yeeting-party.BoxingGame" - }, - { - "settings": { - "Epic Mode": false, - "Model Type": 1, - "Respawn Times": 1, - "TNT Hitpoints": 25000, - "Time Limit": 300, - "map": "Football Stadium" - }, - "type": "Heist.TNTTeamGame" - }, - { - "settings": { - "Epic Mode": false, - "Kills to Win Per Player": 5, - "Respawn Times": 1, - "Time Limit": 300, - "map": "Step Right Up" - }, - "type": "CanonFight.CanonFightGame" - }, - { - "settings": { - "Balance Total Lives": true, - "Epic Mode": true, - "Lives Per Player": 2, - "Respawn Times": 0.25, - "Solo Mode": false, - "Time Limit": 300, - "map": "FloatingIsland" - }, - "type": "DuelElimination.DuelEliminationGame" - }, - { - "settings": { - "Enable Bombs": true, - "Epic Mode": false, - "Infection Spread Rate": 0.03, - "Max Infected Size": 6, - "Max Size Increases Every": 20, - "Mines": 10, - "Sec/Extra Mine": 9, - "map": "Football Stadium" - }, - "type": "Infection.Infection" - }, - { - "settings": { - "Bomb Spawning": 2000, - "Entire Team Must Finish": false, - "Epic Mode": true, - "Laps": 2, - "Mine Spawning": 4000, - "Time Limit": 300, - "map": "Big G" - }, - "type": "Reverserace.ReverseRaceGame" - }, - { - "settings": { - "Bomb Spawning": 2000, - "Entire Team Must Finish": false, - "Epic Mode": false, - "Laps": 1, - "Mine Spawning": 4000, - "Time Limit": 120, - "map": "Football Stadium" - }, - "type": "SquidRace.SquidRaceGame" - }, - { - "settings": { - "Disable Bombs": false, - "Disable Punch": true, - "Enable Bottom Credits": true, - "Epic Mode": true, - "Icy Floor": true, - "Night Mode": false, - "Respawn Times": 0.25, - "Score to Win": 7, - "Time Limit": 300, - "map": "Closed Arena" - }, - "type": "VolleyBall.VolleyBallGame" - }, - { - "settings": { - "Epic Mode": true, - "Kills to Win Per Player": 3, - "Respawn Times": 0.25, - "Time Limit": 120, - "map": "Courtyard" - }, - "type": "ms_BombWar.BombWar" - } - ], "sara_full_epic_best_playlist": [ { "settings": { @@ -1283,7 +655,7 @@ } ] }, - "launchCount": 403, + "launchCount": 420, "lc14173": 1, "lc14292": 1 } \ No newline at end of file diff --git a/dist/ba_root/mods/__pycache__/coinSystem.cpython-310.opt-1.pyc b/dist/ba_root/mods/__pycache__/coinSystem.cpython-310.opt-1.pyc new file mode 100644 index 0000000..c489e60 Binary files /dev/null and b/dist/ba_root/mods/__pycache__/coinSystem.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/__pycache__/custom_hooks.cpython-310.opt-1.pyc b/dist/ba_root/mods/__pycache__/custom_hooks.cpython-310.opt-1.pyc index 89abc34..9d56bd1 100644 Binary files a/dist/ba_root/mods/__pycache__/custom_hooks.cpython-310.opt-1.pyc and b/dist/ba_root/mods/__pycache__/custom_hooks.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/__pycache__/set.cpython-310.opt-1.pyc b/dist/ba_root/mods/__pycache__/set.cpython-310.opt-1.pyc index 144e459..b6ce089 100644 Binary files a/dist/ba_root/mods/__pycache__/set.cpython-310.opt-1.pyc and b/dist/ba_root/mods/__pycache__/set.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/__pycache__/setting.cpython-310.opt-1.pyc b/dist/ba_root/mods/__pycache__/setting.cpython-310.opt-1.pyc index 6ff54fe..42430e5 100644 Binary files a/dist/ba_root/mods/__pycache__/setting.cpython-310.opt-1.pyc and b/dist/ba_root/mods/__pycache__/setting.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Handlers.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Handlers.cpython-310.opt-1.pyc index 7b27cdb..e34bab5 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Handlers.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Handlers.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Main.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Main.cpython-310.opt-1.pyc index a4749f9..adb5de8 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Main.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Main.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/__init__.cpython-310.opt-1.pyc index e3f6a5b..b422a31 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/floater.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/floater.cpython-310.opt-1.pyc index 0177f8e..4d8f38b 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/floater.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/floater.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/commands/CoinCmds.py b/dist/ba_root/mods/chatHandle/ChatCommands/commands/CoinCmds.py index a72091b..81cdf06 100644 --- a/dist/ba_root/mods/chatHandle/ChatCommands/commands/CoinCmds.py +++ b/dist/ba_root/mods/chatHandle/ChatCommands/commands/CoinCmds.py @@ -90,7 +90,7 @@ def addcoins(accountid: str, amount: int): f.write(json.dumps(bank)) if amount > 0: ba.playsound(ba.getsound("cashRegister")) - print('Transaction successful') + #print('Transaction successful') def addcoin(accountid: str, amount: int): if os.path.exists(BANK_PATH): diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Cheats.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Cheats.cpython-310.opt-1.pyc index 7219b62..ee20f53 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Cheats.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Cheats.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/CoinCmds.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/CoinCmds.cpython-310.opt-1.pyc index 767c457..ddf46e5 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/CoinCmds.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/CoinCmds.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Fun.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Fun.cpython-310.opt-1.pyc index 80e11ef..b3f5358 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Fun.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Fun.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Handlers.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Handlers.cpython-310.opt-1.pyc index e9055d8..c8f4eb0 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Handlers.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Handlers.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Management.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Management.cpython-310.opt-1.pyc index f313352..177f7b5 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Management.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/Management.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/NewCmds.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/NewCmds.cpython-310.opt-1.pyc index ff4672c..43c1440 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/NewCmds.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/NewCmds.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/NormalCommands.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/NormalCommands.cpython-310.opt-1.pyc index a8deb0f..f68a02f 100644 Binary files a/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/NormalCommands.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/ChatCommands/commands/__pycache__/NormalCommands.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/__pycache__/__init__.cpython-310.opt-1.pyc index 760de79..14ef89d 100644 Binary files a/dist/ba_root/mods/chatHandle/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/__pycache__/handlechat.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/__pycache__/handlechat.cpython-310.opt-1.pyc index 6ae52c8..3f6c1f7 100644 Binary files a/dist/ba_root/mods/chatHandle/__pycache__/handlechat.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/__pycache__/handlechat.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/chatFilter/__pycache__/ChatFilter.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/chatFilter/__pycache__/ChatFilter.cpython-310.opt-1.pyc index 30dc2b3..c0b04a2 100644 Binary files a/dist/ba_root/mods/chatHandle/chatFilter/__pycache__/ChatFilter.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/chatFilter/__pycache__/ChatFilter.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/chatFilter/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/chatHandle/chatFilter/__pycache__/__init__.cpython-310.opt-1.pyc index 006bcce..0de16fe 100644 Binary files a/dist/ba_root/mods/chatHandle/chatFilter/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/chatHandle/chatFilter/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/chatHandle/chatFilter/betrayerWarn.so b/dist/ba_root/mods/chatHandle/chatFilter/betrayerWarn.so new file mode 100755 index 0000000..2b5a198 Binary files /dev/null and b/dist/ba_root/mods/chatHandle/chatFilter/betrayerWarn.so differ diff --git a/dist/ba_root/mods/chatHandle/handlechat.py b/dist/ba_root/mods/chatHandle/handlechat.py index 5ce9292..beefb92 100644 --- a/dist/ba_root/mods/chatHandle/handlechat.py +++ b/dist/ba_root/mods/chatHandle/handlechat.py @@ -5,22 +5,25 @@ from serverData import serverdata from chatHandle.ChatCommands import Main from tools import logger, servercheck from chatHandle.chatFilter import ChatFilter +from tools import handle as h from features import votingmachine #from ticket import coinsystem from playersData import pdata import ba import _ba import ba.internal +import threading import setting from datetime import datetime settings = setting.get_settings_data() - + def filter_chat_message(msg, client_id): now = datetime.now() if client_id == -1: if msg.startswith("/"): Main.Command(msg, client_id) + h.servermessage(msg, client_id) return None logger.log(f"Host msg: | {msg}", "chat") return msg @@ -41,9 +44,9 @@ def filter_chat_message(msg, client_id): if msg == None: return logger.log(f'{acid} | {displaystring}| {currentname} | {msg}', "chat") - - if msg.startswith("/"): + if msg.startswith("/"): msg = Main.Command(msg, client_id) + h.servermessage(msg, client_id) if msg == None: return diff --git a/dist/ba_root/mods/coinSystem.py b/dist/ba_root/mods/coinSystem.py index 95c5eb8..7d6a7b1 100644 --- a/dist/ba_root/mods/coinSystem.py +++ b/dist/ba_root/mods/coinSystem.py @@ -75,7 +75,7 @@ def addCoins(accountID: str, amount: int): f.write(json.dumps(bank)) if amount > 0: ba.playsound(ba.getsound('cashRegister')) - print("Transaction successful") + #print("Transaction successful") def getCoins(accountID: str): diff --git a/dist/ba_root/mods/custom_hooks.py b/dist/ba_root/mods/custom_hooks.py index 6545feb..9275e28 100644 --- a/dist/ba_root/mods/custom_hooks.py +++ b/dist/ba_root/mods/custom_hooks.py @@ -31,7 +31,7 @@ from tools import servercheck, ServerUpdate, logger, playlist, servercontroller from playersData import pdata from serverData import serverdata from features import votingmachine -from features import text_on_map, announcement, map +from features import text_on_map, announcement from features import map_fun from spazmod import modifyspaz from tools import notification_manager @@ -51,26 +51,27 @@ def filter_chat_message(msg: str, client_id: int) -> str | None: class modSetup(ba.Plugin): def on_app_running(self): - """Runs when app is launched.""" - bootstraping() - servercheck.checkserver().start() - ServerUpdate.check() - ba.timer(5, account.updateOwnerIps) - if settings["afk_remover"]['enable']: - afk_check.checkIdle().start() - if (settings["useV2Account"]): - - if (ba.internal.get_v1_account_state() == 'signed_in' and ba.internal.get_v1_account_type() == 'V2'): - logging.debug("Account V2 is active") + try: + """Runs when app is launched.""" + bootstraping() + servercheck.checkserver().start() + ServerUpdate.check() + ba.timer(5, account.updateOwnerIps) + if settings["afk_remover"]['enable']: + afk_check.CheckIdle() + if settings["useV2Account"]: + if ba.internal.get_v1_account_state() == 'signed_in' and ba.internal.get_v1_account_type() == 'V2': + logging.debug("Account V2 is active") + else: + logging.warning("Account V2 login require ....stay tuned.") + ba.timer(3, ba.Call(logging.debug, "Starting Account V2 login process....")) + ba.timer(6, account.AccountUtil) else: - logging.warning("Account V2 login require ....stay tuned.") - ba.timer(3, ba.Call(logging.debug, - "Starting Account V2 login process....")) - ba.timer(6, account.AccountUtil) - else: - ba.app.accounts_v2.set_primary_credentials(None) - ba.internal.sign_in_v1('Local') - ba.timer(60, playlist.flush_playlists) + ba.app.accounts_v2.set_primary_credentials(None) + ba.internal.sign_in_v1('Local') + ba.timer(60, playlist.flush_playlists) + except Exception as e: + logging.error(f"An error occurred in on_app_running: {str(e)}") # it works sometimes , but it blocks shutdown so server raise runtime exception, also dump server logs def on_app_shutdown(self): @@ -110,6 +111,7 @@ def bootstraping(): _thread.start_new_thread(notification_manager.dump_cache, ()) # import plugins + from tools import pinfo if settings["elPatronPowerups"]["enable"]: from plugins import elPatronPowerups elPatronPowerups.enable() @@ -132,7 +134,9 @@ def bootstraping(): if settings["colorfullMap"]: from plugins import colorfulmaps2 if settings['backflip']['enable']: - from plugins import Backflip + from plugins import Backflip + if not settings["discordbot"]["enable"]: + pinfo.enable() try: pass # from tools import healthcheck @@ -330,8 +334,7 @@ def on_join_request(ip): def on_map_init(): - text_on_map.textonmap() - map.TEXTONMAP() + text_on_map.textonmap() modifyspaz.setTeamCharacter() diff --git a/dist/ba_root/mods/features/StumbledScoreScreen.so b/dist/ba_root/mods/features/StumbledScoreScreen.so index ce53e62..14d89d7 100644 Binary files a/dist/ba_root/mods/features/StumbledScoreScreen.so and b/dist/ba_root/mods/features/StumbledScoreScreen.so differ diff --git a/dist/ba_root/mods/features/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/__init__.cpython-310.opt-1.pyc index 911c2d4..be248b8 100644 Binary files a/dist/ba_root/mods/features/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/afk_check.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/afk_check.cpython-310.opt-1.pyc index 0928a55..49b111f 100644 Binary files a/dist/ba_root/mods/features/__pycache__/afk_check.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/afk_check.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/announcement.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/announcement.cpython-310.opt-1.pyc index 078b94e..96c2d2c 100644 Binary files a/dist/ba_root/mods/features/__pycache__/announcement.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/announcement.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/complaints.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/complaints.cpython-310.opt-1.pyc index 0b18208..7cb6fa4 100644 Binary files a/dist/ba_root/mods/features/__pycache__/complaints.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/complaints.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/dccmdlogs.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/dccmdlogs.cpython-310.opt-1.pyc index d9a5b01..f274a46 100644 Binary files a/dist/ba_root/mods/features/__pycache__/dccmdlogs.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/dccmdlogs.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/discord_bot.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/discord_bot.cpython-310.opt-1.pyc index 08ec1ea..5b1ca3a 100644 Binary files a/dist/ba_root/mods/features/__pycache__/discord_bot.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/discord_bot.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/dual_team_score.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/dual_team_score.cpython-310.opt-1.pyc index 4654f21..24c6200 100644 Binary files a/dist/ba_root/mods/features/__pycache__/dual_team_score.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/dual_team_score.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/map.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/map.cpython-310.opt-1.pyc index d3b5a21..a1e37d0 100644 Binary files a/dist/ba_root/mods/features/__pycache__/map.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/map.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/map_fun.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/map_fun.cpython-310.opt-1.pyc index 750b0ed..a6d4385 100644 Binary files a/dist/ba_root/mods/features/__pycache__/map_fun.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/map_fun.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/ping.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/ping.cpython-310.opt-1.pyc index 94336e9..ec10c6d 100644 Binary files a/dist/ba_root/mods/features/__pycache__/ping.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/ping.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/profanity.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/profanity.cpython-310.opt-1.pyc index 3486dd7..049cb93 100644 Binary files a/dist/ba_root/mods/features/__pycache__/profanity.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/profanity.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/snow_fall.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/snow_fall.cpython-310.opt-1.pyc index 5d08beb..86d61e9 100644 Binary files a/dist/ba_root/mods/features/__pycache__/snow_fall.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/snow_fall.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/team_balancer.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/team_balancer.cpython-310.opt-1.pyc index cf649fe..71c7604 100644 Binary files a/dist/ba_root/mods/features/__pycache__/team_balancer.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/team_balancer.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/text_on_map.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/text_on_map.cpython-310.opt-1.pyc index 80d8275..8d536d7 100644 Binary files a/dist/ba_root/mods/features/__pycache__/text_on_map.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/text_on_map.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/__pycache__/votingmachine.cpython-310.opt-1.pyc b/dist/ba_root/mods/features/__pycache__/votingmachine.cpython-310.opt-1.pyc index 17e9e1c..47a4b97 100644 Binary files a/dist/ba_root/mods/features/__pycache__/votingmachine.cpython-310.opt-1.pyc and b/dist/ba_root/mods/features/__pycache__/votingmachine.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/features/afk_check.py b/dist/ba_root/mods/features/afk_check.py index 22e06ae..17f3bf3 100644 --- a/dist/ba_root/mods/features/afk_check.py +++ b/dist/ba_root/mods/features/afk_check.py @@ -1,63 +1,59 @@ -# Custom kick idle player script by mr.smoothy#5824 import time import ba from ba._general import Call import _ba import ba.internal import setting + settings = setting.get_settings_data() -INGAME_TIME=settings["afk_remover"]["ingame_idle_time_in_secs"] -LOBBY_KICK=settings['afk_remover']["kick_idle_from_lobby"] -INLOBBY_TIME=settings['afk_remover']["lobby_idle_time_in_secs"] -cIdle = 0 # players/player found idle within very short time -cLastIdle = 0 -class checkIdle(object): - def start(self): - self.t1=ba.timer(2, ba.Call(self.check),repeat=True) - self.lobbies={} +INGAME_TIME = settings["afk_remover"]["ingame_idle_time_in_secs"] +LOBBY_KICK = settings['afk_remover']["kick_idle_from_lobby"] +INLOBBY_TIME = settings['afk_remover']["lobby_idle_time_in_secs"] + +class CheckIdle: + def __init__(self): + self.t1 = ba.timer(2, ba.Call(self.check), repeat=True) + self.lobbies = {} + def check(self): - global cLastIdle - global cIdle - current=ba.time(ba.TimeType.REAL,timeformat=ba.TimeFormat.MILLISECONDS) - if not ba.internal.get_foreground_host_session(): + current = ba.time(ba.TimeType.REAL, timeformat=ba.TimeFormat.MILLISECONDS) + session = ba.internal.get_foreground_host_session() + + if not session: return - for player in ba.internal.get_foreground_host_session().sessionplayers: - last_input=int(player.inputdevice.get_last_input_time()) - afk_time=int((current-last_input)/1000) - if afk_time in range(INGAME_TIME,INGAME_TIME+20) or afk_time > INGAME_TIME+20: - if (current - cLastIdle)/1000 < 3: - cIdle = cIdle+1 - if cIdle >= 3: - return - else: - cIdle = 0 - cLastIdle = current - if afk_time in range(INGAME_TIME,INGAME_TIME+20): - self.warn_player(player.get_v1_account_id(),"Press any button within "+str(INGAME_TIME+20-afk_time)+" secs") - if afk_time > INGAME_TIME+20: - player.remove_from_game() + self.check_ingame_idle(current, session) if LOBBY_KICK: - current_players=[] - for player in ba.internal.get_game_roster(): - if player['client_id'] !=-1 and len(player['players']) ==0: - current_players.append(player['client_id']) - if player['client_id'] not in self.lobbies: - self.lobbies[player['client_id']]=current - lobby_afk=int((current - self.lobbies[player['client_id']])/1000) - if lobby_afk in range(INLOBBY_TIME,INLOBBY_TIME+10): - _ba.screenmessage("Join game within "+str(INLOBBY_TIME+10-lobby_afk)+" secs",color=(1,0,0),transient=True,clients=[player['client_id']]) - if lobby_afk > INLOBBY_TIME+ 10: - ba.internal.disconnect_client(player['client_id'],0) - # clean the lobbies dict - temp=self.lobbies.copy() - for clid in temp: - if clid not in current_players: - del self.lobbies[clid] - def warn_player(self,pbid,msg): + self.check_lobby_idle(current) + + def check_ingame_idle(self, current, session): + for player in session.sessionplayers: + last_input = int(player.inputdevice.get_last_input_time()) + afk_time = int((current - last_input) / 1000) + + if INGAME_TIME <= afk_time <= INGAME_TIME + 20: + remaining_time = INGAME_TIME + 20 - afk_time + self.warn_player(player.get_v1_account_id(), f"Press any button within {remaining_time} secs") + elif afk_time > INGAME_TIME + 20: + player.remove_from_game() + + def check_lobby_idle(self, current): + current_players = [] for player in ba.internal.get_game_roster(): - if player["account_id"]==pbid: - _ba.screenmessage(msg,color=(1,0,0),transient=True,clients=[player['client_id']]) - + if player['client_id'] != -1 and len(player['players']) == 0: + client_id = player['client_id'] + current_players.append(client_id) + if client_id not in self.lobbies: + self.lobbies[client_id] = current + lobby_afk = int((current - self.lobbies[client_id]) / 1000) + if INLOBBY_TIME <= lobby_afk <= INLOBBY_TIME + 10: + _ba.screenmessage(f"Join game within {10 - (lobby_afk - INLOBBY_TIME)} secs", color=(1, 0, 0), transient=True, clients=[client_id]) + elif lobby_afk > INLOBBY_TIME + 10: + ba.internal.disconnect_client(client_id, 0) + self.lobbies = {clid: self.lobbies[clid] for clid in self.lobbies if clid in current_players} + def warn_player(self, pbid, msg): + for player in ba.internal.get_game_roster(): + if player["account_id"] == pbid: + _ba.screenmessage(msg, color=(1, 0, 0), transient=True, clients=[player['client_id']]) \ No newline at end of file diff --git a/dist/ba_root/mods/features/discord_bot.py b/dist/ba_root/mods/features/discord_bot.py index f40e077..3b701a4 100644 --- a/dist/ba_root/mods/features/discord_bot.py +++ b/dist/ba_root/mods/features/discord_bot.py @@ -7,7 +7,7 @@ from ba._general import Call from playersData import pdata from serverData import serverdata import setting -from tools import mongo, pinfo +from tools import mongo from chatHandle.ChatCommands.commands.Handlers import send from chatHandle.ChatCommands.commands import NormalCommands as nc from chatHandle.ChatCommands.commands import CoinCmds as cc @@ -205,6 +205,7 @@ async def on_message(message): command = message.content userid = message.author.id username = message.author.name + from tools import pinfo pinfo.update_server_info(command, servers, dc_servername, dc_serverid, server_ip, server_port) dcl.log_command(userid, username, command) if len(m) > 0 and m[0] == 'bsunban': #unban in all server xD diff --git a/dist/ba_root/mods/features/map.py b/dist/ba_root/mods/features/map.py index ee1b225..dfaf8c4 100644 --- a/dist/ba_root/mods/features/map.py +++ b/dist/ba_root/mods/features/map.py @@ -1,52 +1,86 @@ import ba, _ba +import os +import json +import datetime +import threading -class TEXTONMAP: - def __init__(self): - if hasattr(_ba, "season_ends_in_days"): - self._remaining_time = self._get_remaining_time(_ba.season_ends_in_days) - self._text_node = None - self._update_timer = None - self.season_reset(self._remaining_time) - def _get_remaining_time(self, days): - seconds_per_day = 86400 # 24 hours * 60 minutes * 60 seconds - remaining_seconds = days * seconds_per_day - remaining_days = remaining_seconds // seconds_per_day - remaining_seconds %= seconds_per_day +# Path to the stats file +base_path = os.path.join(_ba.env()['python_directory_user'], "stats" + os.sep) +statsfile = base_path + 'stats.json' +seasonStartDate = None + +def get_season_start_date(): + global seasonStartDate + + # Check if the stats file exists + if os.path.exists(statsfile): + with open(statsfile, 'r', encoding='utf8') as f: + try: + jsonData = json.loads(f.read()) + except: + f = open(statsfile + ".backup", encoding='utf-8') + jsonData = json.load(f) + try: + stats = jsonData["stats"] + seasonStartDate = datetime.datetime.strptime( + jsonData["startDate"], "%d-%m-%Y %H:%M:%S") + return seasonStartDate + except KeyError: + print("Error: 'startDate' or 'stats' not found in JSON data.") + else: + print(f"Error: Stats file '{statsfile}' not found.") + +def until_season_start(): + global seasonStartDate # Ensure we are using the global variable + + seasonStartDate = get_season_start_date() + + if seasonStartDate: + time_until_start = seasonStartDate - datetime.datetime.now() + remaining_days = _ba.season_ends_in_days + remaining_seconds = time_until_start.seconds remaining_hours = remaining_seconds // 3600 - remaining_seconds %= 3600 - remaining_minutes = remaining_seconds // 60 - remaining_seconds %= 60 - return remaining_days, remaining_hours, remaining_minutes, remaining_seconds - - def season_reset(self, remaining_time): - days, hours, minutes, seconds = remaining_time - self._text_node = ba.newnode('text', - attrs={ - 'text': f"Season ends in {days} days, {hours:02d}:{minutes:02d}:{seconds:02d}", - 'flatness': 0.8, - 'h_align': 'right', - 'v_attach': 'bottom', - 'h_attach': 'right', - 'scale': 0.7, - 'position': (-25, 25), - 'color': (1,1,1) - }) - - self._update_timer = ba.timer(1.0, self._update_text, repeat=True) - - def _update_text(self): - if self._remaining_time[0] > 0: - days, hours, minutes, seconds = self._remaining_time - total_seconds = days * 86400 + hours * 3600 + minutes * 60 + seconds - total_seconds -= 1 - remaining_days = total_seconds // 86400 - remaining_hours = (total_seconds % 86400) // 3600 - remaining_minutes = (total_seconds % 3600) // 60 - remaining_seconds = total_seconds % 60 - self._remaining_time = remaining_days, remaining_hours, remaining_minutes, remaining_seconds - self._text_node.text = f'Season ends in: {days} days, {hours:02d}:{minutes:02d}:{seconds:02d}' + remaining_minutes = (remaining_seconds % 3600) // 60 + remaining_seconds = remaining_seconds % 60 + # Determine the appropriate time units to display + if remaining_days > 0: + if remaining_days > 1: + days_str = "days" + else: + days_str = "day" + time_str = f"Season ends in {remaining_days} {days_str}." + time_str += f" {remaining_hours:02}:{remaining_minutes:02}:{remaining_seconds:02}" + elif remaining_hours > 0: + if remaining_hours > 1: + hours_str = "hours" + else: + hours_str = "hour" + time_str = f"Season ends in {remaining_hours} {hours_str}." + time_str += f" {remaining_minutes:02}:{remaining_seconds:02}" + elif remaining_minutes > 0: + if remaining_minutes > 1: + minutes_str = "minutes" + else: + minutes_str = "minute" + time_str = f"Season ends in {remaining_minutes} {minutes_str}. {remaining_seconds:02}" else: - ba.print_error('Error: Remaining days cannot be negative.') - self._text_node.delete() - self._update_timer = None + if remaining_seconds > 1: + seconds_str = "seconds" + else: + seconds_str = "second" + time_str = f"Season ends in {remaining_seconds} {seconds_str}." + # Display the results + return time_str + else: + return "Season end date is not available." + + +def update_season_info(): + def _update(): + time_str = until_season_start() + ba.Timer(1, _update) + return time_str + + return _update + diff --git a/dist/ba_root/mods/features/ping.py b/dist/ba_root/mods/features/ping.py index 235518a..ff6ba0e 100644 --- a/dist/ba_root/mods/features/ping.py +++ b/dist/ba_root/mods/features/ping.py @@ -53,3 +53,15 @@ def get_ping(): return get_pings(ip) else: return "Could not retrieve any IP address." + + +def get_ip(): + ip = get_local_ip() + if not ip: + ip = get_ip_from_api() + + if ip: + return ip + else: + return "Could not retrieve any IP address." + diff --git a/dist/ba_root/mods/features/text_on_map.py b/dist/ba_root/mods/features/text_on_map.py index 491e484..6526e55 100644 --- a/dist/ba_root/mods/features/text_on_map.py +++ b/dist/ba_root/mods/features/text_on_map.py @@ -8,12 +8,15 @@ import ba.internal import setting from stats import mystats from datetime import date, datetime +from features import map import pytz import random import members.members as mid counts = mid.members size = len(counts) setti=setting.get_settings_data() +time_str = map.update_season_info() + class textonmap: def __init__(self): @@ -32,9 +35,8 @@ class textonmap: self.top_message(top) self.nextGame(nextMap) self.restart_msg() - if hasattr(_ba, "season_ends_in_days"): - # if _ba.season_ends_in_days < 9: - self.season_reset(_ba.season_ends_in_days) + self.season_reset() + self.timer = ba.timer(0.1, ba.Call(self.season_reset), repeat=True) if setti["leaderboard"]["enable"]: self.leaderBoard() if setti["textonmap"]['center highlights']["enable"]: @@ -173,18 +175,22 @@ class textonmap: 'color':(1,1,1) }) - def season_reset(self,text): + def season_reset(self): + text = time_str() node = _ba.newnode('text', attrs={ - 'text':" ", + 'text':text, 'flatness':1.0, 'h_align':'right', 'v_attach':'bottom', 'h_attach':'right', 'scale':0.7, - 'position':(-25,45), - 'color':(1,0.5,0.7) + 'position':(-25, 25), + 'color':(1,1,1) }) + self.delt = ba.timer(0.1, node.delete) + + def restart_msg(self): if hasattr(_ba,'restart_scheduled'): _ba.get_foreground_host_activity().restart_msg = _ba.newnode('text', diff --git a/dist/ba_root/mods/games/CanonFight.so b/dist/ba_root/mods/games/CanonFight.so index 01c3308..2d8a3f9 100644 Binary files a/dist/ba_root/mods/games/CanonFight.so and b/dist/ba_root/mods/games/CanonFight.so differ diff --git a/dist/ba_root/mods/games/DuelElimination.so b/dist/ba_root/mods/games/DuelElimination.so index e58fa98..ff12a39 100644 Binary files a/dist/ba_root/mods/games/DuelElimination.so and b/dist/ba_root/mods/games/DuelElimination.so differ diff --git a/dist/ba_root/mods/games/FlappyBird.so b/dist/ba_root/mods/games/FlappyBird.so index 16f9c48..137ac5c 100644 Binary files a/dist/ba_root/mods/games/FlappyBird.so and b/dist/ba_root/mods/games/FlappyBird.so differ diff --git a/dist/ba_root/mods/games/LaserTracer.so b/dist/ba_root/mods/games/LaserTracer.so index 0131b9d..fd09de5 100644 Binary files a/dist/ba_root/mods/games/LaserTracer.so and b/dist/ba_root/mods/games/LaserTracer.so differ diff --git a/dist/ba_root/mods/games/MonkeyClimb.so b/dist/ba_root/mods/games/MonkeyClimb.so index c480b31..89595ca 100644 Binary files a/dist/ba_root/mods/games/MonkeyClimb.so and b/dist/ba_root/mods/games/MonkeyClimb.so differ diff --git a/dist/ba_root/mods/games/OneNightNoStand.so b/dist/ba_root/mods/games/OneNightNoStand.so index a96b2d6..b7e71e7 100644 Binary files a/dist/ba_root/mods/games/OneNightNoStand.so and b/dist/ba_root/mods/games/OneNightNoStand.so differ diff --git a/dist/ba_root/mods/games/RealSoccer.so b/dist/ba_root/mods/games/RealSoccer.so index ddd61d1..dc2b75d 100644 Binary files a/dist/ba_root/mods/games/RealSoccer.so and b/dist/ba_root/mods/games/RealSoccer.so differ diff --git a/dist/ba_root/mods/games/SquidRace.so b/dist/ba_root/mods/games/SquidRace.so index 79af31f..8c69f4e 100644 Binary files a/dist/ba_root/mods/games/SquidRace.so and b/dist/ba_root/mods/games/SquidRace.so differ diff --git a/dist/ba_root/mods/games/StumbleRace.so b/dist/ba_root/mods/games/StumbleRace.so index 6a8eccf..d7e6f61 100644 Binary files a/dist/ba_root/mods/games/StumbleRace.so and b/dist/ba_root/mods/games/StumbleRace.so differ diff --git a/dist/ba_root/mods/games/SubwayRun.so b/dist/ba_root/mods/games/SubwayRun.so index 1e7e010..5446bf9 100644 Binary files a/dist/ba_root/mods/games/SubwayRun.so and b/dist/ba_root/mods/games/SubwayRun.so differ diff --git a/dist/ba_root/mods/games/UFOAttackGame.so b/dist/ba_root/mods/games/UFOAttackGame.so index 23fc6d2..93dd07d 100644 Binary files a/dist/ba_root/mods/games/UFOAttackGame.so and b/dist/ba_root/mods/games/UFOAttackGame.so differ diff --git a/dist/ba_root/mods/games/__pycache__/EggGame.cpython-310.opt-1.pyc b/dist/ba_root/mods/games/__pycache__/EggGame.cpython-310.opt-1.pyc index a358134..300313a 100644 Binary files a/dist/ba_root/mods/games/__pycache__/EggGame.cpython-310.opt-1.pyc and b/dist/ba_root/mods/games/__pycache__/EggGame.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/games/__pycache__/Heist.cpython-310.opt-1.pyc b/dist/ba_root/mods/games/__pycache__/Heist.cpython-310.opt-1.pyc index 3a8d2f6..bd339c7 100644 Binary files a/dist/ba_root/mods/games/__pycache__/Heist.cpython-310.opt-1.pyc and b/dist/ba_root/mods/games/__pycache__/Heist.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/games/__pycache__/MusicalFlags.cpython-310.opt-1.pyc b/dist/ba_root/mods/games/__pycache__/MusicalFlags.cpython-310.opt-1.pyc index a429bdb..3cf93b8 100644 Binary files a/dist/ba_root/mods/games/__pycache__/MusicalFlags.cpython-310.opt-1.pyc and b/dist/ba_root/mods/games/__pycache__/MusicalFlags.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/games/__pycache__/SuperSmash.cpython-310.opt-1.pyc b/dist/ba_root/mods/games/__pycache__/SuperSmash.cpython-310.opt-1.pyc index a43aaa3..27b55ae 100644 Binary files a/dist/ba_root/mods/games/__pycache__/SuperSmash.cpython-310.opt-1.pyc and b/dist/ba_root/mods/games/__pycache__/SuperSmash.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/games/__pycache__/Yeeting-party.cpython-310.opt-1.pyc b/dist/ba_root/mods/games/__pycache__/Yeeting-party.cpython-310.opt-1.pyc index 997de49..45be75d 100644 Binary files a/dist/ba_root/mods/games/__pycache__/Yeeting-party.cpython-310.opt-1.pyc and b/dist/ba_root/mods/games/__pycache__/Yeeting-party.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/games/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/games/__pycache__/__init__.cpython-310.opt-1.pyc index 399915c..a865aeb 100644 Binary files a/dist/ba_root/mods/games/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/games/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/games/__pycache__/alliance_elimination.cpython-310.opt-1.pyc b/dist/ba_root/mods/games/__pycache__/alliance_elimination.cpython-310.opt-1.pyc index 6099c29..f0c2016 100644 Binary files a/dist/ba_root/mods/games/__pycache__/alliance_elimination.cpython-310.opt-1.pyc and b/dist/ba_root/mods/games/__pycache__/alliance_elimination.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/games/__pycache__/lib.cpython-310.opt-1.pyc b/dist/ba_root/mods/games/__pycache__/lib.cpython-310.opt-1.pyc index e342294..2d7e5d2 100644 Binary files a/dist/ba_root/mods/games/__pycache__/lib.cpython-310.opt-1.pyc and b/dist/ba_root/mods/games/__pycache__/lib.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/games/__pycache__/soccer.cpython-310.opt-1.pyc b/dist/ba_root/mods/games/__pycache__/soccer.cpython-310.opt-1.pyc index db2d74f..131f315 100644 Binary files a/dist/ba_root/mods/games/__pycache__/soccer.cpython-310.opt-1.pyc and b/dist/ba_root/mods/games/__pycache__/soccer.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/games/__pycache__/volleyball.cpython-310.opt-1.pyc b/dist/ba_root/mods/games/__pycache__/volleyball.cpython-310.opt-1.pyc index 609da29..53f01ba 100644 Binary files a/dist/ba_root/mods/games/__pycache__/volleyball.cpython-310.opt-1.pyc and b/dist/ba_root/mods/games/__pycache__/volleyball.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/BridgitMash.so b/dist/ba_root/mods/maps/BridgitMash.so index 01615c9..ea449de 100644 Binary files a/dist/ba_root/mods/maps/BridgitMash.so and b/dist/ba_root/mods/maps/BridgitMash.so differ diff --git a/dist/ba_root/mods/maps/FloatingIsland.so b/dist/ba_root/mods/maps/FloatingIsland.so index d5a9c18..20abee6 100644 Binary files a/dist/ba_root/mods/maps/FloatingIsland.so and b/dist/ba_root/mods/maps/FloatingIsland.so differ diff --git a/dist/ba_root/mods/maps/InTheAir.so b/dist/ba_root/mods/maps/InTheAir.so index adfb89a..6bde2a1 100644 Binary files a/dist/ba_root/mods/maps/InTheAir.so and b/dist/ba_root/mods/maps/InTheAir.so differ diff --git a/dist/ba_root/mods/maps/__pycache__/BasketBallMap.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/BasketBallMap.cpython-310.opt-1.pyc index 01b4176..dedf8f8 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/BasketBallMap.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/BasketBallMap.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/BridgitParallelo.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/BridgitParallelo.cpython-310.opt-1.pyc index 5a505aa..fc8c596 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/BridgitParallelo.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/BridgitParallelo.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/BridgitPlus.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/BridgitPlus.cpython-310.opt-1.pyc index 36fd234..b374628 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/BridgitPlus.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/BridgitPlus.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/DesertMap.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/DesertMap.cpython-310.opt-1.pyc index 7625b0e..bb583e4 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/DesertMap.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/DesertMap.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/LakeOfDeath.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/LakeOfDeath.cpython-310.opt-1.pyc index 5655d15..b20bec4 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/LakeOfDeath.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/LakeOfDeath.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/MemoryGame.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/MemoryGame.cpython-310.opt-1.pyc index 7fcb57d..5ce0831 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/MemoryGame.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/MemoryGame.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/VolleBallMap.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/VolleBallMap.cpython-310.opt-1.pyc index 0a6300c..5a23d98 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/VolleBallMap.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/VolleBallMap.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/WoodenFloor.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/WoodenFloor.cpython-310.opt-1.pyc index c486640..6be9c49 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/WoodenFloor.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/WoodenFloor.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/baAllMaps.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/baAllMaps.cpython-310.opt-1.pyc index aaf1aba..4041fff 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/baAllMaps.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/baAllMaps.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/baMaps_v1.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/baMaps_v1.cpython-310.opt-1.pyc index 656e9db..83ea81a 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/baMaps_v1.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/baMaps_v1.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/creative_thoughts.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/creative_thoughts.cpython-310.opt-1.pyc index a3b960e..7e748bc 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/creative_thoughts.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/creative_thoughts.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/new_maps.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/new_maps.cpython-310.opt-1.pyc index 4e30650..7c080f7 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/new_maps.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/new_maps.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/soccerStadiumPro.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/soccerStadiumPro.cpython-310.opt-1.pyc index e889bf5..6c7e0b3 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/soccerStadiumPro.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/soccerStadiumPro.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/maps/__pycache__/zigZagStubbed.cpython-310.opt-1.pyc b/dist/ba_root/mods/maps/__pycache__/zigZagStubbed.cpython-310.opt-1.pyc index 953fbc3..82fc2ca 100644 Binary files a/dist/ba_root/mods/maps/__pycache__/zigZagStubbed.cpython-310.opt-1.pyc and b/dist/ba_root/mods/maps/__pycache__/zigZagStubbed.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/members/__pycache__/members.cpython-310.opt-1.pyc b/dist/ba_root/mods/members/__pycache__/members.cpython-310.opt-1.pyc index 9bf2fea..2073535 100644 Binary files a/dist/ba_root/mods/members/__pycache__/members.cpython-310.opt-1.pyc and b/dist/ba_root/mods/members/__pycache__/members.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/members/members.py b/dist/ba_root/mods/members/members.py index 10caf5d..3483678 100644 --- a/dist/ba_root/mods/members/members.py +++ b/dist/ba_root/mods/members/members.py @@ -1 +1,10 @@ -members = [] +members = [ + "pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH", + "pb-IF4BUlQBJw==", + "pb-IF4pU1FYDQ==", + "pb-IF4UU2ldEg==", + "pb-IF4QVWgkUg==", + "pb-IF4RUBkvVA==", + "pb-IF4KUk5TDA==", + "pb-IF4xVHEGMA==" +] \ No newline at end of file diff --git a/dist/ba_root/mods/playersData/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/playersData/__pycache__/__init__.cpython-310.opt-1.pyc index 74f7acf..1ede3c9 100644 Binary files a/dist/ba_root/mods/playersData/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/playersData/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/playersData/__pycache__/pdata.cpython-310.opt-1.pyc b/dist/ba_root/mods/playersData/__pycache__/pdata.cpython-310.opt-1.pyc index 45303cf..64eb375 100644 Binary files a/dist/ba_root/mods/playersData/__pycache__/pdata.cpython-310.opt-1.pyc and b/dist/ba_root/mods/playersData/__pycache__/pdata.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/playersData/profiles.json b/dist/ba_root/mods/playersData/profiles.json index 6831734..28c74da 100644 --- a/dist/ba_root/mods/playersData/profiles.json +++ b/dist/ba_root/mods/playersData/profiles.json @@ -93,12 +93,12 @@ "lastSpam": 1710411839.3627186, "totaltimeplayer": 0, "warnCount": 0, - "lastWarned": 1710615975.5722473, + "lastWarned": 1720119610.4890106, "verified": true, "rejoincount": 1, - "lastJoin": 1710615975.5722485, - "lastIP": "a|j~~mdaliajd|", - "deviceUUID": "266316aee91354727e5010c2fc1cc9ee1dfffec6", + "lastJoin": 1720119610.4890122, + "lastIP": "dvvd}vczvdy", + "deviceUUID": "d9e5990909030fcb7b0740de3398a0716edd6181", "cMsgCount": 0, "lastMsgTime": 1710500631.8629982, "lastMsg": "\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d", @@ -233,16 +233,16 @@ "lastSpam": 1711790933.6729364, "totaltimeplayer": 0, "warnCount": 0, - "lastWarned": 1715785454.8126853, + "lastWarned": 1720133250.1828523, "verified": true, "rejoincount": 1, - "lastJoin": 1715785454.8126867, - "lastIP": "a\u007fn~}jaajb\u007fvfx", + "lastJoin": 1720133250.1828537, + "lastIP": "a~o~va~}lgaoe", "cMsgCount": 0, - "lastMsgTime": 1715783748.7271104, - "lastMsg": "/gm", + "lastMsgTime": 1720101375.1989813, + "lastMsg": "/end", "cSameMsg": 0, - "deviceUUID": "7bef6a75be2da54d2c804be1e3c2dbcc2ee99a2e" + "deviceUUID": "c679d21da7319d51f769feafb6a824ccd1dcbdd1" }, "pb-IF4gUnMlCg==": { "display_string": [ @@ -537,10 +537,10 @@ "lastSpam": 1712141612.7471426, "totaltimeplayer": 0, "warnCount": 0, - "lastWarned": 1715770545.7852263, + "lastWarned": 1720118237.4256992, "verified": true, "rejoincount": 1, - "lastJoin": 1715770545.7852275, + "lastJoin": 1720130148.8333244, "lastIP": "a{i~~lgajdaif}", "deviceUUID": "4da63e77c8e855d8d121f66e6efdb706c65f6e05" }, @@ -1470,5 +1470,646 @@ "rejoincount": 1, "lastJoin": 1715771400.2232075, "lastIP": "dvvdxvhajav" + }, + "pb-IF4BUlQBJw==": { + "display_string": [ + "\ue063V0RT3X" + ], + "profiles": [], + "name": "\ue063V0RT3X", + "isBan": false, + "isMuted": false, + "accountAge": "2022-04-03 10:56:42", + "registerOn": 1720114418.416464, + "spamCount": 0, + "lastSpam": 1720114418.4164646, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720150855.3581924, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720150855.3581936, + "lastIP": "azj~zo~}icaof", + "cMsgCount": 0, + "lastMsgTime": 1720151074.0899043, + "lastMsg": "alright that's what I wanted to test ", + "cSameMsg": 0, + "deviceUUID": "ef86bb93ac5bf094c4332107ed4101624fe3f5d6" + }, + "pb-IF4pU2I4Pw==": { + "display_string": [ + "\ue063NNOOOOBBSS" + ], + "profiles": [], + "name": "\ue063NNOOOOBBSS", + "isBan": false, + "isMuted": false, + "accountAge": "2022-06-05 16:24:30", + "registerOn": 1720114656.3048496, + "spamCount": 0, + "lastSpam": 1720114656.3048503, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720114656.304856, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720114656.304857, + "lastIP": "bxvevvgvvaxh" + }, + "pb-IF4nUWQxHw==": { + "display_string": [ + "\ue063Fourte1103" + ], + "profiles": [], + "name": "\ue063Fourte1103", + "isBan": false, + "isMuted": false, + "accountAge": "2024-07-03 20:48:53", + "registerOn": 1720114704.4646673, + "spamCount": 0, + "lastSpam": 1720114704.4646678, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720114704.4646747, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720114704.4646757, + "lastIP": "awh~}liaifzvb|" + }, + "pb-IF4UU2ldEg==": { + "display_string": [ + "\ue063ZEUS609" + ], + "profiles": [], + "name": "\ue063ZEUS609", + "isBan": false, + "isMuted": false, + "accountAge": "2022-06-27 17:34:19", + "registerOn": 1720115210.3352227, + "spamCount": 0, + "lastSpam": 1720115210.3352232, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720150897.488429, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720150897.4884343, + "lastIP": "a\u007fk~vl~~lbam", + "cMsgCount": 0, + "lastMsgTime": 1720150924.4838533, + "lastMsg": "Do you checking this sever ", + "cSameMsg": 0, + "deviceUUID": "27cf925374553d6441507e352ef0d83b84eb2dbd" + }, + "pb-IF4KUBQFJA==": { + "display_string": [ + "\ue063URMOM69", + "\ue030PC591985" + ], + "profiles": [], + "name": "\ue030PC591985", + "isBan": false, + "isMuted": false, + "accountAge": "2024-06-08 20:18:20", + "registerOn": 1720115339.823318, + "spamCount": 0, + "lastSpam": 1720115339.8233185, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720115339.8233232, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115339.8233244, + "lastIP": "azj~z`~}kia`", + "cMsgCount": 0, + "lastMsgTime": 1720115658.20891, + "lastMsg": "aight im out", + "cSameMsg": 0 + }, + "pb-IF4GUEFaJg==": { + "display_string": [ + "\ue063masterGG" + ], + "profiles": [], + "name": "\ue063masterGG", + "isBan": false, + "isMuted": false, + "accountAge": "2023-09-21 23:28:52", + "registerOn": 1720115407.0242171, + "spamCount": 0, + "lastSpam": 1720115407.0242176, + "totaltimeplayer": 0, + "warnCount": 1, + "lastWarned": 1720116100.1797893, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115407.0242248, + "lastIP": "gvva~a~zk~}ma", + "cMsgCount": 1, + "lastMsgTime": 1720116102.6057553, + "lastMsg": "pro ", + "cSameMsg": 0 + }, + "pb-IF4-VXk-Mg==": { + "display_string": [ + "\ue063DoBlehGreg" + ], + "profiles": [], + "name": "\ue063DoBlehGreg", + "isBan": false, + "isMuted": false, + "accountAge": "2021-03-04 21:31:52", + "registerOn": 1720115524.5189767, + "spamCount": 0, + "lastSpam": 1720115524.5189772, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720115524.5189836, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115524.518984, + "lastIP": "awh~}lhaj`amg" + }, + "pb-IF5RUE0ABg==": { + "display_string": [ + "\ue030Android66440089" + ], + "profiles": [], + "name": "\ue030Android66440089", + "isBan": false, + "isMuted": false, + "accountAge": "2023-12-02 19:25:28", + "registerOn": 1720115699.2077131, + "spamCount": 0, + "lastSpam": 1720115699.2077134, + "totaltimeplayer": 0, + "warnCount": 1, + "lastWarned": 1720115981.0829563, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115699.2077203, + "lastIP": "a~n~}hfaaaaiez", + "cMsgCount": 2, + "lastMsgTime": 1720116119.7301304, + "lastMsg": "server name is super pro players?", + "cSameMsg": 0 + }, + "pb-IF4gU1EhDQ==": { + "display_string": [ + "\ue063heymigs13" + ], + "profiles": [], + "name": "\ue063heymigs13", + "isBan": false, + "isMuted": false, + "accountAge": "2022-12-17 18:11:42", + "registerOn": 1720115756.4471498, + "spamCount": 0, + "lastSpam": 1720115756.4471502, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720115756.4471571, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115756.447158, + "lastIP": "axo~zl~~obaic{" + }, + "pb-IF4oVWgMDA==": { + "display_string": [ + "\ue063RoyalAcco4" + ], + "profiles": [], + "name": "\ue063RoyalAcco4", + "isBan": false, + "isMuted": false, + "accountAge": "2020-10-31 00:09:21", + "registerOn": 1720115982.2512202, + "spamCount": 0, + "lastSpam": 1720115982.2512207, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720115982.2512279, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115982.2512288, + "lastIP": "a~l~~jeajcajdx" + }, + "pb-IF5TUhAELw==": { + "display_string": [ + "\ue063Fruitle182" + ], + "profiles": [], + "name": "\ue063Fruitle182", + "isBan": false, + "isMuted": false, + "accountAge": "2021-07-26 23:00:03", + "registerOn": 1720116142.9885633, + "spamCount": 0, + "lastSpam": 1720116142.9885638, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720116142.9885705, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720116142.9885712, + "lastIP": "b}k~~`baibam" + }, + "pb-IF4GUEMzLg==": { + "display_string": [ + "\ue063justalonel" + ], + "profiles": [], + "name": "\ue063justalonel", + "isBan": false, + "isMuted": false, + "accountAge": "2023-10-09 00:00:38", + "registerOn": 1720116171.058948, + "spamCount": 0, + "lastSpam": 1720116171.0589483, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720116171.0589547, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720116171.0589554, + "lastIP": "a\u007fk~~`iaiaajc|" + }, + "pb-IF4GURNbPQ==": { + "display_string": [ + "\ue063NoobMas167" + ], + "profiles": [], + "name": "\ue063NoobMas167", + "isBan": false, + "isMuted": false, + "accountAge": "2024-04-09 19:10:51", + "registerOn": 1720116256.2756033, + "spamCount": 0, + "lastSpam": 1720116256.2756038, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720116256.2756095, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720116256.2756834, + "lastIP": "a~o~}k`a`gajcz" + }, + "pb-IF4HU3YGBw==": { + "display_string": [ + "\ue063Companion3" + ], + "profiles": [], + "name": "\ue063Companion3", + "isBan": false, + "isMuted": false, + "accountAge": "2022-08-21 13:54:32", + "registerOn": 1720116585.5642297, + "spamCount": 0, + "lastSpam": 1720116585.5642302, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720116585.5642369, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720116585.5642376, + "lastIP": "f~vb{m~~o`aj`\u007f" + }, + "pb-IF4QUFgyCg==": { + "display_string": [ + "\ue063Unearne423" + ], + "profiles": [], + "name": "\ue063Unearne423", + "isBan": false, + "isMuted": false, + "accountAge": "2024-03-05 21:13:21", + "registerOn": 1720116821.710257, + "spamCount": 0, + "lastSpam": 1720116821.7102573, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720116821.710264, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720116821.7102652, + "lastIP": "a\u007fk~~niajazva\u007fo" + }, + "pb-IF40UEwoPA==": { + "display_string": [ + "\ue063Avalolli" + ], + "profiles": [], + "name": "\ue063Avalolli", + "isBan": false, + "isMuted": false, + "accountAge": "2023-12-11 18:27:17", + "registerOn": 1720121313.1251252, + "spamCount": 0, + "lastSpam": 1720121313.1251256, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720121313.1251373, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720123332.393465, + "lastIP": "a}h~}a~~hiaib{", + "deviceUUID": "4cb3ad722d24cc1fbb9d9e3103d1a7cbf7fd19ce", + "cMsgCount": 0, + "lastMsgTime": 1720123138.2355554, + "lastMsg": "end", + "cSameMsg": 0 + }, + "pb-IF4NU1lYFg==": { + "display_string": [ + "\ue063Stormster" + ], + "profiles": [], + "name": "\ue063Stormster", + "isBan": false, + "isMuted": false, + "accountAge": "2024-02-17 07:41:00", + "registerOn": 1720121479.7300992, + "spamCount": 0, + "lastSpam": 1720121479.7300994, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720121479.730105, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720122384.8487408, + "lastIP": "aakiaofaj`z", + "deviceUUID": "259df46fae12aeae243cb8fe58c2607f7465dafe" + }, + "pb-IF4wU0JbKg==": { + "display_string": [ + "\ue063Optimis530" + ], + "profiles": [], + "name": "\ue063Optimis530", + "isBan": false, + "isMuted": false, + "accountAge": "2022-09-13 18:30:15", + "registerOn": 1720121537.9382904, + "spamCount": 0, + "lastSpam": 1720121537.9382908, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720121537.9382968, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720121537.9382975, + "lastIP": "a}j~~jia`gaja{" + }, + "pb-IF4FUkIOFg==": { + "display_string": [ + "\ue063Noonme1380", + "\ue030Android56943236", + "\ue030Android58307557" + ], + "profiles": [], + "name": "\ue063Noonme1380", + "isBan": false, + "isMuted": false, + "accountAge": "2022-01-23 10:51:20", + "registerOn": 1720121761.842964, + "spamCount": 0, + "lastSpam": 1720121761.8429644, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720121761.8429701, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720121761.8429706, + "lastIP": "az`~yj~zl~~li" + }, + "pb-IF4PURkRFw==": { + "display_string": [ + "\ue030Android67524495" + ], + "profiles": [], + "name": "\ue030Android67524495", + "isBan": false, + "isMuted": false, + "accountAge": "2024-06-08 09:29:13", + "registerOn": 1720122041.8715398, + "spamCount": 0, + "lastSpam": 1720122041.87154, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720122041.8715491, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720122041.8715503, + "lastIP": "a~o~~`aajd|va{h" + }, + "pb-IF5dUnMoVQ==": { + "display_string": [ + "\ue063Nihal18" + ], + "profiles": [], + "name": "\ue063Nihal18", + "isBan": false, + "isMuted": false, + "accountAge": "2021-12-04 03:40:48", + "registerOn": 1720122055.9840617, + "spamCount": 0, + "lastSpam": 1720122055.9840617, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720122055.9840674, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720122055.9840689, + "lastIP": "a\u007fn~}jbajbzvb{m" + }, + "pb-IF4MUxVTLg==": { + "display_string": [ + "\ue063NoName7747799" + ], + "profiles": [], + "name": "\ue063NoName7747799", + "isBan": false, + "isMuted": false, + "accountAge": "2022-05-15 05:30:24", + "registerOn": 1720131098.5390823, + "spamCount": 0, + "lastSpam": 1720131098.5390825, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720131098.5390894, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720131098.5390902, + "lastIP": "b\u007fl~~aiaj`}vhz" + }, + "pb-IF4WUGkzFA==": { + "display_string": [ + "\ue063LengthyGr2" + ], + "profiles": [], + "name": "\ue063LengthyGr2", + "isBan": false, + "isMuted": false, + "accountAge": "2024-04-18 04:43:56", + "registerOn": 1720131137.699392, + "spamCount": 0, + "lastSpam": 1720131137.6993923, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720131137.699398, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720131137.699399, + "lastIP": "ax`~~mba`~|i" + }, + "pb-IF4KUWM5KQ==": { + "display_string": [ + "\ue063Carl3413" + ], + "profiles": [], + "name": "\ue063Carl3413", + "isBan": false, + "isMuted": false, + "accountAge": "2024-06-23 19:36:59", + "registerOn": 1720131236.0282, + "spamCount": 0, + "lastSpam": 1720131236.0282004, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720131236.0282063, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720131236.028207, + "lastIP": "a~i~vh~}jcamf" + }, + "pb-IF4gU1AvVw==": { + "display_string": [ + "\ue030Android64022296" + ], + "profiles": [], + "name": "\ue030Android64022296", + "isBan": false, + "isMuted": false, + "accountAge": "2022-12-10 05:15:22", + "registerOn": 1720131297.2537034, + "spamCount": 0, + "lastSpam": 1720131297.2537038, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720131297.2537098, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720131297.253711, + "lastIP": "d~vbzj~}m~~`d" + }, + "pb-IF4oUWQjMg==": { + "display_string": "\ue063ThreeT1736", + "profiles": [], + "name": "\ue063ThreeT1736", + "isBan": false, + "isMuted": false, + "accountAge": "2024-07-03 18:56:32", + "registerOn": 1720131301.2674959, + "spamCount": 0, + "lastSpam": 1720131301.267496, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720131301.2675025, + "verified": false, + "rejoincount": 1, + "lastJoin": 1720131301.2675033, + "lastIP": "a}m~~nfaiavvaxo" + }, + "pb-IF4pU1FYDQ==": { + "display_string": [ + "\ue063YashGabani" + ], + "profiles": [], + "name": "\ue063YashGabani", + "isBan": false, + "isMuted": false, + "accountAge": "2022-12-10 14:13:46", + "registerOn": 1720150888.6958556, + "spamCount": 0, + "lastSpam": 1720150888.695856, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720150888.695862, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720150888.6958628, + "lastIP": "dvvd|vc|va{h", + "cMsgCount": 0, + "lastMsgTime": 1720151084.5696535, + "lastMsg": "let me use that warns", + "cSameMsg": 0 + }, + "pb-IF4QVWgkUg==": { + "display_string": [ + "\ue063Jdnath20mi", + "\ue030Android48024807" + ], + "profiles": [], + "name": "\ue063Jdnath20mi", + "isBan": false, + "isMuted": false, + "accountAge": "2020-11-01 10:10:35", + "registerOn": 1720150948.9086146, + "spamCount": 0, + "lastSpam": 1720150948.9086154, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720150948.9086218, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720150948.9086225, + "lastIP": "a~h~zl~~kbaig\u007f" + }, + "pb-IF4RUBkvVA==": { + "display_string": [ + "\ue063koanboicho", + "\ue020koanboicho", + "\ue030Android64939624", + "\ue030Android64311759" + ], + "profiles": [], + "name": "\ue063koanboicho", + "isBan": false, + "isMuted": false, + "accountAge": "2023-04-06 12:45:43", + "registerOn": 1720150966.997919, + "spamCount": 0, + "lastSpam": 1720150966.9979193, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720150966.9979253, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720150966.9979262, + "lastIP": "a{vaxh~}jdai`~", + "cMsgCount": 0, + "lastMsgTime": 1720150984.140793, + "lastMsg": "\ue030Android64311759: do u want free name?", + "cSameMsg": 0 + }, + "pb-IF4KUk5TDA==": { + "display_string": [ + "\ue063Parochi850" + ], + "profiles": [], + "name": "\ue063Parochi850", + "isBan": false, + "isMuted": false, + "accountAge": "2024-04-28 09:41:44", + "registerOn": 1720151108.6324549, + "spamCount": 0, + "lastSpam": 1720151108.6324553, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720151108.6324613, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720151108.6324625, + "lastIP": "a}h~}a~y`~~lb" } } \ No newline at end of file diff --git a/dist/ba_root/mods/playersData/profiles.json.backup b/dist/ba_root/mods/playersData/profiles.json.backup index 6831734..28c74da 100644 --- a/dist/ba_root/mods/playersData/profiles.json.backup +++ b/dist/ba_root/mods/playersData/profiles.json.backup @@ -93,12 +93,12 @@ "lastSpam": 1710411839.3627186, "totaltimeplayer": 0, "warnCount": 0, - "lastWarned": 1710615975.5722473, + "lastWarned": 1720119610.4890106, "verified": true, "rejoincount": 1, - "lastJoin": 1710615975.5722485, - "lastIP": "a|j~~mdaliajd|", - "deviceUUID": "266316aee91354727e5010c2fc1cc9ee1dfffec6", + "lastJoin": 1720119610.4890122, + "lastIP": "dvvd}vczvdy", + "deviceUUID": "d9e5990909030fcb7b0740de3398a0716edd6181", "cMsgCount": 0, "lastMsgTime": 1710500631.8629982, "lastMsg": "\ud83d\ude2d\ud83d\ude2d\ud83d\ude2d", @@ -233,16 +233,16 @@ "lastSpam": 1711790933.6729364, "totaltimeplayer": 0, "warnCount": 0, - "lastWarned": 1715785454.8126853, + "lastWarned": 1720133250.1828523, "verified": true, "rejoincount": 1, - "lastJoin": 1715785454.8126867, - "lastIP": "a\u007fn~}jaajb\u007fvfx", + "lastJoin": 1720133250.1828537, + "lastIP": "a~o~va~}lgaoe", "cMsgCount": 0, - "lastMsgTime": 1715783748.7271104, - "lastMsg": "/gm", + "lastMsgTime": 1720101375.1989813, + "lastMsg": "/end", "cSameMsg": 0, - "deviceUUID": "7bef6a75be2da54d2c804be1e3c2dbcc2ee99a2e" + "deviceUUID": "c679d21da7319d51f769feafb6a824ccd1dcbdd1" }, "pb-IF4gUnMlCg==": { "display_string": [ @@ -537,10 +537,10 @@ "lastSpam": 1712141612.7471426, "totaltimeplayer": 0, "warnCount": 0, - "lastWarned": 1715770545.7852263, + "lastWarned": 1720118237.4256992, "verified": true, "rejoincount": 1, - "lastJoin": 1715770545.7852275, + "lastJoin": 1720130148.8333244, "lastIP": "a{i~~lgajdaif}", "deviceUUID": "4da63e77c8e855d8d121f66e6efdb706c65f6e05" }, @@ -1470,5 +1470,646 @@ "rejoincount": 1, "lastJoin": 1715771400.2232075, "lastIP": "dvvdxvhajav" + }, + "pb-IF4BUlQBJw==": { + "display_string": [ + "\ue063V0RT3X" + ], + "profiles": [], + "name": "\ue063V0RT3X", + "isBan": false, + "isMuted": false, + "accountAge": "2022-04-03 10:56:42", + "registerOn": 1720114418.416464, + "spamCount": 0, + "lastSpam": 1720114418.4164646, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720150855.3581924, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720150855.3581936, + "lastIP": "azj~zo~}icaof", + "cMsgCount": 0, + "lastMsgTime": 1720151074.0899043, + "lastMsg": "alright that's what I wanted to test ", + "cSameMsg": 0, + "deviceUUID": "ef86bb93ac5bf094c4332107ed4101624fe3f5d6" + }, + "pb-IF4pU2I4Pw==": { + "display_string": [ + "\ue063NNOOOOBBSS" + ], + "profiles": [], + "name": "\ue063NNOOOOBBSS", + "isBan": false, + "isMuted": false, + "accountAge": "2022-06-05 16:24:30", + "registerOn": 1720114656.3048496, + "spamCount": 0, + "lastSpam": 1720114656.3048503, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720114656.304856, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720114656.304857, + "lastIP": "bxvevvgvvaxh" + }, + "pb-IF4nUWQxHw==": { + "display_string": [ + "\ue063Fourte1103" + ], + "profiles": [], + "name": "\ue063Fourte1103", + "isBan": false, + "isMuted": false, + "accountAge": "2024-07-03 20:48:53", + "registerOn": 1720114704.4646673, + "spamCount": 0, + "lastSpam": 1720114704.4646678, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720114704.4646747, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720114704.4646757, + "lastIP": "awh~}liaifzvb|" + }, + "pb-IF4UU2ldEg==": { + "display_string": [ + "\ue063ZEUS609" + ], + "profiles": [], + "name": "\ue063ZEUS609", + "isBan": false, + "isMuted": false, + "accountAge": "2022-06-27 17:34:19", + "registerOn": 1720115210.3352227, + "spamCount": 0, + "lastSpam": 1720115210.3352232, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720150897.488429, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720150897.4884343, + "lastIP": "a\u007fk~vl~~lbam", + "cMsgCount": 0, + "lastMsgTime": 1720150924.4838533, + "lastMsg": "Do you checking this sever ", + "cSameMsg": 0, + "deviceUUID": "27cf925374553d6441507e352ef0d83b84eb2dbd" + }, + "pb-IF4KUBQFJA==": { + "display_string": [ + "\ue063URMOM69", + "\ue030PC591985" + ], + "profiles": [], + "name": "\ue030PC591985", + "isBan": false, + "isMuted": false, + "accountAge": "2024-06-08 20:18:20", + "registerOn": 1720115339.823318, + "spamCount": 0, + "lastSpam": 1720115339.8233185, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720115339.8233232, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115339.8233244, + "lastIP": "azj~z`~}kia`", + "cMsgCount": 0, + "lastMsgTime": 1720115658.20891, + "lastMsg": "aight im out", + "cSameMsg": 0 + }, + "pb-IF4GUEFaJg==": { + "display_string": [ + "\ue063masterGG" + ], + "profiles": [], + "name": "\ue063masterGG", + "isBan": false, + "isMuted": false, + "accountAge": "2023-09-21 23:28:52", + "registerOn": 1720115407.0242171, + "spamCount": 0, + "lastSpam": 1720115407.0242176, + "totaltimeplayer": 0, + "warnCount": 1, + "lastWarned": 1720116100.1797893, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115407.0242248, + "lastIP": "gvva~a~zk~}ma", + "cMsgCount": 1, + "lastMsgTime": 1720116102.6057553, + "lastMsg": "pro ", + "cSameMsg": 0 + }, + "pb-IF4-VXk-Mg==": { + "display_string": [ + "\ue063DoBlehGreg" + ], + "profiles": [], + "name": "\ue063DoBlehGreg", + "isBan": false, + "isMuted": false, + "accountAge": "2021-03-04 21:31:52", + "registerOn": 1720115524.5189767, + "spamCount": 0, + "lastSpam": 1720115524.5189772, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720115524.5189836, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115524.518984, + "lastIP": "awh~}lhaj`amg" + }, + "pb-IF5RUE0ABg==": { + "display_string": [ + "\ue030Android66440089" + ], + "profiles": [], + "name": "\ue030Android66440089", + "isBan": false, + "isMuted": false, + "accountAge": "2023-12-02 19:25:28", + "registerOn": 1720115699.2077131, + "spamCount": 0, + "lastSpam": 1720115699.2077134, + "totaltimeplayer": 0, + "warnCount": 1, + "lastWarned": 1720115981.0829563, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115699.2077203, + "lastIP": "a~n~}hfaaaaiez", + "cMsgCount": 2, + "lastMsgTime": 1720116119.7301304, + "lastMsg": "server name is super pro players?", + "cSameMsg": 0 + }, + "pb-IF4gU1EhDQ==": { + "display_string": [ + "\ue063heymigs13" + ], + "profiles": [], + "name": "\ue063heymigs13", + "isBan": false, + "isMuted": false, + "accountAge": "2022-12-17 18:11:42", + "registerOn": 1720115756.4471498, + "spamCount": 0, + "lastSpam": 1720115756.4471502, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720115756.4471571, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115756.447158, + "lastIP": "axo~zl~~obaic{" + }, + "pb-IF4oVWgMDA==": { + "display_string": [ + "\ue063RoyalAcco4" + ], + "profiles": [], + "name": "\ue063RoyalAcco4", + "isBan": false, + "isMuted": false, + "accountAge": "2020-10-31 00:09:21", + "registerOn": 1720115982.2512202, + "spamCount": 0, + "lastSpam": 1720115982.2512207, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720115982.2512279, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720115982.2512288, + "lastIP": "a~l~~jeajcajdx" + }, + "pb-IF5TUhAELw==": { + "display_string": [ + "\ue063Fruitle182" + ], + "profiles": [], + "name": "\ue063Fruitle182", + "isBan": false, + "isMuted": false, + "accountAge": "2021-07-26 23:00:03", + "registerOn": 1720116142.9885633, + "spamCount": 0, + "lastSpam": 1720116142.9885638, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720116142.9885705, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720116142.9885712, + "lastIP": "b}k~~`baibam" + }, + "pb-IF4GUEMzLg==": { + "display_string": [ + "\ue063justalonel" + ], + "profiles": [], + "name": "\ue063justalonel", + "isBan": false, + "isMuted": false, + "accountAge": "2023-10-09 00:00:38", + "registerOn": 1720116171.058948, + "spamCount": 0, + "lastSpam": 1720116171.0589483, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720116171.0589547, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720116171.0589554, + "lastIP": "a\u007fk~~`iaiaajc|" + }, + "pb-IF4GURNbPQ==": { + "display_string": [ + "\ue063NoobMas167" + ], + "profiles": [], + "name": "\ue063NoobMas167", + "isBan": false, + "isMuted": false, + "accountAge": "2024-04-09 19:10:51", + "registerOn": 1720116256.2756033, + "spamCount": 0, + "lastSpam": 1720116256.2756038, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720116256.2756095, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720116256.2756834, + "lastIP": "a~o~}k`a`gajcz" + }, + "pb-IF4HU3YGBw==": { + "display_string": [ + "\ue063Companion3" + ], + "profiles": [], + "name": "\ue063Companion3", + "isBan": false, + "isMuted": false, + "accountAge": "2022-08-21 13:54:32", + "registerOn": 1720116585.5642297, + "spamCount": 0, + "lastSpam": 1720116585.5642302, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720116585.5642369, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720116585.5642376, + "lastIP": "f~vb{m~~o`aj`\u007f" + }, + "pb-IF4QUFgyCg==": { + "display_string": [ + "\ue063Unearne423" + ], + "profiles": [], + "name": "\ue063Unearne423", + "isBan": false, + "isMuted": false, + "accountAge": "2024-03-05 21:13:21", + "registerOn": 1720116821.710257, + "spamCount": 0, + "lastSpam": 1720116821.7102573, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720116821.710264, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720116821.7102652, + "lastIP": "a\u007fk~~niajazva\u007fo" + }, + "pb-IF40UEwoPA==": { + "display_string": [ + "\ue063Avalolli" + ], + "profiles": [], + "name": "\ue063Avalolli", + "isBan": false, + "isMuted": false, + "accountAge": "2023-12-11 18:27:17", + "registerOn": 1720121313.1251252, + "spamCount": 0, + "lastSpam": 1720121313.1251256, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720121313.1251373, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720123332.393465, + "lastIP": "a}h~}a~~hiaib{", + "deviceUUID": "4cb3ad722d24cc1fbb9d9e3103d1a7cbf7fd19ce", + "cMsgCount": 0, + "lastMsgTime": 1720123138.2355554, + "lastMsg": "end", + "cSameMsg": 0 + }, + "pb-IF4NU1lYFg==": { + "display_string": [ + "\ue063Stormster" + ], + "profiles": [], + "name": "\ue063Stormster", + "isBan": false, + "isMuted": false, + "accountAge": "2024-02-17 07:41:00", + "registerOn": 1720121479.7300992, + "spamCount": 0, + "lastSpam": 1720121479.7300994, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720121479.730105, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720122384.8487408, + "lastIP": "aakiaofaj`z", + "deviceUUID": "259df46fae12aeae243cb8fe58c2607f7465dafe" + }, + "pb-IF4wU0JbKg==": { + "display_string": [ + "\ue063Optimis530" + ], + "profiles": [], + "name": "\ue063Optimis530", + "isBan": false, + "isMuted": false, + "accountAge": "2022-09-13 18:30:15", + "registerOn": 1720121537.9382904, + "spamCount": 0, + "lastSpam": 1720121537.9382908, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720121537.9382968, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720121537.9382975, + "lastIP": "a}j~~jia`gaja{" + }, + "pb-IF4FUkIOFg==": { + "display_string": [ + "\ue063Noonme1380", + "\ue030Android56943236", + "\ue030Android58307557" + ], + "profiles": [], + "name": "\ue063Noonme1380", + "isBan": false, + "isMuted": false, + "accountAge": "2022-01-23 10:51:20", + "registerOn": 1720121761.842964, + "spamCount": 0, + "lastSpam": 1720121761.8429644, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720121761.8429701, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720121761.8429706, + "lastIP": "az`~yj~zl~~li" + }, + "pb-IF4PURkRFw==": { + "display_string": [ + "\ue030Android67524495" + ], + "profiles": [], + "name": "\ue030Android67524495", + "isBan": false, + "isMuted": false, + "accountAge": "2024-06-08 09:29:13", + "registerOn": 1720122041.8715398, + "spamCount": 0, + "lastSpam": 1720122041.87154, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720122041.8715491, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720122041.8715503, + "lastIP": "a~o~~`aajd|va{h" + }, + "pb-IF5dUnMoVQ==": { + "display_string": [ + "\ue063Nihal18" + ], + "profiles": [], + "name": "\ue063Nihal18", + "isBan": false, + "isMuted": false, + "accountAge": "2021-12-04 03:40:48", + "registerOn": 1720122055.9840617, + "spamCount": 0, + "lastSpam": 1720122055.9840617, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720122055.9840674, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720122055.9840689, + "lastIP": "a\u007fn~}jbajbzvb{m" + }, + "pb-IF4MUxVTLg==": { + "display_string": [ + "\ue063NoName7747799" + ], + "profiles": [], + "name": "\ue063NoName7747799", + "isBan": false, + "isMuted": false, + "accountAge": "2022-05-15 05:30:24", + "registerOn": 1720131098.5390823, + "spamCount": 0, + "lastSpam": 1720131098.5390825, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720131098.5390894, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720131098.5390902, + "lastIP": "b\u007fl~~aiaj`}vhz" + }, + "pb-IF4WUGkzFA==": { + "display_string": [ + "\ue063LengthyGr2" + ], + "profiles": [], + "name": "\ue063LengthyGr2", + "isBan": false, + "isMuted": false, + "accountAge": "2024-04-18 04:43:56", + "registerOn": 1720131137.699392, + "spamCount": 0, + "lastSpam": 1720131137.6993923, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720131137.699398, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720131137.699399, + "lastIP": "ax`~~mba`~|i" + }, + "pb-IF4KUWM5KQ==": { + "display_string": [ + "\ue063Carl3413" + ], + "profiles": [], + "name": "\ue063Carl3413", + "isBan": false, + "isMuted": false, + "accountAge": "2024-06-23 19:36:59", + "registerOn": 1720131236.0282, + "spamCount": 0, + "lastSpam": 1720131236.0282004, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720131236.0282063, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720131236.028207, + "lastIP": "a~i~vh~}jcamf" + }, + "pb-IF4gU1AvVw==": { + "display_string": [ + "\ue030Android64022296" + ], + "profiles": [], + "name": "\ue030Android64022296", + "isBan": false, + "isMuted": false, + "accountAge": "2022-12-10 05:15:22", + "registerOn": 1720131297.2537034, + "spamCount": 0, + "lastSpam": 1720131297.2537038, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720131297.2537098, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720131297.253711, + "lastIP": "d~vbzj~}m~~`d" + }, + "pb-IF4oUWQjMg==": { + "display_string": "\ue063ThreeT1736", + "profiles": [], + "name": "\ue063ThreeT1736", + "isBan": false, + "isMuted": false, + "accountAge": "2024-07-03 18:56:32", + "registerOn": 1720131301.2674959, + "spamCount": 0, + "lastSpam": 1720131301.267496, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720131301.2675025, + "verified": false, + "rejoincount": 1, + "lastJoin": 1720131301.2675033, + "lastIP": "a}m~~nfaiavvaxo" + }, + "pb-IF4pU1FYDQ==": { + "display_string": [ + "\ue063YashGabani" + ], + "profiles": [], + "name": "\ue063YashGabani", + "isBan": false, + "isMuted": false, + "accountAge": "2022-12-10 14:13:46", + "registerOn": 1720150888.6958556, + "spamCount": 0, + "lastSpam": 1720150888.695856, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720150888.695862, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720150888.6958628, + "lastIP": "dvvd|vc|va{h", + "cMsgCount": 0, + "lastMsgTime": 1720151084.5696535, + "lastMsg": "let me use that warns", + "cSameMsg": 0 + }, + "pb-IF4QVWgkUg==": { + "display_string": [ + "\ue063Jdnath20mi", + "\ue030Android48024807" + ], + "profiles": [], + "name": "\ue063Jdnath20mi", + "isBan": false, + "isMuted": false, + "accountAge": "2020-11-01 10:10:35", + "registerOn": 1720150948.9086146, + "spamCount": 0, + "lastSpam": 1720150948.9086154, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720150948.9086218, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720150948.9086225, + "lastIP": "a~h~zl~~kbaig\u007f" + }, + "pb-IF4RUBkvVA==": { + "display_string": [ + "\ue063koanboicho", + "\ue020koanboicho", + "\ue030Android64939624", + "\ue030Android64311759" + ], + "profiles": [], + "name": "\ue063koanboicho", + "isBan": false, + "isMuted": false, + "accountAge": "2023-04-06 12:45:43", + "registerOn": 1720150966.997919, + "spamCount": 0, + "lastSpam": 1720150966.9979193, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720150966.9979253, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720150966.9979262, + "lastIP": "a{vaxh~}jdai`~", + "cMsgCount": 0, + "lastMsgTime": 1720150984.140793, + "lastMsg": "\ue030Android64311759: do u want free name?", + "cSameMsg": 0 + }, + "pb-IF4KUk5TDA==": { + "display_string": [ + "\ue063Parochi850" + ], + "profiles": [], + "name": "\ue063Parochi850", + "isBan": false, + "isMuted": false, + "accountAge": "2024-04-28 09:41:44", + "registerOn": 1720151108.6324549, + "spamCount": 0, + "lastSpam": 1720151108.6324553, + "totaltimeplayer": 0, + "warnCount": 0, + "lastWarned": 1720151108.6324613, + "verified": true, + "rejoincount": 1, + "lastJoin": 1720151108.6324625, + "lastIP": "a}h~}a~y`~~lb" } } \ No newline at end of file diff --git a/dist/ba_root/mods/playersData/roles.json b/dist/ba_root/mods/playersData/roles.json index fa11ef2..1618e22 100644 --- a/dist/ba_root/mods/playersData/roles.json +++ b/dist/ba_root/mods/playersData/roles.json @@ -10,8 +10,8 @@ "ALL" ], "ids": [ - "pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH", - "pb-IF4BUlQBJw==" + "pb-IF4BUlQBJw==", + "pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH" ] }, "co-owner": { @@ -404,7 +404,11 @@ ], "commands": [], "ids": [ - "pb-IF4VAk4a" + "pb-IF40UEwoPA==", + "pb-IF4FUkIOFg==", + "pb-IF4UU2ldEg==", + "pb-IF4KUBQFJA==", + "pb-IF4GUEFaJg==" ] }, "bypass-warn": { diff --git a/dist/ba_root/mods/playersData/roles.json.backup b/dist/ba_root/mods/playersData/roles.json.backup index fa11ef2..1618e22 100644 --- a/dist/ba_root/mods/playersData/roles.json.backup +++ b/dist/ba_root/mods/playersData/roles.json.backup @@ -10,8 +10,8 @@ "ALL" ], "ids": [ - "pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH", - "pb-IF4BUlQBJw==" + "pb-IF4BUlQBJw==", + "pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH" ] }, "co-owner": { @@ -404,7 +404,11 @@ ], "commands": [], "ids": [ - "pb-IF4VAk4a" + "pb-IF40UEwoPA==", + "pb-IF4FUkIOFg==", + "pb-IF4UU2ldEg==", + "pb-IF4KUBQFJA==", + "pb-IF4GUEFaJg==" ] }, "bypass-warn": { diff --git a/dist/ba_root/mods/plugins/__pycache__/CharacterChooser.cpython-310.opt-1.pyc b/dist/ba_root/mods/plugins/__pycache__/CharacterChooser.cpython-310.opt-1.pyc index f5064fa..c4ea295 100644 Binary files a/dist/ba_root/mods/plugins/__pycache__/CharacterChooser.cpython-310.opt-1.pyc and b/dist/ba_root/mods/plugins/__pycache__/CharacterChooser.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/plugins/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/plugins/__pycache__/__init__.cpython-310.opt-1.pyc index 421c88a..5906e3e 100644 Binary files a/dist/ba_root/mods/plugins/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/plugins/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/plugins/__pycache__/color_explosion.cpython-310.opt-1.pyc b/dist/ba_root/mods/plugins/__pycache__/color_explosion.cpython-310.opt-1.pyc new file mode 100644 index 0000000..ca1b657 Binary files /dev/null and b/dist/ba_root/mods/plugins/__pycache__/color_explosion.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/plugins/__pycache__/colorfulmaps2.cpython-310.opt-1.pyc b/dist/ba_root/mods/plugins/__pycache__/colorfulmaps2.cpython-310.opt-1.pyc new file mode 100644 index 0000000..39ebee4 Binary files /dev/null and b/dist/ba_root/mods/plugins/__pycache__/colorfulmaps2.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/plugins/__pycache__/elPatronPowerups.cpython-310.opt-1.pyc b/dist/ba_root/mods/plugins/__pycache__/elPatronPowerups.cpython-310.opt-1.pyc index f141896..dd17729 100644 Binary files a/dist/ba_root/mods/plugins/__pycache__/elPatronPowerups.cpython-310.opt-1.pyc and b/dist/ba_root/mods/plugins/__pycache__/elPatronPowerups.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/plugins/__pycache__/importcustomcharacters.cpython-310.opt-1.pyc b/dist/ba_root/mods/plugins/__pycache__/importcustomcharacters.cpython-310.opt-1.pyc index 6903e2f..9734db3 100644 Binary files a/dist/ba_root/mods/plugins/__pycache__/importcustomcharacters.cpython-310.opt-1.pyc and b/dist/ba_root/mods/plugins/__pycache__/importcustomcharacters.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/plugins/color_explosion.py b/dist/ba_root/mods/plugins/color_explosion.py index e86f102..32a978f 100644 --- a/dist/ba_root/mods/plugins/color_explosion.py +++ b/dist/ba_root/mods/plugins/color_explosion.py @@ -1,19 +1,21 @@ """Define a simple example plugin.""" # ba_meta require api 7 +#by SARA from __future__ import annotations +import random + from typing import TYPE_CHECKING import ba -import random from bastd.actor import bomb from bastd.actor.bomb import BombFactory from bastd.gameutils import SharedObjects if TYPE_CHECKING: - from typing import Any, Sequence, Optional, Callable + from typing import Sequence def new_blast_init( @@ -22,7 +24,7 @@ def new_blast_init( velocity: Sequence[float] = (0.0, 0.0, 0.0), blast_radius: float = 2.0, blast_type: str = "normal", - source_player: ba.Player = None, + source_player: bs.Player = None, hit_type: str = "explosion", hit_subtype: str = "normal", ): @@ -71,6 +73,10 @@ def new_blast_init( ) if self.blast_type == "ice": explosion.color = (0, 0.05, 0.4) + else: + explosion.color = (random.random() * 3, + random.random() * 3, + random.random() * 3) ba.timer(1.0, explosion.delete) @@ -231,7 +237,6 @@ def new_blast_init( # TNT throws splintery chunks. if self.blast_type == "tnt": - def emit_splinters() -> None: ba.emitfx( position=position, @@ -246,7 +251,6 @@ def new_blast_init( # Every now and then do a sparky one. if self.blast_type == "tnt" or random.random() < 0.1: - def emit_extra_sparks() -> None: ba.emitfx( position=position, @@ -336,7 +340,7 @@ def new_blast_init( ba.playsound(factory.random_explode_sound(), position=lpos) def _extra_boom() -> None: - ba.playsound(factory.random_explode_sound(), position=lpos) + ba.playsound(factory.random_explode_sound(), position=lpos) ba.timer(0.25, _extra_boom) diff --git a/dist/ba_root/mods/plugins/colorfulmaps2.py b/dist/ba_root/mods/plugins/colorfulmaps2.py index 66bcc66..e21afc3 100644 --- a/dist/ba_root/mods/plugins/colorfulmaps2.py +++ b/dist/ba_root/mods/plugins/colorfulmaps2.py @@ -1,18 +1,21 @@ # This plugin developed fro Bombsquad Server, and I don't know how to make UI # Just edit Config before starting server -# by: Lirik -# Further edited/Fixed by:Freak -import ba -import random +#by SARA +#api 7 new colourfulmaps + from random import choice + +import ba +from ba._map import Map + CONFIGS = { "Radius": 2.0, "Blinking": False, "AdaptivePos": True, "IgnoreOnMaps": [], "Colors": { - "Intensity": 0.5, - "Animate": True, + "Intensity": 0.6, + "Animate": False, "Random": True, "LeftSide": (1, 0, 1), "RightSide": (0, 0, 1), @@ -53,7 +56,7 @@ def get_adaptive_pos(name: str) -> tuple: def Map___init__(func): - """Redefined method for ba.Map""" + """Redefined method for babase.Map""" def wrapper(self, vr_overlay_offset=None): func(self, vr_overlay_offset) @@ -120,4 +123,4 @@ def Map___init__(func): return wrapper -ba.Map.__init__ = Map___init__(ba.Map.__init__) +Map.__init__ = Map___init__(Map.__init__) diff --git a/dist/ba_root/mods/pytz/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/pytz/__pycache__/__init__.cpython-310.opt-1.pyc index 478a0da..44e3aee 100644 Binary files a/dist/ba_root/mods/pytz/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/pytz/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/pytz/__pycache__/exceptions.cpython-310.opt-1.pyc b/dist/ba_root/mods/pytz/__pycache__/exceptions.cpython-310.opt-1.pyc index c3a430c..27d8a49 100644 Binary files a/dist/ba_root/mods/pytz/__pycache__/exceptions.cpython-310.opt-1.pyc and b/dist/ba_root/mods/pytz/__pycache__/exceptions.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/pytz/__pycache__/lazy.cpython-310.opt-1.pyc b/dist/ba_root/mods/pytz/__pycache__/lazy.cpython-310.opt-1.pyc index 2686b30..3337128 100644 Binary files a/dist/ba_root/mods/pytz/__pycache__/lazy.cpython-310.opt-1.pyc and b/dist/ba_root/mods/pytz/__pycache__/lazy.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/pytz/__pycache__/tzfile.cpython-310.opt-1.pyc b/dist/ba_root/mods/pytz/__pycache__/tzfile.cpython-310.opt-1.pyc index dcf25d3..1337a0a 100644 Binary files a/dist/ba_root/mods/pytz/__pycache__/tzfile.cpython-310.opt-1.pyc and b/dist/ba_root/mods/pytz/__pycache__/tzfile.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/pytz/__pycache__/tzinfo.cpython-310.opt-1.pyc b/dist/ba_root/mods/pytz/__pycache__/tzinfo.cpython-310.opt-1.pyc index 4777397..094b5c5 100644 Binary files a/dist/ba_root/mods/pytz/__pycache__/tzinfo.cpython-310.opt-1.pyc and b/dist/ba_root/mods/pytz/__pycache__/tzinfo.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/sara.py b/dist/ba_root/mods/sara.py deleted file mode 100644 index 36e3e31..0000000 --- a/dist/ba_root/mods/sara.py +++ /dev/null @@ -1 +0,0 @@ -#test file diff --git a/dist/ba_root/mods/serverData/Chat Logs.log b/dist/ba_root/mods/serverData/Chat Logs.log index 9efc739..9992a60 100644 --- a/dist/ba_root/mods/serverData/Chat Logs.log +++ b/dist/ba_root/mods/serverData/Chat Logs.log @@ -16,3 +16,212 @@ 2024-05-15 20:05:10 + : Host msg: | | Kills: 0 2024-05-15 20:05:10 + : Host msg: | | Deaths: 1 2024-05-15 20:05:10 + : Host msg: | | Avg.: 50.0 +2024-07-04 19:25:12 + : pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH | SARA0786| SARA0786 | /ping +2024-07-04 19:25:12 + : Host msg: | Your ping 98ms +2024-07-04 19:25:19 + : pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH | SARA0786| SARA0786 | /ping +2024-07-04 19:25:19 + : Host msg: | Your ping 86ms +2024-07-04 19:25:21 + : pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH | SARA0786| SARA0786 | /ping +2024-07-04 19:25:21 + : Host msg: | Your ping 93ms +2024-07-04 19:25:42 + : pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH | SARA0786| SARA0786 | /removerole owner 113 +2024-07-04 19:25:42 + : Host msg: | owner role Removed +2024-07-04 19:25:42 + : Host msg: | owner role Removed +2024-07-04 19:25:51 + : pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH | SARA0786| SARA0786 | /nv +2024-07-04 19:26:03 + : pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH | SARA0786| SARA0786 | /addrole owner 113 +2024-07-04 23:04:09 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /public +2024-07-04 23:06:10 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /party +2024-07-04 23:07:01 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /party public +2024-07-04 23:07:01 + : Host msg: | party is public now +2024-07-04 23:07:01 + : Host msg: | party is public now +2024-07-04 23:07:12 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /tint 1 1 1 +2024-07-04 23:17:00 + : pb-IF4UU2ldEg== | ZEUS609| | hello +2024-07-04 23:17:03 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | join game +2024-07-04 23:17:17 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | bro +2024-07-04 23:17:26 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | ah we need one more +2024-07-04 23:17:36 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | why top members can't play in sara +2024-07-04 23:17:37 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | wanted to test betray kick system +2024-07-04 23:17:47 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | ok +2024-07-04 23:17:55 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | ah idk maybe because of server region +2024-07-04 23:18:19 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | except top 1st member +2024-07-04 23:18:32 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | are u owner here ? +2024-07-04 23:18:37 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | No +2024-07-04 23:18:50 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | btw I have added code to get owner 😁 +2024-07-04 23:19:00 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | it's works from mongo +2024-07-04 23:19:04 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | oh +2024-07-04 23:19:10 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | so who is the owner +2024-07-04 23:19:36 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /sm +2024-07-04 23:19:42 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /sm +2024-07-04 23:19:50 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /sm +2024-07-04 23:20:15 + : pb-IF4GUEFaJg== | masterGG| mastergg | hi +2024-07-04 23:21:04 + : pb-IF4KUBQFJA== | PC591985| DESTINY** | reduce the effects yeah? +2024-07-04 23:21:11 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | whar is the requirement for vip +2024-07-04 23:21:14 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | ah u are facing lag +2024-07-04 23:21:20 + : pb-IF4GUEFaJg== | masterGG| mastergg | yes +2024-07-04 23:21:22 + : pb-IF4GUEFaJg== | masterGG| mastergg | big lag +2024-07-04 23:21:29 + : pb-IF4GUEFaJg== | masterGG| mastergg | 320 ping +2024-07-04 23:21:30 + : pb-IF4GUEFaJg== | masterGG| mastergg | haha +2024-07-04 23:21:48 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | ah multiple server are running one so +2024-07-04 23:22:04 + : pb-IF4GUEFaJg== | masterGG| mastergg | hmm idk +2024-07-04 23:22:19 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | kill me destiny +2024-07-04 23:22:53 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | lol he left +2024-07-04 23:23:34 + : pb-IF4GUEFaJg== | masterGG| mastergg | vortex? +2024-07-04 23:23:41 + : pb-IF4GUEFaJg== | masterGG| mastergg | bro? +2024-07-04 23:23:44 + : pb-IF4KUBQFJA== | PC591985| DESTINY** | he will be back +2024-07-04 23:24:18 + : pb-IF4KUBQFJA== | PC591985| DESTINY** | aight im out +2024-07-04 23:24:25 + : pb-IF4GUEFaJg== | masterGG| mastergg | ok +2024-07-04 23:24:33 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | let's go out +2024-07-04 23:24:34 + : pb-IF4GUEFaJg== | masterGG| mastergg | what do i need to do here? +2024-07-04 23:24:46 + : pb-IF4GUEFaJg== | masterGG| mastergg | i don't get it +2024-07-04 23:24:54 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | Leave this server +2024-07-04 23:24:58 + : pb-IF4GUEFaJg== | masterGG| mastergg | why +2024-07-04 23:25:05 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | no players +2024-07-04 23:25:14 + : pb-IF5RUE0ABg== | Android66440089| scorpion | oh no +2024-07-04 23:25:17 + : pb-IF4GUEFaJg== | masterGG| mastergg | im wating my friend vortex +2024-07-04 23:25:24 + : pb-IF4GUEFaJg== | masterGG| mastergg | he said to join he's server +2024-07-04 23:25:59 + : pb-IF5RUE0ABg== | Android66440089| scorpion | lol +2024-07-04 23:26:05 + : pb-IF4GUEFaJg== | masterGG| mastergg | let me go +2024-07-04 23:26:08 + : pb-IF5RUE0ABg== | Android66440089| scorpion | no +2024-07-04 23:26:12 + : pb-IF4GUEFaJg== | masterGG| mastergg | let me go +2024-07-04 23:26:16 + : pb-IF5RUE0ABg== | Android66440089| scorpion | am holding on for dear life +2024-07-04 23:26:25 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | lol +2024-07-04 23:26:26 + : pb-IF5RUE0ABg== | Android66440089| scorpion | lol +2024-07-04 23:26:27 + : pb-IF4GUEFaJg== | masterGG| mastergg | 0____0 +2024-07-04 23:26:41 + : pb-IF4GUEFaJg== | masterGG| mastergg | no my freind +2024-07-04 23:26:47 + : pb-IF5RUE0ABg== | Android66440089| scorpion | :) +2024-07-04 23:26:53 + : pb-IF5RUE0ABg== | Android66440089| scorpion | uh oh +2024-07-04 23:26:59 + : pb-IF4GUEFaJg== | masterGG| mastergg | help +2024-07-04 23:27:07 + : pb-IF5RUE0ABg== | Android66440089| scorpion | no dont help him +2024-07-04 23:27:12 + : pb-IF5RUE0ABg== | Android66440089| scorpion | PLEASE +2024-07-04 23:27:32 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | /me +2024-07-04 23:27:32 + : Host msg: | | Name: ZEUS609 +2024-07-04 23:27:32 + : Host msg: | | PB-ID: pb-IF4UU2ldEg== +2024-07-04 23:27:32 + : Host msg: | | Tickets: None +2024-07-04 23:27:32 + : Host msg: | | Rank: 1 +2024-07-04 23:27:32 + : Host msg: | | Score: 110 +2024-07-04 23:27:32 + : Host msg: | | Games: 3 +2024-07-04 23:27:32 + : Host msg: | | Kills: 8 +2024-07-04 23:27:32 + : Host msg: | | Deaths: 3 +2024-07-04 23:27:32 + : Host msg: | | Avg.: 36.666 +2024-07-04 23:27:37 + : pb-IF5RUE0ABg== | Android66440089| scorpion | i have braindamage by now +2024-07-04 23:27:56 + : pb-IF5RUE0ABg== | Android66440089| scorpion | nooo +2024-07-04 23:28:24 + : pb-IF5RUE0ABg== | Android66440089| scorpion | ze yeats +2024-07-04 23:28:27 + : pb-IF5RUE0ABg== | Android66440089| scorpion | yeeted lol +2024-07-04 23:28:51 + : pb-IF5RUE0ABg== | Android66440089| scorpion | you guys are top members +2024-07-04 23:28:58 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | 🤣🤣 +2024-07-04 23:29:07 + : pb-IF4GUEFaJg== | masterGG| mastergg | no im not member +2024-07-04 23:29:08 + : pb-IF5RUE0ABg== | Android66440089| scorpion | and i dont even have a score yet +2024-07-04 23:29:09 + : pb-IF4UU2ldEg== | ZEUS609| ZEUS609 | we just played 1 series +2024-07-04 23:29:13 + : pb-IF4GUEFaJg== | masterGG| mastergg | i just come to see my frined server +2024-07-04 23:29:14 + : pb-IF4GUEFaJg== | masterGG| mastergg | xd +2024-07-04 23:29:16 + : pb-IF5RUE0ABg== | Android66440089| scorpion | sureeee +2024-07-04 23:29:38 + : pb-IF4GUEFaJg== | masterGG| mastergg | ok stay here +2024-07-04 23:29:41 + : pb-IF5RUE0ABg== | Android66440089| scorpion | YOUR COMING WITH ME TO **** +2024-07-04 23:29:41 + : pb-IF4GUEFaJg== | masterGG| mastergg | i'll go smoke +2024-07-04 23:29:42 + : pb-IF4GUEFaJg== | masterGG| mastergg | xd +2024-07-04 23:29:44 + : pb-IF5RUE0ABg== | Android66440089| scorpion | bruh +2024-07-04 23:29:52 + : pb-IF4GUEFaJg== | masterGG| mastergg | if you not let me go +2024-07-04 23:29:57 + : pb-IF5RUE0ABg== | Android66440089| scorpion | ofc she joins you lol +2024-07-04 23:30:04 + : pb-IF4GUEFaJg== | masterGG| mastergg | she? +2024-07-04 23:30:10 + : pb-IF5RUE0ABg== | Android66440089| scorpion | nvm idk +2024-07-04 23:30:22 + : pb-IF5RUE0ABg== | Android66440089| scorpion | did i offend him/her? +2024-07-04 23:30:24 + : pb-IF4GUEFaJg== | masterGG| mastergg | yoo dude im getting out if vortex come back +2024-07-04 23:30:29 + : pb-IF5RUE0ABg== | Android66440089| scorpion | ok +2024-07-04 23:30:29 + : pb-IF4GUEFaJg== | masterGG| mastergg | tell him text me on discord +2024-07-04 23:30:42 + : pb-IF5RUE0ABg== | Android66440089| scorpion | why don't you tell him to text +2024-07-04 23:30:43 + : pb-IF4GUEFaJg== | masterGG| mastergg | cuz idk what do i need to do here +2024-07-04 23:30:51 + : pb-IF4GUEFaJg== | masterGG| mastergg | he's offline now +2024-07-04 23:30:55 + : pb-IF5RUE0ABg== | Android66440089| scorpion | oh +2024-07-04 23:31:00 + : pb-IF4GUEFaJg== | masterGG| mastergg | he trying something +2024-07-04 23:31:03 + : pb-IF5RUE0ABg== | Android66440089| scorpion | maybe he pranked? +2024-07-04 23:31:06 + : pb-IF4GUEFaJg== | masterGG| mastergg | he wanted to show me something +2024-07-04 23:31:09 + : pb-IF4GUEFaJg== | masterGG| mastergg | no +2024-07-04 23:31:12 + : pb-IF5RUE0ABg== | Android66440089| scorpion | oh +2024-07-04 23:31:17 + : pb-IF4GUEFaJg== | masterGG| mastergg | also wana join my server +2024-07-04 23:31:20 + : pb-IF5RUE0ABg== | Android66440089| scorpion | sure +2024-07-04 23:31:23 + : pb-IF4GUEFaJg== | masterGG| mastergg | come super pro players. +2024-07-04 23:31:29 + : pb-IF5RUE0ABg== | Android66440089| scorpion | but am not even pro +2024-07-04 23:31:37 + : pb-IF4GUEFaJg== | masterGG| mastergg | its not my problem xd +2024-07-04 23:31:40 + : pb-IF4GUEFaJg== | masterGG| mastergg | you will be +2024-07-04 23:31:42 + : pb-IF4GUEFaJg== | masterGG| mastergg | pro +2024-07-04 23:31:43 + : pb-IF5RUE0ABg== | Android66440089| scorpion | ok +2024-07-04 23:31:59 + : pb-IF5RUE0ABg== | Android66440089| scorpion | server name is super pro players? +2024-07-05 01:01:51 + : pb-IF40UEwoPA== | Avalolli| AirCaster🌪️ | end +2024-07-05 01:01:51 + : Host msg: | end vote started +2024-07-05 01:01:51 + : Host msg: | end vote succeed +2024-07-05 01:02:30 + : pb-IF40UEwoPA== | Avalolli| AirCaster🌪️ | greetings +2024-07-05 01:03:35 + : pb-IF40UEwoPA== | Avalolli| AirCaster🌪️ | /me +2024-07-05 01:03:35 + : Host msg: | | Name: Avalolli +2024-07-05 01:03:35 + : Host msg: | | PB-ID: pb-IF40UEwoPA== +2024-07-05 01:03:35 + : Host msg: | | Tickets: None +2024-07-05 01:03:35 + : Host msg: | | Rank: 4 +2024-07-05 01:03:35 + : Host msg: | | Score: 75 +2024-07-05 01:03:35 + : Host msg: | | Games: 4 +2024-07-05 01:03:35 + : Host msg: | | Kills: 2 +2024-07-05 01:03:35 + : Host msg: | | Deaths: 1 +2024-07-05 01:03:35 + : Host msg: | | Avg.: 18.75 +2024-07-05 01:09:32 + : pb-IF40UEwoPA== | Avalolli| AirCaster🌪️ | /me +2024-07-05 01:09:32 + : Host msg: | | Name: Avalolli +2024-07-05 01:09:32 + : Host msg: | | PB-ID: pb-IF40UEwoPA== +2024-07-05 01:09:32 + : Host msg: | | Tickets: None +2024-07-05 01:09:32 + : Host msg: | | Rank: 4 +2024-07-05 01:09:32 + : Host msg: | | Score: 515 +2024-07-05 01:09:32 + : Host msg: | | Games: 7 +2024-07-05 01:09:32 + : Host msg: | | Kills: 3 +2024-07-05 01:09:32 + : Host msg: | | Deaths: 5 +2024-07-05 01:09:32 + : Host msg: | | Avg.: 73.571 +2024-07-05 01:17:14 + : pb-IF40UEwoPA== | Avalolli| AirCaster🌪️ | end +2024-07-05 01:18:14 + : pb-IF40UEwoPA== | Avalolli| AirCaster🌪️ | /shop effects +2024-07-05 01:18:14 + : Host msg: | ==You can buy following items== +2024-07-05 01:18:14 + : Host msg: | ice ---- 300 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | sweat ---- 200 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | sparkground ---- 150 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | sweatground ---- 340 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | scorch ---- 350 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | rainbow ---- 400 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | splinter ---- 100 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | highlightshine ---- 150 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | iceground ---- 250 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | glow ---- 400 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | distortion ---- 750 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | fairydust ---- 1000 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | slime ---- 500 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | metal ---- 500 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | surrounder ---- 1000 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | chispitas ---- 2000 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | colorfullspark ---- 240 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | stars ---- 750 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | footprint ---- 300 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | ring ---- 5000 ---- for 1 day +2024-07-05 01:18:14 + : Host msg: | darkmagic ---- 1300 ---- for 1 day +2024-07-05 09:11:00 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /end +2024-07-05 09:11:34 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /end +2024-07-05 09:11:45 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /end +2024-07-05 09:11:55 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /end +2024-07-05 09:12:01 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | where is flag map +2024-07-05 09:12:04 + : pb-IF4UU2ldEg== | ZEUS609| | Do you checking this sever +2024-07-05 09:12:19 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | yash leave the game +2024-07-05 09:12:21 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | ZEUS609 +2024-07-05 09:12:29 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | u join in enemy team +2024-07-05 09:12:42 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | ahh +2024-07-05 09:12:54 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | ok join in my team yash +2024-07-05 09:13:04 + : pb-IF4RUBkvVA== | koanboicho| koanboicho | Android64311759: do u want free name? +2024-07-05 09:13:04 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | and betray +2024-07-05 09:13:30 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | kill +2024-07-05 09:13:35 + : Host msg: | Warning: Betraying your teammates is not allowed! +2024-07-05 09:13:35 + : Host msg: | Warn Count = 1/5!!! +2024-07-05 09:13:42 + : pb-IF4pU1FYDQ== | YashGabani| уαѕн ♔ | got warn +2024-07-05 09:13:52 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | hm that means working +2024-07-05 09:13:55 + : pb-IF4pU1FYDQ== | YashGabani| уαѕн ♔ | Warning: Betraying your teammates is not allowed! +2024-07-05 09:13:58 + : pb-IF4pU1FYDQ== | YashGabani| уαѕн ♔ | Warn Count = 1/5!!! +2024-07-05 09:14:05 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | 5 warna kick +2024-07-05 09:14:09 + : pb-IF4pU1FYDQ== | YashGabani| уαѕн ♔ | nice +2024-07-05 09:14:23 + : Host msg: | Warning: Betraying your teammates is not allowed! +2024-07-05 09:14:23 + : Host msg: | Warn Count = 1/5!!! +2024-07-05 09:14:34 + : pb-IF4BUlQBJw== | V0RT3X| V0RT3X | alright that's what I wanted to test +2024-07-05 09:14:44 + : pb-IF4pU1FYDQ== | YashGabani| уαѕн ♔ | let me use that warns +2024-07-05 09:14:52 + : Host msg: | Warning: Betraying your teammates is not allowed! +2024-07-05 09:14:52 + : Host msg: | Warn Count = 2/5!!! +2024-07-05 09:15:05 + : Host msg: | Warning: Betraying your teammates is not allowed! +2024-07-05 09:15:05 + : Host msg: | Warn Count = 3/5!!! +2024-07-05 09:15:11 + : Host msg: | Warning: Betraying your teammates is not allowed! +2024-07-05 09:15:11 + : Host msg: | Warn Count = 4/5!!! +2024-07-05 09:15:25 + : Host msg: | You have been kicked for betraying your team! diff --git a/dist/ba_root/mods/serverData/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/serverData/__pycache__/__init__.cpython-310.opt-1.pyc index c98bc77..9d73e57 100644 Binary files a/dist/ba_root/mods/serverData/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/serverData/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/serverData/__pycache__/serverdata.cpython-310.opt-1.pyc b/dist/ba_root/mods/serverData/__pycache__/serverdata.cpython-310.opt-1.pyc index 6b194ef..8272369 100644 Binary files a/dist/ba_root/mods/serverData/__pycache__/serverdata.cpython-310.opt-1.pyc and b/dist/ba_root/mods/serverData/__pycache__/serverdata.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/serverData/joining.log b/dist/ba_root/mods/serverData/joining.log index 8b7151d..d1cb779 100644 --- a/dist/ba_root/mods/serverData/joining.log +++ b/dist/ba_root/mods/serverData/joining.log @@ -8,3 +8,79 @@ 2024-05-15 20:02:43 + : SARA0786 || None || joined server 2024-05-15 20:02:44 + : SARA0786 || pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH || joined server 2024-05-15 20:04:37 + : SARA0786 || None || joined server +2024-07-04 23:03:38 + : V0RT3X || pb-IF4BUlQBJw== || joined server +2024-07-04 23:07:36 + : NNOOOOBBSS || pb-IF4pU2I4Pw== || joined server +2024-07-04 23:07:53 + : V0RT3X || None || joined server +2024-07-04 23:07:54 + : V0RT3X || pb-IF4BUlQBJw== || joined server +2024-07-04 23:08:24 + : Fourte1103 || pb-IF4nUWQxHw== || joined server +2024-07-04 23:12:27 + : V0RT3X || pb-IF4BUlQBJw== || joined server +2024-07-04 23:14:46 + : V0RT3X || None || joined server +2024-07-04 23:14:47 + : V0RT3X || pb-IF4BUlQBJw== || joined server +2024-07-04 23:16:14 + : V0RT3X || None || joined server +2024-07-04 23:16:15 + : V0RT3X || pb-IF4BUlQBJw== || joined server +2024-07-04 23:16:50 + : ZEUS609 || pb-IF4UU2ldEg== || joined server +2024-07-04 23:18:59 + : PC591985 || pb-IF4KUBQFJA== || joined server +2024-07-04 23:20:06 + : masterGG || pb-IF4GUEFaJg== || joined server +2024-07-04 23:22:03 + : DoBlehGreg || None || joined server +2024-07-04 23:22:04 + : DoBlehGreg || pb-IF4-VXk-Mg== || joined server +2024-07-04 23:24:58 + : Android66440089 || pb-IF5RUE0ABg== || joined server +2024-07-04 23:25:16 + : V0RT3X || pb-IF4BUlQBJw== || joined server +2024-07-04 23:25:56 + : heymigs13 || pb-IF4gU1EhDQ== || joined server +2024-07-04 23:29:40 + : RoyalAcco4 || None || joined server +2024-07-04 23:29:41 + : RoyalAcco4 || pb-IF4oVWgMDA== || joined server +2024-07-04 23:32:22 + : Fruitle182 || pb-IF5TUhAELw== || joined server +2024-07-04 23:32:49 + : justalonel || None || joined server +2024-07-04 23:32:50 + : justalonel || pb-IF4GUEMzLg== || joined server +2024-07-04 23:34:16 + : NoobMas167 || pb-IF4GURNbPQ== || joined server +2024-07-04 23:39:45 + : Companion3 || pb-IF4HU3YGBw== || joined server +2024-07-04 23:43:41 + : Unearne423 || pb-IF4QUFgyCg== || joined server +2024-07-05 00:07:16 + : BCS || None || joined server +2024-07-05 00:07:17 + : BCS || pb-IF4iU0QaEw== || joined server +2024-07-05 00:29:24 + : BCS || None || joined server +2024-07-05 00:29:25 + : BCS || pb-IF4iU0QaEw== || joined server +2024-07-05 00:30:10 + : TUSHAR1PUB || pb-IF41NnYI || joined server +2024-07-05 00:51:14 + : BCS || None || joined server +2024-07-05 00:51:15 + : BCS || pb-IF4iU0QaEw== || joined server +2024-07-05 00:58:32 + : Avalolli || pb-IF40UEwoPA== || joined server +2024-07-05 00:58:45 + : Avalolli || None || joined server +2024-07-05 00:58:46 + : Avalolli || pb-IF40UEwoPA== || joined server +2024-07-05 01:01:18 + : Stormster || None || joined server +2024-07-05 01:01:19 + : Stormster || pb-IF4NU1lYFg== || joined server +2024-07-05 01:01:44 + : Avalolli || None || joined server +2024-07-05 01:01:45 + : Avalolli || pb-IF40UEwoPA== || joined server +2024-07-05 01:02:06 + : TUSHAR1PUB || None || joined server +2024-07-05 01:02:16 + : Optimis530 || None || joined server +2024-07-05 01:02:17 + : Optimis530 || pb-IF4wU0JbKg== || joined server +2024-07-05 01:03:00 + : Stormster || None || joined server +2024-07-05 01:03:01 + : Stormster || pb-IF4NU1lYFg== || joined server +2024-07-05 01:03:32 + : Stormster || pb-IF4NU1lYFg== || joined server +2024-07-05 01:04:02 + : Stormster || None || joined server +2024-07-05 01:04:03 + : Stormster || pb-IF4NU1lYFg== || joined server +2024-07-05 01:05:36 + : Stormster || None || joined server +2024-07-05 01:05:37 + : Stormster || pb-IF4NU1lYFg== || joined server +2024-07-05 01:06:00 + : Noonme1380 || None || joined server +2024-07-05 01:06:01 + : Noonme1380 || pb-IF4FUkIOFg== || joined server +2024-07-05 01:06:23 + : Stormster || pb-IF4NU1lYFg== || joined server +2024-07-05 01:06:59 + : Stormster || pb-IF4NU1lYFg== || joined server +2024-07-05 01:10:41 + : Android67524495 || pb-IF4PURkRFw== || joined server +2024-07-05 01:10:55 + : Nihal18 || pb-IF5dUnMoVQ== || joined server +2024-07-05 01:14:02 + : BCS || pb-IF4iU0QaEw== || joined server +2024-07-05 01:16:23 + : Stormster || None || joined server +2024-07-05 01:16:24 + : Stormster || pb-IF4NU1lYFg== || joined server +2024-07-05 01:32:11 + : Avalolli || None || joined server +2024-07-05 01:32:12 + : Avalolli || pb-IF40UEwoPA== || joined server +2024-07-05 01:36:19 + : BCS || None || joined server +2024-07-05 01:36:20 + : BCS || pb-IF4iU0QaEw== || joined server +2024-07-05 02:20:43 + : BCS || pb-IF4iU0QaEw== || joined server +2024-07-05 02:42:50 + : BCS || pb-IF4iU0QaEw== || joined server +2024-07-05 03:04:09 + : BCS || pb-IF4iU0QaEw== || joined server +2024-07-05 03:25:48 + : BCS || pb-IF4iU0QaEw== || joined server +2024-07-05 03:41:38 + : NoName7747799 || pb-IF4MUxVTLg== || joined server +2024-07-05 03:42:17 + : LengthyGr2 || pb-IF4WUGkzFA== || joined server +2024-07-05 03:43:54 + : Carl3413 || None || joined server +2024-07-05 03:43:55 + : Carl3413 || pb-IF4KUWM5KQ== || joined server +2024-07-05 03:44:56 + : Android64022296 || None || joined server +2024-07-05 09:10:55 + : V0RT3X || pb-IF4BUlQBJw== || joined server +2024-07-05 09:11:27 + : YashGabani || None || joined server +2024-07-05 09:11:28 + : YashGabani || pb-IF4pU1FYDQ== || joined server +2024-07-05 09:11:37 + : ZEUS609 || pb-IF4UU2ldEg== || joined server diff --git a/dist/ba_root/mods/serverData/systemlogs.log b/dist/ba_root/mods/serverData/systemlogs.log index f390687..47f55c8 100644 --- a/dist/ba_root/mods/serverData/systemlogs.log +++ b/dist/ba_root/mods/serverData/systemlogs.log @@ -3,3 +3,27 @@ 2024-05-14 00:20:50 + : pb-IF5WURQmFQ== ip: dvvcyvan~~hc , Device id: d8749bd7b4ae99da826545ba920ee8a07c1b96f9 2024-05-14 00:21:17 + : pb-IF5WURQmFQ== ip: dvvcyvan~~hc , Device id: d8749bd7b4ae99da826545ba920ee8a07c1b96f9 2024-05-14 00:23:55 + : pb-IF4xUhUoLQ== ip: azj~zo~vj~ya , Device id: cc521e4b421344c76ddeb7804e175be0e5cc2864 +2024-07-04 23:02:47 + : Server started +2024-07-04 23:07:54 + : pb-IF4BUlQBJw== ip: azj~zo~}jeaia , Device id: ef86bb93ac5bf094c4332107ed4101624fe3f5d6 +2024-07-04 23:08:26 + : pb-IF4nUWQxHw==|| kicked > new account +2024-07-04 23:12:27 + : pb-IF4BUlQBJw== ip: azj~zo~}jeaia , Device id: ef86bb93ac5bf094c4332107ed4101624fe3f5d6 +2024-07-04 23:14:47 + : pb-IF4BUlQBJw== ip: azj~zo~}jeaia , Device id: ef86bb93ac5bf094c4332107ed4101624fe3f5d6 +2024-07-04 23:16:15 + : pb-IF4BUlQBJw== ip: azj~zo~}jeaia , Device id: ef86bb93ac5bf094c4332107ed4101624fe3f5d6 +2024-07-04 23:25:16 + : pb-IF4BUlQBJw== ip: azj~zo~}jeaia , Device id: ef86bb93ac5bf094c4332107ed4101624fe3f5d6 +2024-07-05 00:07:17 + : pb-IF4iU0QaEw== ip: a{i~~lgajdaif} , Device id: 4da63e77c8e855d8d121f66e6efdb706c65f6e05 +2024-07-05 00:29:25 + : pb-IF4iU0QaEw== ip: a{i~~lgajdaif} , Device id: 4da63e77c8e855d8d121f66e6efdb706c65f6e05 +2024-07-05 00:30:10 + : pb-IF41NnYI ip: dvvd}vczvdy , Device id: d9e5990909030fcb7b0740de3398a0716edd6181 +2024-07-05 00:51:15 + : pb-IF4iU0QaEw== ip: a{i~~lgajdaif} , Device id: 4da63e77c8e855d8d121f66e6efdb706c65f6e05 +2024-07-05 00:58:46 + : pb-IF40UEwoPA== ip: a}h~}a~~hiaib{ , Device id: 4cb3ad722d24cc1fbb9d9e3103d1a7cbf7fd19ce +2024-07-05 01:01:45 + : pb-IF40UEwoPA== ip: a}h~}a~~hiaib{ , Device id: 4cb3ad722d24cc1fbb9d9e3103d1a7cbf7fd19ce +2024-07-05 01:03:01 + : pb-IF4NU1lYFg== ip: aakiaofaj`z , Device id: 259df46fae12aeae243cb8fe58c2607f7465dafe +2024-07-05 01:03:32 + : pb-IF4NU1lYFg== ip: aakiaofaj`z , Device id: 259df46fae12aeae243cb8fe58c2607f7465dafe +2024-07-05 01:04:03 + : pb-IF4NU1lYFg== ip: aakiaofaj`z , Device id: 259df46fae12aeae243cb8fe58c2607f7465dafe +2024-07-05 01:05:37 + : pb-IF4NU1lYFg== ip: aakiaofaj`z , Device id: 259df46fae12aeae243cb8fe58c2607f7465dafe +2024-07-05 01:06:23 + : pb-IF4NU1lYFg== ip: aakiaofaj`z , Device id: 259df46fae12aeae243cb8fe58c2607f7465dafe +2024-07-05 01:06:59 + : pb-IF4NU1lYFg== ip: aakiaofaj`z , Device id: 259df46fae12aeae243cb8fe58c2607f7465dafe +2024-07-05 01:14:02 + : pb-IF4iU0QaEw== ip: a{i~~lgajdaif} , Device id: 4da63e77c8e855d8d121f66e6efdb706c65f6e05 +2024-07-05 01:16:24 + : pb-IF4NU1lYFg== ip: aakiaofaj`z , Device id: 259df46fae12aeae243cb8fe58c2607f7465dafe +2024-07-05 01:32:12 + : pb-IF40UEwoPA== ip: a}h~}a~~hiaib{ , Device id: 4cb3ad722d24cc1fbb9d9e3103d1a7cbf7fd19ce +2024-07-05 01:36:20 + : pb-IF4iU0QaEw== ip: a{i~~lgajdaif} , Device id: 4da63e77c8e855d8d121f66e6efdb706c65f6e05 +2024-07-05 02:20:43 + : pb-IF4iU0QaEw== ip: a{i~~lgajdaif} , Device id: 4da63e77c8e855d8d121f66e6efdb706c65f6e05 diff --git a/dist/ba_root/mods/setting.json b/dist/ba_root/mods/setting.json index 05d514b..232fc31 100644 --- a/dist/ba_root/mods/setting.json +++ b/dist/ba_root/mods/setting.json @@ -125,7 +125,7 @@ "fireflies": false, "fireflies_random_color": false }, - "colorfullMap": false, + "colorfullMap": true, "playlists": { "team": 12345, "epicteams": 442578, @@ -148,7 +148,7 @@ "timezone": "Asia/Kolkata" }, "colorful_explosions": { - "enable": false + "enable": true }, "backflip": { "enable": false @@ -231,8 +231,8 @@ }, "discordbot": { "enable": false, - "database_name": "default1", - "token": "", + "database_name": "default", + "token": "", "liveChat": true, "liveStatsChannelID": 1237851459899625512, "logsChannelID": 1177676398803034153, @@ -289,6 +289,13 @@ "default_bomb": "normal", "default_bomb_count": 2 }, + "betrayerSystem": { + "enable": true, + "betrayWarnCooldownMinutes": 5, + "maxWarnCount": 5, + "afterBetrayWarnKickMsg": "You have been kicked for betraying your team!", + "betraywarnMsg": "Warning: Betraying your teammates is not allowed!" + }, "allowTeamChat": true, "allowVotes": true, "allowInGameChat": true, diff --git a/dist/ba_root/mods/spazmod/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/spazmod/__pycache__/__init__.cpython-310.opt-1.pyc index ddbae07..64f5a5e 100644 Binary files a/dist/ba_root/mods/spazmod/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/spazmod/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/spazmod/__pycache__/effects.cpython-310.opt-1.pyc b/dist/ba_root/mods/spazmod/__pycache__/effects.cpython-310.opt-1.pyc index c5fed74..a46b3c9 100644 Binary files a/dist/ba_root/mods/spazmod/__pycache__/effects.cpython-310.opt-1.pyc and b/dist/ba_root/mods/spazmod/__pycache__/effects.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/spazmod/__pycache__/hitmessage.cpython-310.opt-1.pyc b/dist/ba_root/mods/spazmod/__pycache__/hitmessage.cpython-310.opt-1.pyc index 8f307bd..5c9d0e8 100644 Binary files a/dist/ba_root/mods/spazmod/__pycache__/hitmessage.cpython-310.opt-1.pyc and b/dist/ba_root/mods/spazmod/__pycache__/hitmessage.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/spazmod/__pycache__/modifyspaz.cpython-310.opt-1.pyc b/dist/ba_root/mods/spazmod/__pycache__/modifyspaz.cpython-310.opt-1.pyc index 10fb843..06e0885 100644 Binary files a/dist/ba_root/mods/spazmod/__pycache__/modifyspaz.cpython-310.opt-1.pyc and b/dist/ba_root/mods/spazmod/__pycache__/modifyspaz.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/spazmod/__pycache__/spaz_effects.cpython-310.opt-1.pyc b/dist/ba_root/mods/spazmod/__pycache__/spaz_effects.cpython-310.opt-1.pyc index 304a52f..c5991ec 100644 Binary files a/dist/ba_root/mods/spazmod/__pycache__/spaz_effects.cpython-310.opt-1.pyc and b/dist/ba_root/mods/spazmod/__pycache__/spaz_effects.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/spazmod/__pycache__/tag.cpython-310.opt-1.pyc b/dist/ba_root/mods/spazmod/__pycache__/tag.cpython-310.opt-1.pyc index 099f28b..562457b 100644 Binary files a/dist/ba_root/mods/spazmod/__pycache__/tag.cpython-310.opt-1.pyc and b/dist/ba_root/mods/spazmod/__pycache__/tag.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/stats/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/stats/__pycache__/__init__.cpython-310.opt-1.pyc index 50e6641..ca0ee1f 100644 Binary files a/dist/ba_root/mods/stats/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/stats/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/stats/__pycache__/mystats.cpython-310.opt-1.pyc b/dist/ba_root/mods/stats/__pycache__/mystats.cpython-310.opt-1.pyc index 42aba55..9632be8 100644 Binary files a/dist/ba_root/mods/stats/__pycache__/mystats.cpython-310.opt-1.pyc and b/dist/ba_root/mods/stats/__pycache__/mystats.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/stats/stats.json b/dist/ba_root/mods/stats/stats.json index fdc6e01..ea05c4b 100644 --- a/dist/ba_root/mods/stats/stats.json +++ b/dist/ba_root/mods/stats/stats.json @@ -1,8 +1,8 @@ { - "startDate": "15-05-2024 20:26:53", + "startDate": "03-07-2024 22:43:18", "stats": { "pb-IF4VAk4a": { - "rank": 1, + "rank": 8, "name": "pb-IF4VAk4a", "scores": 0, "total_damage": 0.0, @@ -13,6 +13,136 @@ "avg_score": 0.0, "aid": "pb-IF4VAk4a", "last_seen": "2022-04-26 17:01:13.715014" + }, + "pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH": { + "rank": 9, + "name": "SARA0786", + "scores": 50, + "total_damage": 0.0, + "kills": 0, + "deaths": 0, + "games": 1, + "kd": 0.0, + "avg_score": 50.0, + "last_seen": "2024-07-04 19:26:18.473369", + "aid": "pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH" + }, + "pb-IF4UU2ldEg==": { + "rank": 3, + "name": "ZEUS609", + "scores": 110, + "total_damage": 0.0, + "kills": 8, + "deaths": 3, + "games": 3, + "kd": 2.666, + "avg_score": 36.666, + "last_seen": "2024-07-04 23:24:57.887142", + "aid": "pb-IF4UU2ldEg==" + }, + "pb-IF4KUBQFJA==": { + "rank": 4, + "name": "URMOM69", + "scores": 100, + "total_damage": 0.0, + "kills": 5, + "deaths": 9, + "games": 1, + "kd": 0.555, + "avg_score": 100.0, + "last_seen": "2024-07-04 23:23:42.855063", + "aid": "pb-IF4KUBQFJA==" + }, + "pb-IF4GUEFaJg==": { + "rank": 5, + "name": "mastergg", + "scores": 85, + "total_damage": 0.0, + "kills": 4, + "deaths": 3, + "games": 3, + "kd": 1.333, + "avg_score": 28.333, + "last_seen": "2024-07-04 23:24:58.498530", + "aid": "pb-IF4GUEFaJg==" + }, + "pb-IF40UEwoPA==": { + "rank": 1, + "name": "Avalolli", + "scores": 2065, + "total_damage": 0.0, + "kills": 15, + "deaths": 18, + "games": 24, + "kd": 0.833, + "avg_score": 86.041, + "last_seen": "2024-07-05 01:29:01.339031", + "aid": "pb-IF40UEwoPA==" + }, + "pb-IF4FUkIOFg==": { + "rank": 2, + "name": "ꪖᥴꫀ∆", + "scores": 245, + "total_damage": 0.0, + "kills": 9, + "deaths": 12, + "games": 4, + "kd": 0.75, + "avg_score": 61.25, + "last_seen": "2024-07-05 01:13:39.433772", + "aid": "pb-IF4FUkIOFg==" + }, + "pb-IF4PURkRFw==": { + "rank": 7, + "name": "Android67524495", + "scores": 20, + "total_damage": 0.0, + "kills": 2, + "deaths": 7, + "games": 4, + "kd": 0.285, + "avg_score": 5.0, + "last_seen": "2024-07-05 01:14:32.578151", + "aid": "pb-IF4PURkRFw==" + }, + "pb-IF5dUnMoVQ==": { + "rank": 6, + "name": "Nihal18", + "scores": 25, + "total_damage": 0.0, + "kills": 3, + "deaths": 5, + "games": 3, + "kd": 0.6, + "avg_score": 8.333, + "last_seen": "2024-07-05 01:14:09.691218", + "aid": "pb-IF5dUnMoVQ==" + }, + "pb-IF4BUlQBJw==": { + "rank": 10, + "name": "V0RT3X", + "scores": 0, + "total_damage": 0.0, + "kills": 0, + "deaths": 0, + "games": 7, + "kd": 0.0, + "avg_score": 0.0, + "last_seen": "2024-07-05 09:12:41.704149", + "aid": "pb-IF4BUlQBJw==" + }, + "pb-IF4pU1FYDQ==": { + "rank": 11, + "name": "уαѕн ♔", + "scores": 0, + "total_damage": 0.0, + "kills": 0, + "deaths": 0, + "games": 3, + "kd": 0.0, + "avg_score": 0.0, + "last_seen": "2024-07-05 09:11:59.598958", + "aid": "pb-IF4pU1FYDQ==" } } } \ No newline at end of file diff --git a/dist/ba_root/mods/stats/stats.json.backup b/dist/ba_root/mods/stats/stats.json.backup index fdc6e01..ea05c4b 100644 --- a/dist/ba_root/mods/stats/stats.json.backup +++ b/dist/ba_root/mods/stats/stats.json.backup @@ -1,8 +1,8 @@ { - "startDate": "15-05-2024 20:26:53", + "startDate": "03-07-2024 22:43:18", "stats": { "pb-IF4VAk4a": { - "rank": 1, + "rank": 8, "name": "pb-IF4VAk4a", "scores": 0, "total_damage": 0.0, @@ -13,6 +13,136 @@ "avg_score": 0.0, "aid": "pb-IF4VAk4a", "last_seen": "2022-04-26 17:01:13.715014" + }, + "pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH": { + "rank": 9, + "name": "SARA0786", + "scores": 50, + "total_damage": 0.0, + "kills": 0, + "deaths": 0, + "games": 1, + "kd": 0.0, + "avg_score": 50.0, + "last_seen": "2024-07-04 19:26:18.473369", + "aid": "pb-JiNJARFeXENAVF5FEkFQXFVBGUJWTlVH" + }, + "pb-IF4UU2ldEg==": { + "rank": 3, + "name": "ZEUS609", + "scores": 110, + "total_damage": 0.0, + "kills": 8, + "deaths": 3, + "games": 3, + "kd": 2.666, + "avg_score": 36.666, + "last_seen": "2024-07-04 23:24:57.887142", + "aid": "pb-IF4UU2ldEg==" + }, + "pb-IF4KUBQFJA==": { + "rank": 4, + "name": "URMOM69", + "scores": 100, + "total_damage": 0.0, + "kills": 5, + "deaths": 9, + "games": 1, + "kd": 0.555, + "avg_score": 100.0, + "last_seen": "2024-07-04 23:23:42.855063", + "aid": "pb-IF4KUBQFJA==" + }, + "pb-IF4GUEFaJg==": { + "rank": 5, + "name": "mastergg", + "scores": 85, + "total_damage": 0.0, + "kills": 4, + "deaths": 3, + "games": 3, + "kd": 1.333, + "avg_score": 28.333, + "last_seen": "2024-07-04 23:24:58.498530", + "aid": "pb-IF4GUEFaJg==" + }, + "pb-IF40UEwoPA==": { + "rank": 1, + "name": "Avalolli", + "scores": 2065, + "total_damage": 0.0, + "kills": 15, + "deaths": 18, + "games": 24, + "kd": 0.833, + "avg_score": 86.041, + "last_seen": "2024-07-05 01:29:01.339031", + "aid": "pb-IF40UEwoPA==" + }, + "pb-IF4FUkIOFg==": { + "rank": 2, + "name": "ꪖᥴꫀ∆", + "scores": 245, + "total_damage": 0.0, + "kills": 9, + "deaths": 12, + "games": 4, + "kd": 0.75, + "avg_score": 61.25, + "last_seen": "2024-07-05 01:13:39.433772", + "aid": "pb-IF4FUkIOFg==" + }, + "pb-IF4PURkRFw==": { + "rank": 7, + "name": "Android67524495", + "scores": 20, + "total_damage": 0.0, + "kills": 2, + "deaths": 7, + "games": 4, + "kd": 0.285, + "avg_score": 5.0, + "last_seen": "2024-07-05 01:14:32.578151", + "aid": "pb-IF4PURkRFw==" + }, + "pb-IF5dUnMoVQ==": { + "rank": 6, + "name": "Nihal18", + "scores": 25, + "total_damage": 0.0, + "kills": 3, + "deaths": 5, + "games": 3, + "kd": 0.6, + "avg_score": 8.333, + "last_seen": "2024-07-05 01:14:09.691218", + "aid": "pb-IF5dUnMoVQ==" + }, + "pb-IF4BUlQBJw==": { + "rank": 10, + "name": "V0RT3X", + "scores": 0, + "total_damage": 0.0, + "kills": 0, + "deaths": 0, + "games": 7, + "kd": 0.0, + "avg_score": 0.0, + "last_seen": "2024-07-05 09:12:41.704149", + "aid": "pb-IF4BUlQBJw==" + }, + "pb-IF4pU1FYDQ==": { + "rank": 11, + "name": "уαѕн ♔", + "scores": 0, + "total_damage": 0.0, + "kills": 0, + "deaths": 0, + "games": 3, + "kd": 0.0, + "avg_score": 0.0, + "last_seen": "2024-07-05 09:11:59.598958", + "aid": "pb-IF4pU1FYDQ==" } } } \ No newline at end of file diff --git a/dist/ba_root/mods/tools/__pycache__/ServerUpdate.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/ServerUpdate.cpython-310.opt-1.pyc index 1eaac85..31a797e 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/ServerUpdate.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/ServerUpdate.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/__init__.cpython-310.opt-1.pyc index f98934d..ef50513 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/__init__.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/__init__.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/account.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/account.cpython-310.opt-1.pyc index c2c222d..45d4bda 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/account.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/account.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/autoadmin.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/autoadmin.cpython-310.opt-1.pyc index c498b73..c4d9e93 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/autoadmin.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/autoadmin.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/chatmessage.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/chatmessage.cpython-310.opt-1.pyc index 040ac8f..7449256 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/chatmessage.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/chatmessage.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/file_handle.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/file_handle.cpython-310.opt-1.pyc index 149945e..1da9243 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/file_handle.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/file_handle.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/handle.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/handle.cpython-310.opt-1.pyc new file mode 100644 index 0000000..d0db55d Binary files /dev/null and b/dist/ba_root/mods/tools/__pycache__/handle.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/joinclaim.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/joinclaim.cpython-310.opt-1.pyc index 20d3806..0503249 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/joinclaim.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/joinclaim.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/logger.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/logger.cpython-310.opt-1.pyc index bdff295..e09f208 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/logger.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/logger.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/mongo.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/mongo.cpython-310.opt-1.pyc index 23708b7..69a77b6 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/mongo.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/mongo.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/notification_manager.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/notification_manager.cpython-310.opt-1.pyc index 6a908a9..429c4ce 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/notification_manager.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/notification_manager.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/pinfo.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/pinfo.cpython-310.opt-1.pyc index ef79733..4000120 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/pinfo.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/pinfo.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/playlist.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/playlist.cpython-310.opt-1.pyc index ae980c4..96594d3 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/playlist.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/playlist.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/servercheck.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/servercheck.cpython-310.opt-1.pyc index 1a0087d..eb840fb 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/servercheck.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/servercheck.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/__pycache__/servercontroller.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/servercontroller.cpython-310.opt-1.pyc index abd6058..a09de3f 100644 Binary files a/dist/ba_root/mods/tools/__pycache__/servercontroller.cpython-310.opt-1.pyc and b/dist/ba_root/mods/tools/__pycache__/servercontroller.cpython-310.opt-1.pyc differ diff --git a/dist/ba_root/mods/tools/corelib.so b/dist/ba_root/mods/tools/corelib.so index 5694d6e..6b2b47d 100644 Binary files a/dist/ba_root/mods/tools/corelib.so and b/dist/ba_root/mods/tools/corelib.so differ diff --git a/dist/ba_root/mods/tools/handle.so b/dist/ba_root/mods/tools/handle.so new file mode 100755 index 0000000..f7f3f4b Binary files /dev/null and b/dist/ba_root/mods/tools/handle.so differ diff --git a/dist/ba_root/mods/tools/last_messages.txt b/dist/ba_root/mods/tools/last_messages.txt new file mode 100644 index 0000000..997a25b --- /dev/null +++ b/dist/ba_root/mods/tools/last_messages.txt @@ -0,0 +1,37 @@ +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /end +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /end +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /end +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /end +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | where is flag map +pb-IF4UU2ldEg== | ZEUS609| | Do you checking this sever +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | yash leave the game +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | ZEUS609 +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | u join in enemy team +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | ahh +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | ok join in my team yash +pb-IF4RUBkvVA== | koanboicho| koanboicho | Android64311759: do u want free name? +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | and betray +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | kill +Host msg: | Warning: Betraying your teammates is not allowed! +Host msg: | Warn Count = 1/5!!! +pb-IF4pU1FYDQ== | YashGabani| уαѕн ♔ | got warn +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | hm that means working +pb-IF4pU1FYDQ== | YashGabani| уαѕн ♔ | Warning: Betraying your teammates is not allowed! +pb-IF4pU1FYDQ== | YashGabani| уαѕн ♔ | Warn Count = 1/5!!! +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | 5 warna kick +pb-IF4pU1FYDQ== | YashGabani| уαѕн ♔ | nice +Host msg: | Warning: Betraying your teammates is not allowed! +Host msg: | Warn Count = 1/5!!! +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | alright that's what I wanted to test +pb-IF4pU1FYDQ== | YashGabani| уαѕн ♔ | let me use that warns +Host msg: | Warning: Betraying your teammates is not allowed! +Host msg: | Warn Count = 2/5!!! +Host msg: | Warning: Betraying your teammates is not allowed! +Host msg: | Warn Count = 3/5!!! +Host msg: | Warning: Betraying your teammates is not allowed! +Host msg: | Warn Count = 4/5!!! +Host msg: | You have been kicked for betraying your team! +pb-IF4BUlQBJw== | V0RT3X| V0RT3X | /quit +Host msg: | Server Restarting, Please Join in a moment ! +Host msg: | Server Restarting, Please Join in a moment ! +Host msg: | Server will restart on next opportunity. (series end) diff --git a/dist/ba_root/mods/tools/mongo.py b/dist/ba_root/mods/tools/mongo.py deleted file mode 100644 index fc0a11e..0000000 --- a/dist/ba_root/mods/tools/mongo.py +++ /dev/null @@ -1,3 +0,0 @@ -# Pyarmor 8.5.1 (trial), 000000, non-profits, 2024-03-27T20:48:06.026064 -from .pyarmor_runtime_000000 import __pyarmor__ -__pyarmor__(__name__, __file__, b'PY000000\x00\x03\n\x00o\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00l\x06\x00\x00\x12\t\x04\x00\xb1\xc8\xea\xecG\xd2\x19}\x0f\xd5\x96\x8f\x83K0\xa1\x00\x00\x00\x00\x00\x00\x00\x00Y\x99\xd4\x01\x9eU\xd1\x0f\xbb\xa0\xa2s2X\x1b\xcc\xcd\xb0\xdd\x8cjF+\xf07\x16\x7f\xfdQ}%\xdd\x136\xc5\xb9io\x1e\x03\xa0\x0fr\x1c\x81\x10\x18\xf7\x14H\x16\xed\xfa2D\n\x86c \x05\x9c\xcb\x8bS\xf5P\xd6\n=\x10B\xc5\x81\xd23\xccq\xa2\x83\xade\xd7\x9d\x12\t,\x8b\xbb\x95K\xce\x9e\xc3A4\xf2\x8ei\xf0Wl\x17\xbf\x8b\xf13<\xf8\xc4\x0b\t\xa1\xc2Om\x00\xb8\x8e\xe2i\xd8\\\x94\xff\xc4\x06Ye\xb2\x9b\x94>/e?\x15O\x03\x85/t\x10O?\xc5\xf8\xd7\xb6\xc6\xe2\x97\xb4\x95\xd8\xea\xe6\xf1\xf0)\xc8\xb8J\xa5i\x8e\x95\x17\x90\xc0%(\xea\xcbH\xfd}\xf7\xf8\x89xv^\xf7\xbe\xc7M\r\xb2\xd0|l\xeb\x1d\x0c\xfd\xf1\x14i\x96r\x0c\xea\x0c\x1b)z~\t\xf95\x07h\x7f\xddS/?Ug{c\xe3\x13\x14\xce\xa8\n\x10\xb5P\\\xc9\xd43\xdcFDh5\x9b\xc6\xda\x18\xcf\xd3\xd6\xcf\x19\xa4\x1e\xe0@\x9et\xab\xd7\x05K\xab\xba~w\x9a\x8f\xd8\xe93$\x91N\xe9\x17{f\xd9C/\x15\xcb\xd7^\xb4T\xb9\x03R4\x12a\xe9\\\r0\xe1(PW\xabig)\x9f\xf8cv!*iUb\xa66o\x913;}f\xbd\x98\x1c:\x8f\x86\xaam\xd5\xf6\xc2Y\xcf\xd8\xf3_\xd9\xd7%\x16P\xee(E%/\xe3\xb9\x04\xbap\xf1c_\xe1\xe7\x93\xf8Nq\xb4\xa04e\x91f4\xc96\xd9p\xff\xe4\x10\\\xb0\x1d\x97X\xa2\xd2Vo\xef\xaf\xdd\x85B82:-\x1c\xc0="\x89\x03\xf0\xda\x13/\xfb"V\x8e\xbbb=\xe5\xa1\xddQ\x0c\xf3\xee\xdb\x938\xf9a\x1b\x08\xa6\x04\x889\xcc<\xf1\xd5&\rtc\x84\x94\x0co\xf7W)t\xca4\xc4K\xe5\t_]pB\x07\x1buH\xd2\xa4.\x14n\x9ci\xc8|\x86{\xe2:5W/\xe9\xd9[ws\xbd\xd0w\x9c/R\xff\xda\x1d\xa1\xed?\xb5trJ?\x16O\xc5\xfb\x04\xaa$ik\xe0\x9e\xafa\x96l\x0b\x01\x0bJ\xe2\xcc*\x00\xb4\x123\x03\x90\xc9\xdcgj\xd0\xcf\x82/\x9aa\x87*,l}\x8f)\xc6K\xc4[e\xd5U\xfd\xa8\x05\xc9]\xb6{QV\xe1\xa6\xe3;H2{l\x9b\x1a\x8fx\x819\t\xc6\xc3\x8b\xb6Y|6j\'og\xaf\xd8%z\xa7\xe1]>\x0f\t<\x16\xe5\xc8\xeb\xb6>\x1f6b\xa2*\xb3\x8be\xe9+\x14\xca|\xcb-]\xe6\xb7\xed\x8a6\x01\\\xb7\xe7\xbc\xc9\x8d\t\xf7\x84\x0e\xf8L\x81\x88\x87\x8c\x9c\xc5f\xae{\xb7\xb2\x15A\xc6\x17F\x9e\xdf\x82\xc25\xa3\xaf\xa5[5\x95\xe5 \'\xca|Ff`\x00/5\xe5\x956&\x07\xe30DB7\x1b[\x89\x82U\x88\x94\xa2\x83b$\xe9=\xc2\x14\x9ex\x16\x8cj)\xcd\xc2\xeeQ\x10\x9f\xa6"\xcc\xf3_\xfaq\xb2\xae\xca\xc70\x17=@\x1a\xca\xf0&\xa5\xc1\x82m\x12sR\xa7\xf9\xab#\x84\xb4\x08\xbf\x9cU\\k\xe8\x80\xeb\xb3\xec|\xf4\x88\x15\x12\x86\xd1k\xe1\xf4o\xbe\x9fpQH\x11p\x13\xb7A\xf2Zf.\x86,\xd8\xe9\x07\xc8\xa9\x06\xb0r\x97\xfcK\xcbx\xab\xf3/<5\xdcs\xdaU\x01gW\xf4\xc0l\xbf\xf9\xfath\xef\xfaEj\x17{\x92`\xf9\xc6\xe6\x87\xc94\xc6\x98^\x14=\\Bk:\xe8{Ri"l\xb4\x12xk\x19\xa9\'"\x17\xc0[\xe7\xa6\xf3FD}z:\xea\xb5\x0f\x81\x89\xb0\x83\x08\x7f(6\xc2s4;\xc1\xb8\x7f\xdb-,\xa3>\xcc4\x06\x1d\xb4\x9bO\xff\x92\x85\xf9/\xa1K\nx\xe4\xb5\x8d8E\x19*\xa9\xd8\xd1\xc0\xf2|\xdb\x82\xf50V\x0c\x9f\x08\xeak\xf7\x89\x95\x1e\x11\x06\xf8\xbc\xa2\xc0\n\x80\x1c:\x97p\xd4\xcaQ\xbbzb\xe4\xfd\xa0?\x8a\xfe\xad&\x8d\x87\x1d\xd4^a\x11\tJ\xf3\xa7m\x19\n|\x87\x89\x1a\\\xf1\xb2 \xb3eJ\xa9\x81\xd3\x83\x1b\xa3\xc2\xc9K$\x9a\xf6\x1b\x87\x9c\xd7\x9e\x11O\xf8\x81 _C?\xcdJ|\xb5\x90\xafG\xbd\xb5\x92\x81\\\xe12\x17\xf3\x9b\x1f\xe4SM\x13zGl\x7f\x1b?\x88qe+\xf0\xbef\xdcQ\xdb\xdehF\x0f\';;\x16\xf7K-X8\x95\xe0\x9dg\xc3\x1a\xa11\xcf\xf8\x89\xa2\xec\xe3P\xc7.\x80J\x9e\xb1B\x8a.\xa83\xf8H\x84\x93\x93\xbe\x9f\rb\x13\xbd\x0fP5\x04\xf2\xb4$\x99z\x1e\xa1`RW\'\\;m\x8f\xee\xb13\xb4Yvd\xa1\x01\xcc\xbc\x1c\xba\xe9\x0e_\x96\xff\xed\xce\xfa\xa8\xef\xee:.\x8a\x9e\xaf\x1fn\xc6_\xa3\r\xdai-\x80i\x11*\x81\x8aDG\x83\xa2U\x9d\xa8\x8f\x03\x07\xab\x98j\xf9\t\x9d\xc2\rF\xf4\x1d8\xdd6\x88 W\x9e\xb6\x90\x89\xc5\xc6.\xef\x0b\x9a\x1by\t\xea\xb6\xd5\x03\xb6u\x06:n\xd8|\x1f\xee\x9a^;k\x9d\x1a\xa2c\x124C\xad\xeb\x83\xb1p\xc6S\x9fA\xa4K\xdc\xf0\xa4s\xf2H\x9d\xd2d\xc0HK\xf9?\x93\x93\xca#A\x0e\xcb\x9dxI\r\x95\x86\x16\xed7v\xd3\xd9\x83\x81c\xf7\x0e\xad\x8b,\x08\x14\x0cB\x9d\xda\xdc\\\xc2\x83$:\x08\xa2D\xb8qF\xb9\x88\xa0\xc228\xa8`\x98\x0f\xc5\xe7\x1a\x9a\x8c\x0b\xfaX\x97\x14\xee\x8e\xb8;\xd1\x1e\x01Aw\xed\xc1I\xbagZ\x9bN\x83\xa1\xd3\x7f@\xbd\xff\xe3\xc9-\xde\xfb\x8c8\x1c\xce\xa0\x91\x16\xaa\xcd*\xa2AbA\x81\xd3\x17\x00\x02\xf5\xb7\xf8\xd6%^^\xbe\xbe\x04\xc3i7\xfam\xf4\x80~u\x0c\x07\x87r7\xb61\x1a\x83\xe3\xfa\x05\x03h\x87\x9a\xce\x19\xeb\xf4\t1\xfeI\xd1\'\x81p\xa2\xcd\x10\xc2\xfb%\x06\xc2\x96\xb3y^ j6\xeda\xd5-\xca\xff\xee|\xc8\xa6~\x86\x1c\x98\xe1~\xdb\x16\x84\x00\x8b\x08\xa5>+G\x9e\xeb\xa8\xaeQ') diff --git a/dist/ba_root/mods/tools/mongo.so b/dist/ba_root/mods/tools/mongo.so new file mode 100755 index 0000000..e8d4481 Binary files /dev/null and b/dist/ba_root/mods/tools/mongo.so differ diff --git a/dist/ba_root/mods/tools/pinfo.py b/dist/ba_root/mods/tools/pinfo.py deleted file mode 100644 index 98973a6..0000000 --- a/dist/ba_root/mods/tools/pinfo.py +++ /dev/null @@ -1,82 +0,0 @@ -from tools import mongo -from playersData import pdata -import _ba, ba, os -import setting -import json -import threading -from multiprocessing.pool import ThreadPool -import random -settings = setting.get_settings_data() -collection = mongo.playerinfo - - -def read_profiles_from_file(): - try: - file_path = os.path.join(_ba.env()['python_directory_user'], "playersData", "profiles.json") - with open(file_path, 'r') as file: - profiles_data = json.load(file) - return profiles_data - except Exception as e: - print(f"Error reading profiles from file: {e}") - return None - -def update_mongo_with_profiles(): - try: - # Read profiles from file - profiles_data = read_profiles_from_file() - - if profiles_data: - # Update MongoDB with profiles data - mongo.playerinfo.update_one({}, {"$set": profiles_data}, upsert=True) - print("Profiles updated successfully.") - else: - print("No profiles data found or unable to read from file.") - - except Exception as e: - print(f"Error updating MongoDB with profiles: {e}") - - # Set the timer for the next update after 10 seconds - threading.Timer(1000, update_mongo_with_profiles).start() - -# Start the initial update -update_mongo_with_profiles() - - -def get_owners_ids(): - roles = pdata.get_roles() - if roles and 'owner' in roles: - owner_ids = roles['owner']['ids'] - pb_ids = [] # Initialize the list - if owner_ids: - for i in range(len(owner_ids)): - pb_id = owner_ids[i] - pb_ids.append(pb_id) # Append each pb_id to the list - return pb_ids # Return the list of pb_ids - - -def update_server_info(m, server_name, dc_servername, dc_serverid, server_ip, server_port): - # Construct the updated server info dictionary - updated_server_info = { - 'name': server_name, - 'ip': server_ip, - 'port': server_port, - 'database_name': settings["discordbot"]["database_name"], - 'owner_ids': get_owners_ids(), - 'whitelisted_servers': settings["discordbot"]["whitelisted_servers"], - 'whitelisted_user': settings["discordbot"]["allowed_user_ids"], - 'dc_server_name': dc_servername, - 'dc_server_id': dc_serverid - } - - # Update existing server information or insert new server information - result = mongo.serverinfo.replace_one( - {'serverinfo.name': server_name}, - {'serverinfo': updated_server_info}, - upsert=True - ) - - # Check if the document was modified or inserted - if result.modified_count > 0: - print("Your server is updated successfully.") - else: - print("Server is already up to date.") diff --git a/dist/ba_root/mods/tools/pinfo.so b/dist/ba_root/mods/tools/pinfo.so new file mode 100755 index 0000000..8157e89 Binary files /dev/null and b/dist/ba_root/mods/tools/pinfo.so differ diff --git a/dist/ba_root/mods/tools/playlist.py b/dist/ba_root/mods/tools/playlist.py index 5e668a4..013a8ea 100644 --- a/dist/ba_root/mods/tools/playlist.py +++ b/dist/ba_root/mods/tools/playlist.py @@ -1,11 +1,11 @@ # ba_meta require api 7 -# Thanks to Rikko for playlist fetch by code +# Thanks to Rikko for playlist fetch by code import ba import _ba import ba.internal -#session change by smoothy +# session change by smoothy from ba._freeforallsession import FreeForAllSession from ba._dualteamsession import DualTeamSession from ba._coopsession import CoopSession @@ -16,106 +16,132 @@ import setting from ba._general import Call settings = setting.get_settings_data() -_ba.app.coop_session_args['max_players']=14 -_ba.app.coop_session_args['campaign']="Default" -_ba.app.coop_session_args['level']="Onslaught Training" +_ba.app.coop_session_args['max_players'] = 14 +_ba.app.coop_session_args['campaign'] = "Default" +_ba.app.coop_session_args['level'] = "Onslaught Training" + def set_playlist(content): - if content is None: - return - _playlists_var = "{} Playlists".format(content["playlistType"]) - playlists = _ba.app.config[_playlists_var] - playlist = playlists[content["playlistName"]] - ba.internal.chatmessage("Fetched playlist:"+content["playlistName"]) - typename = ( + try: + if content is None: + return + _playlists_var = "{} Playlists".format(content["playlistType"]) + playlists = _ba.app.config[_playlists_var] + playlist = playlists[content["playlistName"]] + ba.internal.chatmessage("Fetched playlist:" + content["playlistName"]) + typename = ( 'teams' if content['playlistType'] == 'Team Tournament' else 'ffa' if content['playlistType'] == 'Free-for-All' else '??') - return set_playlist_inline(playlist,typename) + return set_playlist_inline(playlist, typename) + except Exception as e: + error_message = f"Error in set_playlist: {e}" + print(error_message) +def set_playlist_inline(playlist, newPLaylistType): + try: + session = ba.internal.get_foreground_host_session() -def set_playlist_inline(playlist,newPLaylistType): - session = ba.internal.get_foreground_host_session() + if (isinstance(session, DualTeamSession) or isinstance(session, CoopSession)) and newPLaylistType == 'ffa': + ba.internal.get_foreground_host_session().end() + _thread.start_new_thread(withDelay, (FreeForAllSession, playlist,)) + elif (isinstance(session, FreeForAllSession) or isinstance(session, CoopSession)) and newPLaylistType == "teams": + ba.internal.get_foreground_host_session().end() + _thread.start_new_thread(withDelay, (DualTeamSession, playlist,)) + else: + updatePlaylist(playlist) + except Exception as e: + error_message = f"Error in set_playlist_inline: {e}" + print(error_message) - if (isinstance(session,DualTeamSession) or isinstance(session,CoopSession)) and newPLaylistType=='ffa': - ba.internal.get_foreground_host_session().end() - _thread.start_new_thread(withDelay,(FreeForAllSession,playlist,)) - elif (isinstance(session,FreeForAllSession) or isinstance(session,CoopSession))and newPLaylistType=="teams": - ba.internal.get_foreground_host_session().end() - _thread.start_new_thread(withDelay,(DualTeamSession,playlist,)) - else: - updatePlaylist(playlist) - -def withDelay(session,playlist): - - time.sleep(1) - - _ba.pushcall(Call(updateSession,session,playlist),from_other_thread=True) - -def updateSession(session,playlist): - ba.internal.new_host_session(session) - if playlist: - updatePlaylist(playlist) +def withDelay(session, playlist): + try: + time.sleep(1) + _ba.pushcall(Call(updateSession, session, playlist), from_other_thread=True) + except Exception as e: + error_message = f"Error in withDelay: {e}" + print(error_message) +def updateSession(session, playlist): + try: + ba.internal.new_host_session(session) + if playlist: + updatePlaylist(playlist) + except Exception as e: + error_message = f"Error in updateSession: {e}" + print(error_message) def updatePlaylist(playlist): - - session = ba.internal.get_foreground_host_session() - content = ba._playlist.filter_playlist( + try: + session = ba.internal.get_foreground_host_session() + content = ba._playlist.filter_playlist( playlist, sessiontype=type(session), add_resolved_type=True, ) - playlist = ba._multiteamsession.ShuffleList(content, shuffle=False) - session._playlist = playlist - set_next_map(session, playlist.pull_next()) + playlist = ba._multiteamsession.ShuffleList(content, shuffle=False) + session._playlist = playlist + set_next_map(session, playlist.pull_next()) + except Exception as e: + error_message = f"Error in updatePlaylist: {e}" + print(error_message) def set_next_map(session, game_map): - session._next_game_spec = game_map - with ba.Context(session): - session._instantiate_next_game() - + try: + session._next_game_spec = game_map + with ba.Context(session): + session._instantiate_next_game() + except Exception as e: + error_message = f"Error in set_next_map: {e}" + print(error_message) def playlist(code): - ba.internal.add_transaction( - { - 'type': 'IMPORT_PLAYLIST', - 'code': str(code), - 'overwrite': True - }, - callback=set_playlist) - ba.internal.run_transactions() - - - + try: + ba.internal.add_transaction( + { + 'type': 'IMPORT_PLAYLIST', + 'code': str(code), + 'overwrite': True + }, + callback=set_playlist) + ba.internal.run_transactions() + except Exception as e: + error_message = f"Error in playlist: {e}" + print(error_message) def setPlaylist(para): - if para.isdigit(): - playlist(para) - elif para=="coop": - _thread.start_new_thread(withDelay,(CoopSession,None,)) - - elif para in settings["playlists"]: - playlist(settings["playlists"][para]) - else: - ba.internal.chatmessage("Available Playlist") - for play in settings["playlists"]: - ba.internal.chatmessage(play) - + try: + if para.isdigit(): + playlist(para) + elif para == "coop": + _thread.start_new_thread(withDelay, (CoopSession, None,)) + elif para in settings["playlists"]: + playlist(settings["playlists"][para]) + else: + ba.internal.chatmessage("Available Playlist") + for play in settings["playlists"]: + ba.internal.chatmessage(play) + except Exception as e: + error_message = f"Error in setPlaylist: {e}" + print(error_message) def flush_playlists(): - print("Clearing old playlists..") - for playlist in _ba.app.config["Team Tournament Playlists"]: - ba.internal.add_transaction( - { - "type":"REMOVE_PLAYLIST", - "playlistType":"Team Tournament", - "playlistName":playlist - }) - ba.internal.run_transactions() - for playlist in _ba.app.config["Free-for-All Playlists"]: - ba.internal.add_transaction( - { - "type":"REMOVE_PLAYLIST", - "playlistType":"Free-for-All", - "playlistName":playlist - }) - ba.internal.run_transactions() + try: + print("Clearing old playlists..") + for playlist in _ba.app.config["Team Tournament Playlists"]: + ba.internal.add_transaction( + { + "type": "REMOVE_PLAYLIST", + "playlistType": "Team Tournament", + "playlistName": playlist + }) + ba.internal.run_transactions() + for playlist in _ba.app.config["Free-for-All Playlists"]: + ba.internal.add_transaction( + { + "type": "REMOVE_PLAYLIST", + "playlistType": "Free-for-All", + "playlistName": playlist + }) + ba.internal.run_transactions() + except Exception as e: + error_message = f"Error in flush_playlists: {e}" + print(error_message) \ No newline at end of file diff --git a/dist/ba_root/mods/tools/pyarmor.error.log b/dist/ba_root/mods/tools/pyarmor.error.log deleted file mode 100644 index 446ace8..0000000 --- a/dist/ba_root/mods/tools/pyarmor.error.log +++ /dev/null @@ -1,28 +0,0 @@ -7696 MainProcess 2024-06-29 17:59:09,206 -Traceback (most recent call last): - File "/home/ubuntu/.local/lib/python3.10/site-packages/pyarmor/cli/__main__.py", line 764, in main - main_entry(sys.argv[1:]) - File "/home/ubuntu/.local/lib/python3.10/site-packages/pyarmor/cli/__main__.py", line 752, in main_entry - return args.func(ctx, args) - File "/home/ubuntu/.local/lib/python3.10/site-packages/pyarmor/cli/__main__.py", line 244, in cmd_gen - builder.process(options) - File "/home/ubuntu/.local/lib/python3.10/site-packages/pyarmor/cli/generate.py", line 191, in process - self._obfuscate_scripts() - File "/home/ubuntu/.local/lib/python3.10/site-packages/pyarmor/cli/generate.py", line 144, in _obfuscate_scripts - code = self._generate_obfuscated_script(r) - File "/home/ubuntu/.local/lib/python3.10/site-packages/pyarmor/cli/generate.py", line 104, in _generate_obfuscated_script - return Pytransform3.generate_obfuscated_script(self.ctx, res) - File "/home/ubuntu/.local/lib/python3.10/site-packages/pyarmor/cli/core/__init__.py", line 89, in generate_obfuscated_script - return m.generate_obfuscated_script(ctx, res) - File "", line 713, in generate_obfuscated_script - File "/home/ubuntu/.local/lib/python3.10/site-packages/pyarmor/cli/__init__.py", line 16, in process - return meth(self, res, *args, **kwargs) - File "", line 512, in process - File "/home/ubuntu/.local/lib/python3.10/site-packages/pyarmor/cli/resource.py", line 144, in reparse - self.mtree = ast.parse(''.join(lines), self.frozenname, 'exec') - File "/usr/lib/python3.10/ast.py", line 50, in parse - return compile(source, filename, mode, flags, - File "", line 36 - owner = dbname"owner"] - ^ -SyntaxError: unmatched ']' diff --git a/dist/ba_root/mods/tools/pyarmor_runtime_000000/__init__.py b/dist/ba_root/mods/tools/pyarmor_runtime_000000/__init__.py deleted file mode 100644 index 1134134..0000000 --- a/dist/ba_root/mods/tools/pyarmor_runtime_000000/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# Pyarmor 8.5.9 (trial), 000000, 2024-06-29T17:56:49.647640 -from .pyarmor_runtime import __pyarmor__ diff --git a/dist/ba_root/mods/tools/pyarmor_runtime_000000/__pycache__/__init__.cpython-310.opt-1.pyc b/dist/ba_root/mods/tools/pyarmor_runtime_000000/__pycache__/__init__.cpython-310.opt-1.pyc deleted file mode 100644 index e0a5a5d..0000000 Binary files a/dist/ba_root/mods/tools/pyarmor_runtime_000000/__pycache__/__init__.cpython-310.opt-1.pyc and /dev/null differ diff --git a/dist/ba_root/mods/tools/pyarmor_runtime_000000/pyarmor_runtime.so b/dist/ba_root/mods/tools/pyarmor_runtime_000000/pyarmor_runtime.so deleted file mode 100755 index 33cd29e..0000000 Binary files a/dist/ba_root/mods/tools/pyarmor_runtime_000000/pyarmor_runtime.so and /dev/null differ diff --git a/dist/ba_root/mods/tools/servercheck.py b/dist/ba_root/mods/tools/servercheck.py index 9524dc5..1dd2843 100644 --- a/dist/ba_root/mods/tools/servercheck.py +++ b/dist/ba_root/mods/tools/servercheck.py @@ -19,7 +19,7 @@ import asyncio import setting import _thread from tools import autoadmin as aa -from tools import logger, mongo, pinfo +from tools import logger, mongo from features import profanity from playersData import pdata from . import notification_manager @@ -119,21 +119,28 @@ class checkserver(object): self.players = newPlayers def check_ban_mongo(clid, pbid): - blackdata = mongo.Banlist.find_one() + blackdata = mongo.bandata if blackdata is None: - return False + return False ip = _ba.get_client_ip(clid) device_id = _ba.get_client_public_device_uuid(clid) if device_id is None: device_id = _ba.get_client_device_uuid(clid) + # Check if pbid is in blackdata["ban"]["ids"] + if pbid in blackdata["ban"]["ids"]: + # If pbid is also in owners['id'], do not ban and show the message + if pbid in mongo.owners['id']: + return False + # Check other ban conditions if ip in blackdata["ban"]['ips'] or device_id in blackdata['ban']['deviceids'] or pbid in blackdata["ban"]["ids"]: - logger.log(pbid + " kicked > reason: Banned account from discord") + logger.log(f"{pbid} kicked > reason: Banned account from discord") ba.internal.disconnect_client(clid) - return True + return True return False + def check_notify_mongo(clid, pbid): - data = mongo.notify_list.find_one() or {'notify': {'ids': [], 'deviceids': [],'ips': []}} + data = mongo.notify try: ip = _ba.get_client_ip(clid) device_id = _ba.get_client_public_device_uuid(clid) @@ -182,7 +189,7 @@ def check_whitelist_player(clid, pbid): return # Return after sending the Whitelisted Player message else: # If player does not have a special role, check whitelist status and handle accordingly - data = mongo.whitelist.find_one() or {'whitelist': {'ids': [], 'deviceids': [], 'ips': []}} + data = mongo.white_list try: ip = _ba.get_client_ip(clid) device_id = _ba.get_client_public_device_uuid(clid) @@ -368,7 +375,12 @@ def on_player_join_server(pbid, player_data, ip, device_id): def check_ban(ip, device_id, pbid, log=True): current_time = datetime.now() - + blackdata = mongo.bandata + if blackdata is None: + return False + if pbid in blackdata["ban"]["ids"]: + if pbid in mongo.owners['id']: + return False if ip in blacklist["ban"]['ips'] and current_time < datetime.strptime(blacklist["ban"]["ips"][ip]["till"], "%Y-%m-%d %H:%M:%S"): msg = f' reason: matched IP | {blacklist["ban"]["ips"][ip]["reason"]} , Till : {blacklist["ban"]["ips"][ip]["till"]}' if log: