From ad0449da870af4af27a91c36350be84ec11827c1 Mon Sep 17 00:00:00 2001 From: snowman1711 Date: Wed, 14 Apr 2021 22:05:43 +0530 Subject: [PATCH 1/4] added some stuf --- .../data_functions.cpython-38.opt-1.pyc | Bin 1394 -> 2050 bytes .../Command_Objects/data_functions.py | 52 +++++++++++---- .../chat_commands.cpython-38.opt-1.pyc | Bin 555 -> 673 bytes .../mods/Currency/Commands/chat_commands.py | 9 ++- dist/ba_root/mods/Currency/Data/bank.json | 4 +- dist/ba_root/mods/Currency/Data/textes.json | 13 ++++ dist/ba_root/mods/Currency/Handlers/CLstr.py | 18 +++++ .../__pycache__/CLstr.cpython-38.opt-1.pyc | Bin 0 -> 661 bytes .../ba_get_player_data.cpython-38.opt-1.pyc | Bin 857 -> 1288 bytes .../bank_handler.cpython-38.opt-1.pyc | Bin 979 -> 1670 bytes .../Currency/Handlers/ba_get_player_data.py | 14 ++++ .../mods/Currency/Handlers/bank_handler.py | 62 +++++++++++++----- .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 543 -> 543 bytes 13 files changed, 140 insertions(+), 32 deletions(-) create mode 100644 dist/ba_root/mods/Currency/Data/textes.json create mode 100644 dist/ba_root/mods/Currency/Handlers/CLstr.py create mode 100644 dist/ba_root/mods/Currency/Handlers/__pycache__/CLstr.cpython-38.opt-1.pyc diff --git a/dist/ba_root/mods/Currency/Commands/Command_Objects/__pycache__/data_functions.cpython-38.opt-1.pyc b/dist/ba_root/mods/Currency/Commands/Command_Objects/__pycache__/data_functions.cpython-38.opt-1.pyc index ceec04e966ca4c2ca76d0ede0049e7026db94201..05c1bf934ca076852252af6b01aec574ad3520fa 100644 GIT binary patch literal 2050 zcmcJQOK)366oBV-A5QGpO{tpjv`~fQ3dP-(MT8JhB^D?M6*hNs8Q+=OZto+^9V<=c ztjy2If-d<1Ech$4W!1mHigRY{#3>*lB(8PO%sKP8Gv9gm`(AH{!1LR$iys~&g#3=m z_9H;~0^artgd!PHRI!p~)VC~SzU3MBt;htlyo|oXdAy8$E6Suwv$X1D9ZFQB;&P|j z&33D9)}=)E^qxwtm`YXWCz189^&Pbf`T%v9(Y@lTr}n^dXUo!81F-BX_LPk7ym~xr zZDaKC*`hA&ys6uveyNLv)oOS?)Ag{JNjof>s*<%DN|;#4vV_4ma5Zu|qK-ZsF&CYD z-CE<)C&n}edT%IDw`_%MXD}^ZwA##-ON(-@Ydcp3!|m5k z3N2tJC-AnfKv=RQD@uu_D{{#!ThbN1fryq1-A9OxMimvr&7##GWe(dt@_QiB*w z2S*~r)jEL-vJ}sd%gScG>m#9Rx;TFi#4p6$hvtuO$LMM~)ni>PN(n9=KN^48RFkJa zE~FZtER4~0aWOs#-flOY{F}*hUD$Sv2hOhp<>>6fb=S895M_zqY6l<)O<4@@fWnV` zLd_xAZn-oD1HRs+Gw8hSQgAFd<;I~AIV4N=m~e7Tw(aO>D`0kHBO5EGI5;#}g0q+6 zH4l!nDY|#C8JQ&>7|~2p3}>%xZm9gX{N3BcY!C^ zJP~xTzIbv==-eX5F&QxYAt40PTS6MFxOs@d3*5vyL73+$u6b_kJlH?;oNW}i+1MuQ zR7rscf(3F*f$HoEJQ9O`?K z=Z;OJ<51t6c-}U(i$n3xKHOB7qp#rKpoH>ukRtW7}_Ou8sTzqL9+nZ$Rb`Q3jVM6CZ z_R13=BslU)zH*vZ;6zm?GaCeMxm;B)cbDt?s=q0UF@f>S`fqhi$X{q2j|hw}V7i|{ zD8h-Niq(|UVP%{RYs8~rjd=`fRI?`GDaF_r^o-|&p46kS(U;WY!+HX1s78oeg`RG+D_I{AgFi7H-`9p!H+_JYi&o5!W|t<~kr&Pcy*jVtw!T6SKm@@Az? zDObXmvTYh+R4E`(in@l)JGcOOKBM6TBO2|TSZXi}C#}}zje~x2MaK;< zn@4?L{{JN+yTllEGhN=Vsu#)kqgJ-kB+FTzyTYi)ex+scSW zhsb#w(wD7mgb%UPM$Ph&c23*13i&=5v;;ja#KV~!6RSkydGU}Znsx+b3)w={!btrm zvG0KW_g8ZS9RQo_rmF>jJ^yU}v~3nIzVC#ZUv<`MBX8$dd)(cfO<6{_n30XqXhXwFiYXA~Y*Qu`kG?h+6{m0WdJAm=0!H2LLaP+n`IW8++vdU1O;B#V&3)?L`bn+)_#^+ECEloutqC; zj(ahJX5U7CcIbftlD&8rL-K`Q4psaBEQhBE%V`RAoIo8xqwh2OA$Vu!A*-O1WK{*W z5Fr9ih4__gO-T1`X0e-wq%8h<_~_7_ZplBo2l?_DbYu-ox*UkJ+FShN|J$#SxYxC~ z)wV(k@JIiRl5Jb7_Qq83#{h=e5CKp2)fp;=4B+{F)Nqlb3Lri0z6?*AR&}-h9LeFZ SVlgf01fG0&&XRnZ(|-T}JZ>rg diff --git a/dist/ba_root/mods/Currency/Commands/Command_Objects/data_functions.py b/dist/ba_root/mods/Currency/Commands/Command_Objects/data_functions.py index f506282..db946e2 100644 --- a/dist/ba_root/mods/Currency/Commands/Command_Objects/data_functions.py +++ b/dist/ba_root/mods/Currency/Commands/Command_Objects/data_functions.py @@ -1,16 +1,17 @@ """ store functions executed when chat command are called """ import ba, _ba, json, random -from _ba import chatmessage as send -from _ba import screenmessage as screenmsg + from Currency.Handlers.bank_handler import * from Currency.Handlers.ba_get_player_data import * -from Currency.Handlers.cooldown_manager import * +#from Currency.Handlers.cooldown_manager import * +from Currency.Handlers.CLstr import CLstr, Errorstr from .fun import get_random_donator, get_random_cash -def balance_call(userid, clientid): + +def balance_call(userid : str, clientid : int): open_account(userid) users = get_bank_data() @@ -20,23 +21,52 @@ def balance_call(userid, clientid): bank_cash_amt = users[str(userid)]["bank_cash"] bank_space = users[str(userid)]["bank_space"] - balance = '|| {} | Cash - {} | Bank- {}/{} ||'.format(str(name), str(cash_amt), str(bank_cash_amt), str(bank_space)) - send(balance) + balance = CLstr("English", "balance").format(str(name), str(cash_amt), str(bank_cash_amt), str(bank_space)) + send(balance, clientid) -def beg_call(userid): +def beg_call(userid : str, clientid : int): open_account(userid) earned = get_random_cash() users = get_bank_data() - user = users[str(userid)] - user["cash"] += earned - cash_amt = user["cash"] + users[str(userid)]["cash"] += earned + cash = users[str(userid)]["cash"] donator = get_random_donator() - send(f'{donator} gave you {earned} now you have {cash_amt} coins') + send(CLstr("English", "beg").format(donator, earned, cash), clientid) commit(users) + +def withdraw_call(userid : str, args : int, clientid : int): + open_account(userid) + + users = get_bank_data() + withd = int(args[0]) + + if cheack_withd(userid, withd, clientid): + return + + users[str(userid)]["cash"] += withd + users[str(userid)]["bank_cash"] -= withd + commit(users) + send(CLstr("English", "withdraw").format(withd), clientid) + + + +def deposit_call(userid : str, args : int, clientid : int): + open_account(userid) + + users = get_bank_data() + dep = int(args[0]) + + if cheack_cash_and_space(userid, dep, clientid): + return + + users[str(userid)]["cash"] -= dep + users[str(userid)]["bank_cash"] += dep + commit(users) + send(CLstr("English", "deposit").format(dep), clientid) \ No newline at end of file diff --git a/dist/ba_root/mods/Currency/Commands/__pycache__/chat_commands.cpython-38.opt-1.pyc b/dist/ba_root/mods/Currency/Commands/__pycache__/chat_commands.cpython-38.opt-1.pyc index f014b837cd971c89819ee64011bff68882f200c9..b85e4cf1c77f564997047c13786ad585749ae4e4 100644 GIT binary patch delta 237 zcmZ3@vXGT8l$V!_0SNeN%MuuwCi3mzVgd4;fw(wq;sr5RyBdZRrfjAnjS|KhrW)pE zCPs!lEua{4Hd~Qh2@_C^5h%(G6cquAvH(ScN|+I%DGb33nyeH5Dl6Y&DbFm)h~fZ| zDMg9pnoPHtQ&J0}IDkZcab`)XCd*_6MhS^1UYLsb~@ delta 147 zcmZ3;x|)SAl$V!_0SI;(#JSg+O}=PHbAxW;cwz6+y`f z4%~Q!_E;XtS5CYFC&s&?1ToV5?eWfx{qy=|zrO`+z3=s#uL$rX2Ad{0c*yP!SqvB~ zAa6&^v57@4ES|}8Fk%2k-hx~iWs)zDC#GY%Ja!Bo!7%;F9bg=8ESCPHDktV0*_p3s zIjNncPrKQuCbH#hnLXBCXWoAF*6qD_RXK}?_+yGESJ+4FZlA@2M}wcmw>xX$#hF}* zb6m@nT)_ZVIDj?2f&+LCFW@!Dd=N1XNEa%oYGKRJYd4xKv_Ath>KObYlmblU6-pgwQ?>we~#fHN{XuM6$1$@a5H)qHyNq1NUv(NkTT!jj8I&zz^d z#WEz#tP>$p7Qk)X!kb9fc>WJ>!V8zY_c*xZz573J`~?lO+F(}9EXO3dHgqgeMULVv z4ik!vDLw$|McHNv=o_|HuEv%0NmJCWZya|Q={kQOc7vGeASY8z-Iyf`w(sG*GIe1e@WTTa3vP=YnRb5zR_T$| literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/Currency/Handlers/__pycache__/ba_get_player_data.cpython-38.opt-1.pyc b/dist/ba_root/mods/Currency/Handlers/__pycache__/ba_get_player_data.cpython-38.opt-1.pyc index a885830eef72e469ecf18fb100496a542c2b7783..fc2a4d5d925cf4e07a6fc1e72beb9d81bcafc4c1 100644 GIT binary patch delta 492 zcmZ{f!AiqG5QcYl(==(CTGUp=7Sw|h1o7Yl2;O_Ky;Q`O>=G+Bh1uw#6nfBummW$V zLhH@PF)yRDNf9YHu>a1^?EX97m;G9*bbPKo?!wJNSJXjHIdgO&#Gc3fJsJ{Rx5zC z7(NVCoapwFr*4A%SeqkmlHJlmW1o8AT|XHrt^3nRr9vl|`Z`3V;;a}cdMbuGN}b$m zAkk3e;u!}^t61()rY#Z%+kg$)|ED>p?mCU+vnh>kfaD5khe<1gD*Qs(t+Ch9>RKy& zQg{>a45hnaCQx`gq9P8Y8khfE+Hd0)eTX$9yGGXLck|a+AK?MDR}^)?CY=Ij;fh1s V0AX`+ERL#WN-d~zr|6ile*nB`X+r=2 delta 61 zcmeC+y2-{D%FD~e00aqzB?%r(6ZvEq4JK+EurdWRXmV~WSkA)4XN!}$ZYR~j&KCecRm;0eliDa*XH$-^*MEEyJ z*b;$gy(Hm=*btl0Z_2i4zoMcex-WUykzLspTd$btiEXgAR`!l~2kf3;M`Up0#jrn- z*;K0IS&`_pEUNx-srps?O!l)<_sipcmKL%?B`JmMpF{9ubWTAIsNt0?1oXi}rAk$4 zWp<}?Jt>Pwq)H~bRP$(7N%i8^@NlM-ERy-~n^?!gaa^3x6g8N-G21*P5L-?!P zAT-fH&w~BgJ0qICc53p5p3$Gl=j2E76ZwVI6hN?%p=!VlFQ>9FE!;Yq#(H8n9$JvJ`JQoSXr1AG5-e^^0)@rfMDe3r#pis7fj2W37!`fV1A%YeU&3z5M(8+0^j ztb5bB>6}O%+2aIY!rQMr5QMhr4XU<4OOU6Fb_LyC@UGD9ol(u60=gPfLO6dolw4vI z1Tb>I`1~Aq0Jgof5VFt%u6%H)00q)!xR~WrfXXo*wTXU2+K4XB@RBmmQ@ss(#X(@K zY8QIgwiPEyIV*H3{u4G%wU_b)6ipTc0;V-t(3+llYEQs5q!4`LJ0OBx=#Z-p*nG`) zuZ?>LaJ4mEP{?*4pa!FF71CyS5?7ORf$D~3xthj_TwXAaJsLQcW#d5RH7Jmze2DV$fKp9aFG}E@w7p!Ir2GHFjQUgse_GCHct&iC(@J9**SNkB0 z|FAg8(rOZJR+Ccc$g=Y&>@?Og__y3Lq~6127{0=o2cGe;6jGr+K;MTbkTbvvyhd@Z z?HSi8+)XAjPEMm{QX!f%@4&(pm%ySE0F#`eRG+}u724osyrk_5F#dAA5}O#R5AK1hKE^3mAvVjd=f)D)^Hfj7m$0a^Z#ng7 zk69eIaldWjN0BI#C^Bpu8wYCN)?K(Wjw5^vrdd3fDzepwWE=PJdrVE_+&Hp$*3>G# z3^rYxYr%XoPFiTomcpafh_{j2+6@l!Qp_^>6;_8OoYPxSzirmzfggC?Ua$8r--&B6 delta 413 zcmZ8eJx{|h5VajAPTHiDsuEuVVl0&y5KG>No6OjEQq~|#0+B> z*!UMrY+m^zoLhu|lkVN!v;FQ)euzFq|1ydi1np{6jvg5ypSJjI$dOZYeLnB+9;EDv zKNE1a2=EOubioDho(w$@;A0dJKm(%>?1J=~^S43m(Zl+kEsjidotAPO=Qk4KGB%Db zmGP1y%O+)ynIKM*qRPt&7`M`?(hH)(`h}jg!eW-@^82`1zdAd-h4a({I^9=I%vAUT zka@WRMty}0I7!Fl7!`|Euq`H>>Clw&Khpst-l~R`J1x82- zMIxnPV_XH-S}8hde!FU5M_f*_e6iB)|5Z2saaKSzO;0FZ*7h4X+jQElzvhcC>b_M1 diff --git a/dist/ba_root/mods/Currency/Handlers/ba_get_player_data.py b/dist/ba_root/mods/Currency/Handlers/ba_get_player_data.py index 72b083b..e7a4596 100644 --- a/dist/ba_root/mods/Currency/Handlers/ba_get_player_data.py +++ b/dist/ba_root/mods/Currency/Handlers/ba_get_player_data.py @@ -22,3 +22,17 @@ def client_to_display_string(client_id): if i['client_id'] == client_id: return i['display_string'] return None + + +def send(msg, clientid): + _ba.chatmessage(str(msg), clients=[clientid]) + _ba.screenmessage(str(msg), transient=True, clients=[clientid]) + + + +def senderror(msg, clientid): + _ba.chatmessage(str(msg), clients=[clientid], sender_override = "Use[server]") + _ba.screenmessage("Use[server] " + str(msg), transient=True, clients=[clientid]) + + + diff --git a/dist/ba_root/mods/Currency/Handlers/bank_handler.py b/dist/ba_root/mods/Currency/Handlers/bank_handler.py index b2b594f..91d1c76 100644 --- a/dist/ba_root/mods/Currency/Handlers/bank_handler.py +++ b/dist/ba_root/mods/Currency/Handlers/bank_handler.py @@ -1,28 +1,12 @@ """ helperfunctions for save lot of lines of code """ - import ba, _ba, json - +from .ba_get_player_data import send +from .CLstr import Errorstr bank_path = _ba.env()['python_directory_user']+'/Currency/Data/bank.json' - -def open_account(accountid): - users = get_bank_data() - - if str(accountid) in users: - return False - else: - users[str(accountid)] = {} - users[str(accountid)]["cash"] = 0 - users[str(accountid)]["bank_space"] = 100 - users[str(accountid)]["bank_cash"] = 0 - commit(users) - return True - - - def get_bank_data(): with open(bank_path, 'r') as f: users = json.load(f) @@ -36,3 +20,45 @@ def commit(data): +def open_account(accountid : str): + users = get_bank_data() + + if str(accountid) in users: + return False + else: + users[str(accountid)] = {} + users[str(accountid)]["cash"] = 0 + users[str(accountid)]["bank_space"] = 100 + users[str(accountid)]["bank_cash"] = 0 + commit(users) + return True + + + + +def cheack_cash_and_space(userid, ammount : int, clientid : int): + users = get_bank_data() + + cash_amt = users[str(userid)]["cash"] + bank_space = users[str(userid)]["bank_space"] + + + if bank_space < ammount: + send(Errorstr("English", "short_space"), clientid) + return True + if cash_amt < ammount: + send(Errorstr("English", "short_ammount"), clientid) + return True + + + +def cheack_withd(userid, ammount : int, clientid : int): + users = get_bank_data() + bank_cash = users[str(userid)]["bank_cash"] + + if bank_cash < ammount: + send(Errorstr("English", "short_bank_cash"), clientid) + return True + + + diff --git a/dist/ba_root/mods/Currency/__pycache__/__init__.cpython-38.opt-1.pyc b/dist/ba_root/mods/Currency/__pycache__/__init__.cpython-38.opt-1.pyc index 5f6f75bd53ca9e5d362405bc9b8981847cc42710..8c3084a78bd83e506825722a207f365eb47ceb76 100644 GIT binary patch delta 20 acmbQwGM|Mzl$V!_0SM}HN;h(gFaZE75(E4I delta 20 acmbQwGM|Mzl$V!_0SFEylx*Y{VFCawp#(Dk From 755f481421097c7c22e8f27dd731f5d2d1749325 Mon Sep 17 00:00:00 2001 From: snowman1711 Date: Wed, 14 Apr 2021 23:07:38 +0530 Subject: [PATCH 2/4] Added some more helper functions --- .../data_functions.cpython-38.opt-1.pyc | Bin 2050 -> 1830 bytes .../Command_Objects/data_functions.py | 30 +++++-------- dist/ba_root/mods/Currency/Data/bank.json | 4 +- dist/ba_root/mods/Currency/Data/textes.json | 3 +- .../bank_handler.cpython-38.opt-1.pyc | Bin 1670 -> 2379 bytes .../mods/Currency/Handlers/bank_handler.py | 41 ++++++++++++++++++ 6 files changed, 56 insertions(+), 22 deletions(-) diff --git a/dist/ba_root/mods/Currency/Commands/Command_Objects/__pycache__/data_functions.cpython-38.opt-1.pyc b/dist/ba_root/mods/Currency/Commands/Command_Objects/__pycache__/data_functions.cpython-38.opt-1.pyc index 05c1bf934ca076852252af6b01aec574ad3520fa..835b572fa484a0b1775c0ab05b34eecd3e98a8b4 100644 GIT binary patch literal 1830 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 Date: Sat, 17 Apr 2021 13:22:30 +0530 Subject: [PATCH 3/4] final whitelist --- dist/ba_root/mods/setting.json | 26 ++-- dist/ba_root/mods/setting.py | 40 +++--- dist/ba_root/mods/spazmod/modifyspaz.py | 2 +- .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 0 -> 357 bytes .../__pycache__/mystats.cpython-38.opt-1.pyc | Bin 0 -> 5790 bytes dist/ba_root/mods/stats/mystats.py | 2 +- dist/ba_root/mods/stats/stats.json | 14 ++ dist/ba_root/mods/stats/stats_page.html | 30 ++++ .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 0 -> 498 bytes .../textonmap.cpython-38.opt-1.pyc | Bin 0 -> 1758 bytes .../whitelist.cpython-38.opt-1.pyc | Bin 0 -> 3605 bytes dist/ba_root/mods/tools/logs.txt | 0 dist/ba_root/mods/tools/textonmap.py | 102 +++++++------- dist/ba_root/mods/tools/whitelist.json | 5 + dist/ba_root/mods/tools/whitelist.py | 129 ++++++++++++++++++ 15 files changed, 271 insertions(+), 79 deletions(-) create mode 100644 dist/ba_root/mods/stats/__pycache__/__init__.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/stats/__pycache__/mystats.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/stats/stats_page.html create mode 100644 dist/ba_root/mods/tools/__pycache__/__init__.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/tools/__pycache__/textonmap.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/tools/__pycache__/whitelist.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/tools/logs.txt create mode 100644 dist/ba_root/mods/tools/whitelist.json diff --git a/dist/ba_root/mods/setting.json b/dist/ba_root/mods/setting.json index 9aacf06..e80165b 100644 --- a/dist/ba_root/mods/setting.json +++ b/dist/ba_root/mods/setting.json @@ -1,11 +1,19 @@ { - "textonmap": - { - "top watermark":"Welcome to server \n ip 192.168.0.1", - "bottom left watermark":"join discord for fun", - "center highlights":["message 1","message 2","message 3"] - }, - "enabletags":true, - "enablerank":true, - "enableeffects":false + "white_list": { + "whitelist_on": true, + "spectators": false, + "lobbychecktime": 3 + }, + "textonmap": { + "top watermark": "Welcome to server \n ip 192.168.0.1", + "bottom left watermark": "join discord for fun", + "center highlights": [ + "message 1", + "message 2", + "message 3" + ] + }, + "enabletags": true, + "enablerank": true, + "enableeffects": false } \ No newline at end of file diff --git a/dist/ba_root/mods/setting.py b/dist/ba_root/mods/setting.py index 01a0056..01f21c3 100644 --- a/dist/ba_root/mods/setting.py +++ b/dist/ba_root/mods/setting.py @@ -1,23 +1,27 @@ # Released under the MIT License. See LICENSE for details. -import ba,_ba,json,os -settingjson = os.path.join(_ba.env()['python_directory_user'],"setting.json") +import _ba, json -def get_setting(): - s = {} - f=open(settingjson,"r") - d = json.loads(f.read()) - f.close() - return d +settings_path = _ba.env()["python_directory_user"]+"/setting.json" -def commit(updated_settings: dict): - if updated_settings == {}: return - f=open(settingjson,'w') - json.dump(updated_settings,f,indent=4) - f.close() -def sendError(msg: str, ID: int = None): - if ID is not None: - ba.screenmessage(msg, color=(1,0,0), clients=[ID], transient=True) - else: - ba.screenmessage(msg, color=(1,0,0), transient=True) + + +def get_settings_data(): + with open(settings_path, "r") as f: + data = json.load(f) + return data + + + +def commit(data): + with open(settings_path, "w") as f: + json.dump(data, f, indent=4) + + + +def sendError(msg : str, client_id : int = None): + if client_id == None: + _ba.screenmessage(msg, color=(1,0,0)) + else: + _ba.screenmessage(msg, color=(1,0,0), transient=True, clients=[client_id]) diff --git a/dist/ba_root/mods/spazmod/modifyspaz.py b/dist/ba_root/mods/spazmod/modifyspaz.py index bfdb13f..c94fecf 100644 --- a/dist/ba_root/mods/spazmod/modifyspaz.py +++ b/dist/ba_root/mods/spazmod/modifyspaz.py @@ -4,7 +4,7 @@ import setting # all activites related to modify spaz by any how will be here def main(node,player): - _setting=setting.get_setting() + _setting=setting.get_settings_data() if _setting['enabletags']: tag.addtag(node,player) diff --git a/dist/ba_root/mods/stats/__pycache__/__init__.cpython-38.opt-1.pyc b/dist/ba_root/mods/stats/__pycache__/__init__.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7ed55b36ec09b4c7a2417b324268498dd0295a0b GIT binary patch literal 357 zcmYk1y-ou$499b2pgO4&FW|LO+v5QcLa?(OEG!{Se7#h;xFk-i>l^Vj>|J>THYVIo zSh6L5{QkCIXR}&~wcF$SO{LWLIr(o=QxD>KD#58Y<*HWAC&#ZR8U~86_MCw_=t{Kg zDVpGUgxs5i4%WyA#0Vw?z%CK&5^d3PUe)zW@8c$ekI-X6A*h5i0fIV==oZlXO&>4h|T?($ZcinIEA<&oyI~JF<@!fqNW5_QSzD6ux8`ls&=k5p3`n`684t zi3nJ7xT>G$)#+MmM^@`kl_v7-CHyu`W=dv*4Gtw3M%Uank2I{?k7ArO4d+H{FIQ;2 T+Ks2_-9WAcyuT8SA93{uTnlcP literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/stats/__pycache__/mystats.cpython-38.opt-1.pyc b/dist/ba_root/mods/stats/__pycache__/mystats.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..482aac220c8c1952d3a0a6f5f3c372656acc8a74 GIT binary patch literal 5790 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 literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/stats/mystats.py b/dist/ba_root/mods/stats/mystats.py index 3f0f4ef..8e52ca5 100644 --- a/dist/ba_root/mods/stats/mystats.py +++ b/dist/ba_root/mods/stats/mystats.py @@ -16,7 +16,7 @@ from typing import Any, Dict, Optional from ba._lobby import JoinInfo from ba import _activitytypes as ba_actypes from ba._activitytypes import * -our_settings = setting.get_setting() +our_settings = setting.get_settings_data() # where our stats file and pretty html output will go base_path = os.path.join(_ba.env()['python_directory_user'],"stats" + os.sep) statsfile = base_path + 'stats.json' diff --git a/dist/ba_root/mods/stats/stats.json b/dist/ba_root/mods/stats/stats.json index e69de29..e0b50f0 100644 --- a/dist/ba_root/mods/stats/stats.json +++ b/dist/ba_root/mods/stats/stats.json @@ -0,0 +1,14 @@ +{ + "pb-IF4VAk4a": { + "rank": 1, + "name_html": "pb-IF4VAk4a", + "scores": 0, + "total_damage": 0.0, + "kills": 0, + "deaths": 0, + "games": 18, + "kd": 0.0, + "avg_score": 0.0, + "aid": "pb-IF4VAk4a" + } +} \ No newline at end of file diff --git a/dist/ba_root/mods/stats/stats_page.html b/dist/ba_root/mods/stats/stats_page.html new file mode 100644 index 0000000..401181a --- /dev/null +++ b/dist/ba_root/mods/stats/stats_page.html @@ -0,0 +1,30 @@ + + + + + Test Server + + + +

Top 200 Players

+ + + + + + + + + + + + + + + + + + +
RankNameScoreKillsDeathsGames Played
1pb-IF4VAk4a00018
+ + \ No newline at end of file diff --git a/dist/ba_root/mods/tools/__pycache__/__init__.cpython-38.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/__init__.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ee9737fda68df01081708feea0d0a9b753d1a4cd GIT binary patch literal 498 zcmY*Vu};G<5Ovy=RuSF!fLkk-h7UjpQRXhd(j~a@B{6b*#dcbyEBp*!!^D!6zhL50 z2H>Q7@>%!Zv){vXnh36s;_!GI3Gvwve`~bH z^bBCCLW^n+l`bpOLTI;m?qz{w(W+j xHto%N4H3DRaWxxu<1AB@XIU3pS>y5g*XHLmD%px7LQqj8PNYZ;mpx!6YbV(-GhS>bZC6`y zNKZ)p4>%;p{1^NkzH&f&;|dq}-fWZINa2P@etx#!v)}u^=lO1Jt;^89`FZlgZwX_+ z(`30tm^?&xpF$`$V2UeI@mdT7Cq1g7LDY`%Aa2KGkbKQltdf^ZC8uJLs^|&prIT-q z-N#=&E*h;>;Z5PRFNVfgHEK$)U19bMub=s%F-jNri`ty%!jEcgi<7cChQZv&kD3Fw zedJ72%n%Xl@sRJrZ1?$C?+j^Wxd}`jqPzPLnhiKI5R}17hNvSIV??AX#h9o}42p>Rx7m*XLa_hpNr04Vkd-F*+?*%?0v6kF^CpW`7fhL?S+d2TMN@Vb zPsKUsn4Kllh%}!bWh(XQSw3Y)SfMap!BS?5A&}0FB@QN=d&YZH7nR=k#Zy3L>(c%> zS@UMRm|BW-vN6;R_KU;O!C{5&-7LrYF0e|i9_!NgIw1oA1m z^s~@i91w2Nz4Gebu!4JKt(_|mbP#*+X~_!lqq3@cafqF+_Cwqr7n5&@;Bmq1ZA9|- zgTC{|!nLpK;|j^B{)7IPrrvw<({ZW#-k8euukhanbbGuMHJK~B1bwS8)F(s%Zs2qrcUo+KtC0=kJpCzh0}2L!o>X#|`40J>@;mGlr^u+~Yh@?I6v!XA0PW8&LOQ1-q;m#m#Lw%o{BCPi|?=apLAuNPc|3KEcp$Ikjq9jenrlEn7k$j59$U|L<@Cyr^U(M zfw`rUuoT4{$G1s)hs3)i-iH9@ACmqN=~0{9+@F39^W54jDM8zT_yFC#1wn}|rNspj zo7`I@b^UGpzj+b5c7sG)Bsb(`w`sRe;yO!~0R060zmr&EX6Zri^fG#IO<8LxLs!b$ zsN;(CRVnd8tND&4Z0yG*2(I?Jr4SZi61imIsQhw~ujX&$tL<+M7iCf^GsM}Qy>eUX l=D2p2Dq~)uEn_K7>5!XF5BX>F@IEJt_KFz4hIRZJ{snCql;QvY literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/tools/__pycache__/whitelist.cpython-38.opt-1.pyc b/dist/ba_root/mods/tools/__pycache__/whitelist.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4ac739b3bc394b1fd6bd18126967c7e7f67d722c GIT binary patch literal 3605 zcma)8U2ogg89s-kD2kG0J9X^3O*$^k(5a|p4@0*#$bvM9owQxGF3IvCtm7yh#->e? z%HdH`3-ZkzV7n>y1KI)(u!{!RFFIEPc9p--o9%fIZP{+KVFY--Ki-e$ea`#)nHitq zYy5fqr(ZW1`xkXiel|K+8RNx2(GaZ51Q%Ay2UgeO)V5Q5;B+0+cGAkg?YgF2Nvqu| z<}0b!^-Nvs)=cepeN)%FbyGLGjo6WYh`ocE=S;ZEOjMUxw|S!Pp+75X!hgoPbD}O9 zUvn`dn$Mi>yqFbp7(Ij0d5oSBuVM5x^y*^aYfGFJi|8+iCGk2|oyF)fR=pwK#OUHp zCeDfT&zLyBZ*`YM#Oj){-W{^u4-^~jY8S>H zB5d(MBLsSQmbt>3aG8LL}6 zR;%(<0v0XHTrHcJH42r*9Eo!#5+W>x4OMO|aslJVLNB7%$3Oi}IprdTr-IJyF=ZXV zDbM*HKX%82!yOiclr6_dD2WYZ9ffw%JQ9%4h&DsRWbl*nZN@5`VkRWVyn_{mi-L^0 zz~wSp@Nq5b_w!Mv67d7OlE?-_Z=s>sJ_CCAgzdwwJFZ+55Kvh72{(4`vsO3hQ^_t#~18HOa2IBr;JTrq2DOdL*vNU2Nr0T zFS9);bznbddk|Du%S`@JITL%I%QlIuDhDp+oQZRTeSTrDGN}lAnN92+OJ2fURe2b3 zmf<*3_VFd-uu4b!$71TnF<21M{vjyBMCe*SO+W%@wra*Mx?03a!5Mm;9rKjCx_*M3PT7ybVET6b9Ua9E_+bzrUJ3jN2IMxVZPbAEo@3~ff5k*)Vwuu5 zrSld0rb>_>`^o`(RqnHFjl&0s_=<2T;uH8MbVXHon+UOOSJW;uRaIv0A;1YQ- zv5N!cZPz9a*7(9#_3ehJe~DgLGr`p8$N;j+AEVHIF$AO|Jbi_3rg^Wo+uw@&I|@(z zcRUzh?Bv1yY2I=pR#+U1;Jx6wjFBm1o563hc-$z;RAwhxNyOM6$oApD`0ZhD<>RFD z@rSpsMGw|DuHD=C;MT@Y=fQ)GpRI4Kb)(y9cl|C<<;r-71GPsNE94lh8F`U}{0SBG z8t8g|D^i2FDDXy?p6#5Tz{vX`Hx8K6I-;Ps45GWMX2@37*xf54ZmYH(!&fP29!rifp9@-}AGiyhzuk3@?e7WD5nBUZeJ_+(z$m zNlT}53wae2JNQq#4Q{dwyI$m;eU2}{f#b!KZaW4}r&ZAaKt^vtsQoY;c}Kp8RN}MiM7WA}8%43=m+F z2wK;AQ9F#Y(V#FumRB%XhJ|CGZW1jInNw`K6gt|DvnM7E>-y7du_&`dV^fnhQ2Jut yc=Ns(t~8>(N(=2>E|tGRZ%#ppmQ!!wZE9F+mQ$VMbGBD$Ry?;^n`?M;P3J$0lRx$V literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/tools/logs.txt b/dist/ba_root/mods/tools/logs.txt new file mode 100644 index 0000000..e69de29 diff --git a/dist/ba_root/mods/tools/textonmap.py b/dist/ba_root/mods/tools/textonmap.py index 7ac49aa..6330341 100644 --- a/dist/ba_root/mods/tools/textonmap.py +++ b/dist/ba_root/mods/tools/textonmap.py @@ -1,59 +1,61 @@ # Released under the MIT License. See LICENSE for details. -#TODO need to set coordinates of text node , move timer values to settings.json +""" TODO need to set coordinates of text node , move timer values to settings.json """ + from ba._enums import TimeType -import ba,_ba +import ba, _ba import setting + class textonmap: + def __init__(self): - self.index=0; - _textonmap=setting.get_setting()['textonmap'] - self.highlights=_textonmap['center highlights'] - left=_textonmap['bottom left watermark'] - top=_textonmap['top watermark'] - - self.timerr=ba.Timer(8,ba.Call(self.highlights),repeat=True) - + + data = setting.get_settings_data()['textonmap'] + left = data['bottom left watermark'] + top = data['top watermark'] + + self.index = 0 + self.highlights = data['center highlights'] self.left_watermark(left) self.top_message(top) + self.timer = ba.timer(8, ba.Call(self.highlights), repeat=True) - - def highlights(self): - hg=_ba.newnode('text', - attrs={ - 'text': self.highlights[self.index], - - 'flatness': 1.0, - 'h_align': 'center', - 'v_attach':'bottom', - 'scale':1, - 'position':(0,138), - 'color':(1,1,1) - }) - self.delt=ba.Timer(7,hg.delete) - self.index=int((self.index+1)%len(self.highlights)) - - def left_watermark(self,text): - hg=_ba.newnode('text', - attrs={ - 'text': text, - - 'flatness': 1.0, - 'h_align': 'left', - 'v_attach':'bottom', - 'scale':1, - 'position':(0,138), - 'color':(1,1,1) - }) - def top_message(self,text): - txt=_ba.newnode('text', - attrs={ - 'text': text, - - 'flatness': 1.0, - 'h_align': 'center', - 'v_attach':'top', - 'scale':1, - 'position':(0,138), - 'color':(1,1,1) - }) \ No newline at end of file + def highlights_(self): + node = _ba.newnode('text', + attrs={ + 'text': self.highlights[self.index], + 'flatness': 1.0, + 'h_align': 'center', + 'v_attach':'bottom', + 'scale':1, + 'position':(0,138), + 'color':(1,1,1) + }) + + self.delt = ba.timer(7,node.delete) + self.index = int((self.index+1)%len(self.highlights)) + + def left_watermark(self, text): + node = _ba.newnode('text', + attrs={ + 'text': text, + 'flatness': 1.0, + 'h_align': 'left', + 'v_attach':'bottom', + 'scale':1, + 'position':(0,138), + 'color':(1,1,1) + }) + + def top_message(self, text): + node = _ba.newnode('text', + attrs={ + 'text': text, + 'flatness': 1.0, + 'h_align': 'center', + 'v_attach':'top', + 'scale':1, + 'position':(0,138), + 'color':(1,1,1) + }) + \ No newline at end of file diff --git a/dist/ba_root/mods/tools/whitelist.json b/dist/ba_root/mods/tools/whitelist.json new file mode 100644 index 0000000..d501d5a --- /dev/null +++ b/dist/ba_root/mods/tools/whitelist.json @@ -0,0 +1,5 @@ +{ + "pb-IF4VAk4a": [ + "\ue030Server127089" + ] +} \ No newline at end of file diff --git a/dist/ba_root/mods/tools/whitelist.py b/dist/ba_root/mods/tools/whitelist.py index e69de29..2336c1a 100644 --- a/dist/ba_root/mods/tools/whitelist.py +++ b/dist/ba_root/mods/tools/whitelist.py @@ -0,0 +1,129 @@ +""" +Private Server whitelist by Mr.Smoothy + +* don't dare to remove credits or I will bite you + +GitHub : https://github.com/imayushsaini/Bombsquad-Ballistica-Modded-Server +""" +# Released under the MIT License. See LICENSE for details. + + +# ba_meta require api 6 +from __future__ import annotations +from typing import TYPE_CHECKING +from ba._enums import TimeType + +import ba, _ba, time, json, datetime, setting + +if TYPE_CHECKING: + pass + + + + + +white_logs_path = _ba.env()["python_directory_user"]+"/tools/whitelist.json" +logs_paths = _ba.env()["python_directory_user"]+"/tools/logs.txt" + + +def commit(data): + with open(white_logs_path, "w") as f: + json.dump(data, f, indent=4) + + +def add_commit_to_logs(commit : str): + with open(logs_path, "a") as f: + f.write(commit+"\n") + + +def get_whitelist_data(): + with open(white_logs_path, "r") as f: + data = json.load(f) + return data + + +def in_white_list(accountid : str): + data = get_whitelist_data() + + if str(accountid) in data: + return True + else: + return False + + +def add_to_white_list(accountid : str, display_string : str): + data = get_whitelist_data() + + if accountid not in data: + data[str(accountid)] = [str(display_string)] + + else: + data[str(accountid)].append(str(display_string)) + + commit(data) + + +def handle_player_request(player): + data = get_whitelist_data() + settings = setting.get_settings_data()["white_list"] + accountid = player.get_account_id() + + if settings["whitelist_on"]: + if in_white_list(accountid): + return + else: + rost = _ba.get_game_roster() + + for i in rost: + if i["account_id"] == accountid: + _ba.disconnect_client(int(i['client_id'])) + + +def display_string_in_white_list(display_string : str): + return any(display_string in i for i in data.values()) + + +class _whitelist_: + def __init__(self): + + settings = setting.get_settings_data()["white_list"] + whitelist_on = settings["whitelist_on"] + spectators = settings["spectators"] + lobbychecktime = settings["lobbychecktime"] + _ba.chatmessage(f"{settings} {whitelist_on} {spectators} {lobbychecktime}") + + try: + data = get_whitelist_data() + + except: + print("No Whitelist Detected , Creating One") + self.whitelst = {} + self.whitelst['pb-JiNJARBaXEFBVF9HFkNXXF1EF0ZaRlZE']=['smoothyki-id','mr.smoothy'] + commit(whitelst) + + if whitelist_on and not spectators: + self.timer = ba.timer(lobbychecktime, self.checklobby, repeat=True, timetype=TimeType.REAL) + + def checklobby(self): + + settings = setting.get_settings_data()["white_list"] + whitelist_on = settings["whitelist_on"] + spectators = settings["spectators"] + lobbychecktime = settings["lobbychecktime"] + + if whitelist_on and not spectators: + try: + + rost = _ba.get_game_roster() + for i in rost: + if i['account_id'] in whitelist and i['account_id'] != '' or i['client_id'] == -1: + return + + else: + add_commit_to_logs("Kicked from lobby "+i['account_id']+" "+i['spec_string']) + _ba.disconnect_client(i['client_id']) + + except: + return + + From 0a7cf38197554d813e5c88bc89847b217732f4ab Mon Sep 17 00:00:00 2001 From: snowman1711 Date: Sat, 17 Apr 2021 22:34:48 +0530 Subject: [PATCH 4/4] Commands clean up, whitelist --- .../mods/chatHandle/ChatCommands/Handlers.py | 46 + .../mods/chatHandle/ChatCommands/Main.py | 84 ++ .../chatHandle/ChatCommands/Objects/Cheats.py | 310 +++++ .../chatHandle/ChatCommands/Objects/Fun.py | 209 ++++ .../ChatCommands/Objects/Handlers.py | 48 + .../ChatCommands/Objects/Management.py | 332 ++++++ .../ChatCommands/Objects/NormalCommands.py | 81 ++ .../NormalCommands.cpython-38.opt-1.pyc | Bin 0 -> 1818 bytes .../__pycache__/cheats.cpython-38.opt-1.pyc | Bin 0 -> 4675 bytes .../__pycache__/fun.cpython-38.opt-1.pyc | Bin 0 -> 3115 bytes .../__pycache__/handlers.cpython-38.opt-1.pyc | Bin 0 -> 1305 bytes .../management.cpython-38.opt-1.pyc | Bin 0 -> 6692 bytes .../normal_commands.cpython-38.opt-1.pyc | Bin 0 -> 1672 bytes .../ChatCommands}/__init__.py | 2 +- .../__pycache__/Main.cpython-38.opt-1.pyc | Bin 0 -> 1442 bytes .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 357 -> 375 bytes .../__pycache__/chatcmd.cpython-38.opt-1.pyc | Bin 0 -> 1614 bytes .../__pycache__/cheats.cpython-38.opt-1.pyc | Bin 3982 -> 3982 bytes .../__pycache__/fun.cpython-38.opt-1.pyc | Bin 2899 -> 2899 bytes .../__pycache__/handlers.cpython-38.opt-1.pyc | Bin 0 -> 904 bytes .../management.cpython-38.opt-1.pyc | Bin 0 -> 6741 bytes .../normal_commands.cpython-38.opt-1.pyc | Bin 1660 -> 1660 bytes .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 362 -> 362 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 378 -> 0 bytes .../handlechat.cpython-38.opt-1.pyc | Bin 647 -> 446 bytes .../__pycache__/handlechat.cpython-38.pyc | Bin 210 -> 0 bytes .../mods/chatHandle/chatCMDS/__init__.py | 7 - .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 371 -> 0 bytes .../__pycache__/chatcmd.cpython-38.opt-1.pyc | Bin 1614 -> 0 bytes .../__pycache__/handlers.cpython-38.opt-1.pyc | Bin 1005 -> 0 bytes .../management.cpython-38.opt-1.pyc | Bin 5226 -> 0 bytes .../mods/chatHandle/chatCMDS/chatcmd.py | 70 -- .../mods/chatHandle/chatCMDS/cheats.py | 236 ---- dist/ba_root/mods/chatHandle/chatCMDS/fun.py | 177 --- .../mods/chatHandle/chatCMDS/handlers.py | 26 - .../mods/chatHandle/chatCMDS/management.py | 260 ----- .../chatHandle/chatCMDS/normal_commands.py | 54 - .../mods/chatHandle/chatFilter/ChatFilter.py | 6 + .../mods/chatHandle/chatFilter/FilterWords.py | 1012 +++++++++++++++++ .../chatSpam/{chatfilter.py => CheackSpam.py} | 2 +- dist/ba_root/mods/chatHandle/handlechat.py | 46 +- dist/ba_root/mods/chatHandle/temporary.txt | 14 + dist/ba_root/mods/custom_hooks.py | 5 +- .../__pycache__/__init__.cpython-38.opt-1.pyc | Bin 381 -> 381 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 397 -> 0 bytes .../__pycache__/pdata.cpython-38.opt-1.pyc | Bin 3314 -> 3314 bytes dist/ba_root/mods/playersData/roles.json | 7 +- dist/ba_root/mods/privateserver.py | 41 +- dist/ba_root/mods/setting.json | 12 + .../__pycache__/mystats.cpython-38.opt-1.pyc | Bin 5790 -> 0 bytes dist/ba_root/mods/stats/mystats.py | 224 ---- dist/ba_root/mods/stats/rank.py | 1 - dist/ba_root/mods/stats/stats.json | 14 - dist/ba_root/mods/stats/stats_page.html | 30 - 54 files changed, 2212 insertions(+), 1144 deletions(-) create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Handlers.py create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Main.py create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/Cheats.py create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/Fun.py create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/Handlers.py create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/Management.py create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/NormalCommands.py create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/NormalCommands.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/cheats.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/fun.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/handlers.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/management.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/normal_commands.cpython-38.opt-1.pyc rename dist/ba_root/mods/{stats => chatHandle/ChatCommands}/__init__.py (98%) create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Main.cpython-38.opt-1.pyc rename dist/ba_root/mods/{stats => chatHandle/ChatCommands}/__pycache__/__init__.cpython-38.opt-1.pyc (53%) create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/chatcmd.cpython-38.opt-1.pyc rename dist/ba_root/mods/chatHandle/{chatCMDS => ChatCommands}/__pycache__/cheats.cpython-38.opt-1.pyc (99%) rename dist/ba_root/mods/chatHandle/{chatCMDS => ChatCommands}/__pycache__/fun.cpython-38.opt-1.pyc (97%) create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/handlers.cpython-38.opt-1.pyc create mode 100644 dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/management.cpython-38.opt-1.pyc rename dist/ba_root/mods/chatHandle/{chatCMDS => ChatCommands}/__pycache__/normal_commands.cpython-38.opt-1.pyc (96%) delete mode 100644 dist/ba_root/mods/chatHandle/__pycache__/__init__.cpython-38.pyc delete mode 100644 dist/ba_root/mods/chatHandle/__pycache__/handlechat.cpython-38.pyc delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/__init__.py delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/__init__.cpython-38.opt-1.pyc delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/chatcmd.cpython-38.opt-1.pyc delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/handlers.cpython-38.opt-1.pyc delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/management.cpython-38.opt-1.pyc delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/chatcmd.py delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/cheats.py delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/fun.py delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/handlers.py delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/management.py delete mode 100644 dist/ba_root/mods/chatHandle/chatCMDS/normal_commands.py create mode 100644 dist/ba_root/mods/chatHandle/chatFilter/ChatFilter.py create mode 100644 dist/ba_root/mods/chatHandle/chatFilter/FilterWords.py rename dist/ba_root/mods/chatHandle/chatSpam/{chatfilter.py => CheackSpam.py} (81%) create mode 100644 dist/ba_root/mods/chatHandle/temporary.txt delete mode 100644 dist/ba_root/mods/playersData/__pycache__/__init__.cpython-38.pyc delete mode 100644 dist/ba_root/mods/stats/__pycache__/mystats.cpython-38.opt-1.pyc delete mode 100644 dist/ba_root/mods/stats/mystats.py delete mode 100644 dist/ba_root/mods/stats/rank.py delete mode 100644 dist/ba_root/mods/stats/stats.json delete mode 100644 dist/ba_root/mods/stats/stats_page.html diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Handlers.py b/dist/ba_root/mods/chatHandle/ChatCommands/Handlers.py new file mode 100644 index 0000000..4439cee --- /dev/null +++ b/dist/ba_root/mods/chatHandle/ChatCommands/Handlers.py @@ -0,0 +1,46 @@ +# Released under the MIT License. See LICENSE for details. + +from PlayersData import pdata +import ba, _ba + + + + + +def clientid_to_accountid(clientid): + """ + Transform Clientid To Accountid + + Parameters: + clientid : int + + Returns: + None + """ + for i in _ba.get_game_roster(): + if i['client_id'] == clientid: + return i['account_id'] + return None + + + + + +def cheak_permissions(accountid, command): + """ + Checks The Permission To Player To Executive Command + + Parameters: + accountid : str + command : str + + Returns: + Boolean + """ + roles = pdata.get_roles() + + for role in roles: + if accountid in roles[role]["ids"] and command in roles[role]["commands"]: + return True + return False + diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Main.py b/dist/ba_root/mods/chatHandle/ChatCommands/Main.py new file mode 100644 index 0000000..660b431 --- /dev/null +++ b/dist/ba_root/mods/chatHandle/ChatCommands/Main.py @@ -0,0 +1,84 @@ +# Released under the MIT License. See LICENSE for details. + +from .Handlers import clientid_to_accountid, cheak_permissions +from .Objects import NormalCommands +from .Objects import Management +from .Objects import Fun +from .Objects import Cheats + +import ba, _ba +import setting + + + + +def command_type(command): + """ + Checks The Command Type + + Parameters: + command : str + + Returns: + any + """ + if command in NormalCommands.Commands or command in NormalCommands.CommandAliases: + return "Normal" + + if command in Management.Commands or command in Management.CommandAliases: + return "Manage" + + if command in Fun.Commands or command in Fun.CommandAliases: + return "Fun" + + if command in Cheats.Commands or command in Cheats.CommandAliases: + return "Cheats" + + + + + + + +def Command(msg, clientid): + """ + Command Execution + + Parameters: + msg : str + clientid : int + + Returns: + any + """ + + command = msg.lower().split(" ")[0].split("/")[1] + arguments = msg.lower().split(" ")[1:] + accountid = clientid_to_accountid(clientid) + + + if command_type(command) == "Normal": + NormalCommands.ExcelCommand(command, arguments, clientid, accountid) + + + elif command_type(command) == "Manage": + if cheak_permissions(accountid, command): + Management.ExcelCommand(command, arguments, clientid, accountid) + + + elif command_type(command) == "Fun": + if cheak_permissions(accountid, command): + Fun.ExcelCommand(command, arguments, clientid, accountid) + + + elif command_type(command) == "Cheats": + if cheak_permissions(accountid, command): + Cheats.ExcelCommand(command, arguments, clientid, accountid) + + + settings = setting.get_settings_data() + + if settings["ChatCommands"]["BrodcastCommand"]: + return msg + return None + diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Cheats.py b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Cheats.py new file mode 100644 index 0000000..a450337 --- /dev/null +++ b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Cheats.py @@ -0,0 +1,310 @@ +from .Handlers import handlemsg, handlemsg_all, clientid_to_myself +import ba, _ba + + +Commands = ['kill', 'heal', 'curse', 'sleep', 'superpunch', 'gloves', 'shield', 'freeze', 'unfreeze', 'godmode'] +CommandAliases = ['die', 'heath', 'cur', 'sp', 'punch', 'protect', 'ice', 'thaw', 'gm'] + + + + + +def ExcelCommand(command, arguments, clientid, accountid): + """ + Checks The Command And Run Function + + Parameters: + command : str + arguments : str + clientid : int + accountid : int + + Returns: + None + """ + + if command in ['kill', 'die']: + kill(arguments, clientid) + + elif command in ['heal', 'heath']: + heal(arguments, clientid) + + elif command in ['curse', 'cur']: + curse(arguments, clientid) + + elif command == 'sleep': + sleep(arguments, clientid) + + elif command in ['sp', 'superpunch']: + super_punch(arguments, clientid) + + elif command in ['gloves', 'punch']: + gloves(arguments, clientid) + + elif command in ['shield', 'protect']: + shield(arguments, clientid) + + elif command in ['freeze', 'ice']: + freeze(arguments, clientid) + + elif command in ['unfreeze', 'thaw']: + un_freeze(arguments, clientid) + + elif command in ['gm', 'godmode']: + god_mode(arguments, clientid) + + + + +def kill(arguments, clientid): + + if arguments == [] or arguments == ['']: + myself = clientid_to_myself(clientid) + handlemsg(myself, ba.DieMessage()) + + elif arguments[0] == 'all': + handlemsg_all(ba.DieMessage()) + + else: + try: + req_player = int(arguments[0]) + handlemsg(req_player, ba.DieMessage()) + except: + return + + + + + +def heal(arguments, clientid): + + if arguments == [] or arguments == ['']: + myself = clientid_to_myself(clientid) + handlemsg(myself, ba.PowerupMessage(poweruptype='health')) + + elif arguments[0] == 'all': + handlemsg_all(ba.PowerupMessage(poweruptype='health')) + + else: + try: + req_player = int(arguments[0]) + handlemsg(req_player, ba.PowerupMessage(poweruptype='health')) + except: + return + + + + + +def curse(arguments, clientid): + + if arguments == [] or arguments == ['']: + myself = clientid_to_myself(clientid) + handlemsg(myself, ba.PowerupMessage(poweruptype='curse')) + + elif arguments[0] == 'all': + handlemsg_all(ba.PowerupMessage(poweruptype='curse')) + + else: + try: + req_player = int(arguments[0]) + handlemsg(req_player, ba.PowerupMessage(poweruptype='curse')) + except: + return + + + + + +def sleep(arguments, clientid): + + activity = _ba.get_foreground_host_activity() + + if arguments == [] or arguments == ['']: + myself = clientid_to_myself(clientid) + activity.players[myself].actor.node.handlemessage('knockout', 8000) + + elif arguments[0] == 'all': + for i in activity.players: + i.actor.node.handlemessage('knockout', 8000) + else: + try: + req_player = int(arguments[0]) + activity.players[req_player].actor.node.handlemessage('knockout', 8000) + except: + return + + + + + +def super_punch(arguments, clientid): + + activity = _ba.get_foreground_host_activity() + + if arguments == [] or arguments == ['']: + + myself = clientid_to_myself(clientid) + + if activity.players[myself].actor._punch_power_scale != 15: + activity.players[myself].actor._punch_power_scale = 15 + activity.players[myself].actor._punch_cooldown = 0 + else: + activity.players[myself].actor._punch_power_scale = 1.2 + activity.players[myself].actor._punch_cooldown = 400 + + elif arguments[0] == 'all': + + activity = _ba.get_foreground_host_activity() + + for i in activity.players: + if i.actor._punch_power_scale != 15: + i.actor._punch_power_scale = 15 + i.actor._punch_cooldown = 0 + else: + i.actor._punch_power_scale = 1.2 + i.actor._punch_cooldown = 400 + + else: + try: + activity = _ba.get_foreground_host_activity() + req_player = int(arguments[0]) + + if activity.players[req_player].actor._punch_power_scale != 15: + activity.players[req_player].actor._punch_power_scale = 15 + activity.players[req_player].actor._punch_cooldown = 0 + else: + activity.players[req_player].actor._punch_power_scale = 1.2 + activity.players[req_player].actor._punch_cooldown = 400 + except: + return + + + + + +def gloves(arguments, clientid): + + if arguments == [] or arguments == ['']: + myself = clientid_to_myself(clientid) + handlemsg(myself, ba.PowerupMessage(poweruptype='punch')) + + elif arguments[0] == 'all': + handlemsg_all(ba.PowerupMessage(poweruptype='punch')) + + else: + try: + req_player = int(arguments[0]) + handlemsg(req_player, ba.PowerupMessage(poweruptype='punch')) + except: + return + + + + + +def shield(arguments, clientid): + + if arguments == [] or arguments == ['']: + myself = clientid_to_myself(clientid) + handlemsg(myself, ba.PowerupMessage(poweruptype='shield')) + + elif arguments[0] == 'all': + handlemsg_all(ba.PowerupMessage(poweruptype='shield')) + + else: + try: + req_player = int(arguments[0]) + handlemsg(req_player, ba.PowerupMessage(poweruptype='shield')) + except: + return + + + + + +def freeze(arguments, clientid): + + if arguments == [] or arguments == ['']: + myself = clientid_to_myself(clientid) + handlemsg(myself, ba.FreezeMessage()) + + elif arguments[0] == 'all': + handlemsg_all(ba.FreezeMessage()) + + else: + try: + req_player = int(arguments[0]) + handlemsg(req_player, ba.FreezeMessage()) + except: + return + + + + + +def un_freeze(arguments, clientid): + + if arguments == [] or arguments == ['']: + myself = clientid_to_myself(clientid) + handlemsg(myself, ba.ThawMessage()) + + elif arguments[0] == 'all': + handlemsg_all(ba.ThawMessage()) + + else: + try: + req_player = int(arguments[0]) + handlemsg(req_player, ba.ThawMessage()) + except: + return + + + + + +def god_mode(arguments, clientid): + + if arguments == [] or arguments == ['']: + myself = clientid_to_myself(clientid) + activity = _ba.get_foreground_host_activity() + player = activity.players[myself].actor + + if player._punch_power_scale != 7: + player._punch_power_scale = 7 + player.node.hockey = True + player.node.invincible = True + + else: + player._punch_power_scale = 1.2 + player.node.hockey = False + player.node.invincible = False + + elif arguments[0] == 'all': + + activity = _ba.get_foreground_host_activity() + + for i in activity.players: + if i.actor._punch_power_scale != 7: + i.actor._punch_power_scale = 7 + i.actor.node.hockey = True + i.actor.node.invincible = True + else: + i.actor._punch_power_scale = 1.2 + i.actor.node.hockey = False + i.actor.node.invincible = False + + else: + activity = _ba.get_foreground_host_activity() + req_player = int(arguments[0]) + player = activity.players[req_player].actor + + if player._punch_power_scale != 7: + player._punch_power_scale = 7 + player.node.hockey = True + player.node.invincible = True + + else: + player._punch_power_scale = 1.2 + player.node.hockey = False + player.node.invincible = False diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Fun.py b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Fun.py new file mode 100644 index 0000000..4f2a043 --- /dev/null +++ b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Fun.py @@ -0,0 +1,209 @@ +from .Handlers import handlemsg, handlemsg_all +import ba, _ba + + +Commands = ['fly', 'invisible', 'headless', 'creepy', 'celebrate', 'spaz'] +CommandAliases = ['inv', 'hl', 'creep', 'celeb'] + + + + +def ExcelCommand(command, arguments, clientid, accountid): + """ + Checks The Command And Run Function + + Parameters: + command : str + arguments : str + clientid : int + accountid : int + + Returns: + None + """ + + if command == 'fly': + fly(arguments) + + elif command in ['inv', 'invisible']: + invi(arguments) + + elif command in ['hl', 'headless']: + headless(arguments) + + elif command in ['creepy', 'creep']: + creep(arguments) + + elif command in ['celebrate', 'celeb']: + celeb(arguments) + + elif command == 'spaz': + spaz(arguments) + + + +def fly(arguments): + + if arguments == [] or arguments == ['']: + return + + elif arguments[0] == 'all': + + activity = _ba.get_foreground_host_activity() + + for players in activity.players: + if players.actor.node.fly != True: + players.actor.node.fly = True + else: + players.actor.node.fly = False + + else: + try: + + activity = _ba.get_foreground_host_activity() + player = int(arguments[0]) + + if activity.players[player].actor.node.fly != True: + activity.players[player].actor.node.fly = True + else: + activity.players[player].actor.node.fly = False + + except: + return + + + + +def invi(arguments): + + if arguments == [] or arguments == ['']: + return + + elif arguments[0] == 'all': + + activity = _ba.get_foreground_host_activity() + + for i in activity.players: + body = i.actor.node + if body.torso_model != None: + body.head_model = None + body.torso_model = None + body.upper_arm_model = None + body.forearm_model = None + body.pelvis_model = None + body.hand_model = None + body.toes_model = None + body.upper_leg_model = None + body.lower_leg_model = None + body.style = 'cyborg' + else: + + player = int(arguments[0]) + activity = _ba.get_foreground_host_activity() + + body = activity.players[player].actor.node + + if body.torso_model != None: + body.head_model = None + body.torso_model = None + body.upper_arm_model = None + body.forearm_model = None + body.pelvis_model = None + body.hand_model = None + body.toes_model = None + body.upper_leg_model = None + body.lower_leg_model = None + body.style = 'cyborg' + + + + +def headless(arguments): + + if arguments == [] or arguments == ['']: + return + + elif arguments[0] == 'all': + + activity = _ba.get_foreground_host_activity() + + for players in activity.players: + + node = players.actor.node + if node.head_model != None: + node.head_model = None + node.style='cyborg' + + else: + try: + player = int(arguments[0]) + activity = _ba.get_foreground_host_activity() + + node = activity.players[player].actor.node + + if node.head_model != None: + node.head_model = None + node.style='cyborg' + except: + return + + + +def creep(arguments): + + if arguments == [] or arguments == ['']: + return + + elif arguments[0] == 'all': + + activity = _ba.get_foreground_host_activity() + + for players in activity.players: + node = players.actor.node + + if node.head_model != None: + node.head_model = None + node.handlemessage(ba.PowerupMessage(poweruptype='punch')) + node.handlemessage(ba.PowerupMessage(poweruptype='shield')) + + else: + try: + player = int(arguments[0]) + activity = _ba.get_foreground_host_activity() + + node = activity.players[player].actor.node + + if node.head_model != None: + node.head_model = None + node.handlemessage(ba.PowerupMessage(poweruptype='punch')) + node.handlemessage(ba.PowerupMessage(poweruptype='shield')) + except: + return + + + +def celeb(arguments): + + if arguments == [] or arguments == ['']: + return + + elif arguments[0] == 'all': + handlemsg_all(ba.CelebrateMessage()) + + else: + try: + player = int(arguments[0]) + handlemsg(player, ba.CelebrateMessage()) + except: + return + + + + + +def spaz(arguments): + + if arguments == [] or arguments == ['']: + return + + return diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Handlers.py b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Handlers.py new file mode 100644 index 0000000..d62362e --- /dev/null +++ b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Handlers.py @@ -0,0 +1,48 @@ +""" Some useful handlers to reduce lot of code """ +import _ba, ba + + + +def send(msg, clientid): + """Shortcut To Send Private Msg To Client""" + + _ba.chatmessage(str(msg), clients=[clientid]) + _ba.screenmessage(str(msg), transient=True, clients=[clientid]) + + + + + +def clientid_to_myself(clientid): + """Return Player Index Of Self Player""" + + session = _ba.get_foreground_host_session() + + for i in range(len(session.sessionplayers)): + if session.sessionplayers[i].inputdevice.client_id == clientid: + return int(session.sessionplayers[i].id) + + + + + +def handlemsg(client, msg): + """Handles Spaz Msg For Single Player""" + + activity = _ba.get_foreground_host_activity() + activity.players[client].actor.node.handlemessage(msg) + + + + + +def handlemsg_all(msg): + """Handle Spaz message for all players in activity""" + + activity = _ba.get_foreground_host_activity() + + for i in activity.players: + i.actor.node.handlemessage(msg) + + + diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Management.py b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Management.py new file mode 100644 index 0000000..83b65b2 --- /dev/null +++ b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/Management.py @@ -0,0 +1,332 @@ +from .Handlers import handlemsg, handlemsg_all +from PlayersData import pdata +from tools.whitelist import add_to_white_list, add_commit_to_logs + +import ba, _ba, time, setting + + +Commands = ['kick', 'remove', 'end', 'quit', 'mute', 'unmute', 'slowmo', 'nv', 'dv', 'pause', 'cameramode', 'createrole', 'addrole', 'removerole', 'addcommand', 'addcmd', 'removecommand', 'removecmd', 'changetag', 'add', 'spectators', 'lobbytime'] +CommandAliases = ['rm', 'next', 'restart', 'mutechat', 'unmutechat', 'sm', 'slow', 'night', 'day', 'pausegame', 'camera_mode', 'rotate_camera', 'whitelist'] + + + +def ExcelCommand(command, arguments, clientid, accountid): + """ + Checks The Command And Run Function + + Parameters: + command : str + arguments : str + clientid : int + accountid : int + + Returns: + None + """ + if command == 'kick': + kick(arguments) + + elif command in ['end', 'next']: + end(arguments) + + elif command in ['quit', 'restart']: + quit(arguments) + + elif command in ['mute', 'mutechat']: + mute() + + elif command in ['unmute', 'unmutechat']: + un_mute() + + elif command in ['remove', 'rm']: + remove(arguments) + + elif command in ['sm', 'slow', 'slowmo']: + slow_motion() + + elif command in ['nv', 'night']: + nv(arguments) + + elif command in ['dv', 'day']: + dv(arguments) + + elif command in ['pause', 'pausegame']: + pause() + + elif command in ['cameraMode', 'camera_mode', 'rotate_camera']: + rotate_camera() + + elif command == 'createrole': + create_role_call(arguments) + + elif command == 'addrole': + add_role_to_player(arguments) + + elif command == 'removerole': + remove_role_from_player(arguments) + + elif command in ['addcommand', 'addcmd']: + add_command_to_role(arguments) + + elif command in ['removecommand', 'removecmd']: + remove_command_to_role(arguments) + + elif command == 'changetag': + change_role_tag_call(arguments) + + elif command in ['add', 'whitelist']: + whitelst_it(accountid, arguments) + + elif command == 'spectators': + spectators(arguments) + + elif command == 'lobbytime': + change_lobby_check_time(arguments) + + + + + + + + +def kick(arguments): + return + + + +def end(arguments): + + if arguments == [] or arguments == ['']: + + activity = _ba.get_foreground_host_activity() + activity.end_game() + + + +def quit(arguments): + + if arguments == [] or arguments == ['']: + ba.quit() + + + +def mute(): + return + + + +def un_mute(): + return + + + +def remove(arguments): + + if arguments == [] or arguments == ['']: + return + + elif arguments[0] == 'all': + session = _ba.get_foreground_host_session() + for i in session.sessionplayers: + i.remove_from_game() + + else: + try: + session = _ba.get_foreground_host_session() + session.sessionplayers[int(arguments[0])].remove_from_game() + except: + return + + + +def slow_motion(): + + activity = _ba.get_foreground_host_activity() + + if activity.globalsnode.slow_motion != True: + activity.globalsnode.slow_motion = True + + else: + activity.globalsnode.slow_motion = False + + + +def nv(arguments): + + activity = _ba.get_foreground_host_activity() + + if arguments == [] or arguments == ['']: + + if activity.globalsnode.tint != (0.5, 0.7, 1.0): + activity.globalsnode.tint = (0.5, 0.7, 1.0) + else: + #will fix this soon + pass + + elif arguments[0] == 'off': + if activity.globalsnode.tint != (0.5, 0.7, 1.0): + return + else: + pass + + + +def dv(arguments): + + activity = _ba.get_foreground_host_activity() + + if arguments == [] or arguments == ['']: + + if activity.globalsnode.tint != (1,1,1): + activity.globalsnode.tint = (1,1,1) + else: + #will fix this soon + pass + + elif arguments[0] == 'off': + if activity.globalsnode.tint != (1,1,1): + return + else: + pass + + + +def pause(): + + activity = _ba.get_foreground_host_activity() + + if activity.globalsnode.paused != True: + activity.globalsnode.paused = True + + else: + activity.globalsnode.paused = False + + +def rotate_camera(): + + activity = _ba.get_foreground_host_activity() + + if activity.globalsnode.camera_mode != 'rotate': + activity.globalsnode.camera_mode = 'rotate' + + else: + activity.globalsnode.camera_mode == 'normal' + + + +def create_role(arguments): + try: + pdata.create_role(arguments[0]) + except: + return + + +def add_role_to_player(arguments): + try: + + session = _ba.get_foreground_host_session() + + id = session.sessionplayers[int(arguments[1])].get_account_id() + + pdata.add_player_role(arguments[0], id) + except: + return + + + +def remove_role_from_player(arguments): + try: + session = _ba.get_foreground_host_session() + + id = session.sessionplayers[int(arguments[1])].get_account_id() + + pdata.remove_player_role(arguments[0], id) + except: + return + + +def change_role_tag(arguments): + try: + pdata.change_role_tag(arguments[0], arguments[1]) + except: + return + + + +all_commands = ["changetag","createrole", "addrole", "removerole", "addcommand", "addcmd","removecommand","removecmd","kick","remove","rm","end","next","quit","restart","mute","mutechat","unmute","unmutechat","sm","slow","slowmo","nv","night","dv","day","pause","pausegame","cameraMode","camera_mode","rotate_camera","kill","die","heal","heath","curse","cur","sleep","sp","superpunch","gloves","punch","shield","protect","freeze","ice","unfreeze","thaw","gm","godmode","fly","inv","invisible","hl","headless","creepy","creep","celebrate","celeb","spaz"] + + + +def add_command_to_role(arguments): + try: + if arguments[1] in all_commands: + pdata.add_command_role(arguments[0], arguments[1]) + except: + return + + + +def remove_command_to_role(arguments): + try: + if arguments[1] in all_commands: + pdata.remove_command_role(arguments[0], arguments[1]) + except: + return + + + +def whitelst_it(accountid : str, arguments): + settings = setting.get_settings_data() + + if arguments[0] == 'on': + settings["white_list"]["whitelist_on"] = True + setting.commit(settings) + cmsg("whitelist on") + return + + elif arguments[0] == 'off': + settings["white_list"]["whitelist_on"] = False + setting.commit(settings) + cmsg("whitelist off") + return + + else: + rost = _ba.get_game_roster() + + for i in rost: + if i['client_id'] == int(arguments[0]): + add_to_white_list(i['account_id'], i['display_string']) + cmsg(str(i['display_string'])+" whitelisted") + add_commit_to_logs(accountid+" added "+i['account_id']) + + + + +def spectators(arguments): + + if arguments[0] in ['on', 'off']: + settings = setting.get_settings_data() + + if arguments[0] == 'on': + settings["white_list"]["spectators"] = True + setting.commit(settings) + cmsg("spectators on") + + elif arguments[0] == 'off': + settings["white_list"]["spectators"] = False + setting.commit(settings) + cmsg("spectators off") + + + + +def change_lobby_check_time(arguments): + try: + argument = int(arguments[0]) + except: + cmsg("must type numbe to change lobby check time") + settings = setting.get_settings_data() + settings["white_list"]["lobbychecktime"] = argument + setting.commit(settings) + cmsg(f"lobby check time is {arg} now") diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Objects/NormalCommands.py b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/NormalCommands.py new file mode 100644 index 0000000..ba5ab83 --- /dev/null +++ b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/NormalCommands.py @@ -0,0 +1,81 @@ +from .Handlers import send +import ba, _ba + + +Commands = ['me', 'list', 'uniqeid'] +CommandAliases = ['stats', 'score', 'rank', 'myself', 'l', 'id', 'pb-id', 'pb', 'accountid'] + + + +def ExcelCommand(command, arguments, clientid, accountid): + """ + Checks The Command And Run Function + + Parameters: + command : str + arguments : str + clientid : int + accountid : int + + Returns: + None + """ + if command in ['me', 'stats', 'score', 'rank', 'myself']: + stats() + + elif command in ['list', 'l']: + list(clientid) + + elif command in ['uniqeid', 'id', 'pb-id', 'pb' , 'accountid']: + accountid_request(arguments, clientid, accountid) + + + + + +def stats(): + """ Stats """ + return + + + + +def list(clientid): + """Returns The List Of Players Clientid and index""" + + p = u'{0:^16}{1:^15}{2:^10}' + seprator = '\n______________________________\n' + + + list = p.format('Name', 'Client ID' , 'Player ID')+seprator + session = _ba.get_foreground_host_session() + + + for i in session.sessionplayers: + list += p.format(i.getname(icon = False), + i.inputdevice.client_id, i.id) + + send(list, clientid) + + + + +def accountid_request(arguments, clientid, accountid): + """Returns The Account Id Of Players""" + + if arguments == [] or arguments == ['']: + send(f"Your account id is {accountid} ", clientid) + + else: + try: + session = _ba.get_foreground_host_session() + player = session.sessionplayers[int(arguments[0])] + + name = player.getname(full=True, icon=True) + accountid = player.get_account_id() + + send(f" {name}'s account id is '{accountid}' ", clientid) + except: + return + + \ No newline at end of file diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/NormalCommands.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/NormalCommands.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e194f925add03559ef70b933ef7b4b0e183f3305 GIT binary patch literal 1818 zcmaJ>OK%)S5bnpkV{e?b6UYN;f})reBAXx)Bntt?AtF+=j^ZH5DzF((x7TCO&aAt8 zAX)F8jJV~*5k+#2{H4Bf%3tsWs%CeC(MyN>WhAVLv|b7Da(iiSAf54)~d z5*L0WT~9QH534Vhg$rvSR>VbEL&3L5>(W~a$F!(*v@FD1&`HO#fwWGZX=DAW$PQ#C ztgB68G%RVU;G;^4ed`TgYMJj?np>8M6L+}%33#&MwhfasEvv$0B6Tq2Y@m*F1EyXB zF^1>uduqv$BSJ}W6ZQ=D9~wGlNATog1uPsacMThZZOo52B*KAeI&^{as_jE>)# z(mVr0Ccu&vrgoY?>76MGA4^lIq7K?A3mJtiSK$Mdk0L;Ua4JN+#gvQsIn-SR&=a+Q zVi83H#d#2&7N7o&&i2B)MD~A((@5$8YcBfQ>B%hma4PV-YZ(pQx zZoyY+d;(bvXutv*!Bm%EpQ7>fK$6v{V|D}u{Mg8kw~$kDr@rf1aS@!dVolwChK$K%34OYh+K4$Nc2{-hZy&)54?CkM-#-4M&a}nQ14@*W@%Y; zTA}rJ5FTTBZ#%J9`_lBlAo~gmPxN+6ZF*X24JBY3Gi5lvt@XjVfJ5xLtQb~C$X~Kl z+HgvtUM8lz#GJQ0wG4};!)~DEP$fX8n#R_j2dCL7=xWrExgW#S$U(v#>hLBFctn?| zN1T5Go^t#!8;B#$8pq#38IwNQXS#{ap-=ajx@n*-jM<-n>TAFaF)5yn9?nqZW4_0Y z1K!SMazrmradx3MLU(+{0Bh&i1N0e0;bRw~_;sw{wL6XV11TC5+7Bg9i3qpIkF{(? zqwA*;U!RtL{6L(--ICGr)3Q?WtW0BQ7@3YwXsqywPg=}6J5`>m_hC0`uIe+6t0T4= zcUr!}T&pW6uA;aG!g6Rl>I2jo2=43%fCoTnq8B1lm%F--UfvX5>mameFE!#If$CaBdqNt-A}J}Sovic}G77i|d?Yl<@_S6c2; zvqL#jyx{Ugp|E;B!vtslPW%E-6J$)n1xVm^W|V zym>S8-kbN{=ohoIfq~x_wRdj*`60vjCw)x+X!I4d>`ws9U}kLe&6e4>T2|j~*`~oP zX2(v;(Y@PpnZsP>u@duHnFVZyRoHAdXnCy4POv$4lGWHLR%Z{e`EI#YVh^&@zcpGu zJHs6GWpsGR^?thVKMJ#T{T;vVLOghtrJH)kr4}J8uqs{9^bl$ImU`|HX@8W zJ>HI$+Zl?CD>sWdAE+Q34!9T$lTJ^0-8kLinewt;#ABwsTY~c)uKZy#!b;tg^;5=` z%_4|^JlRt=1S%^VC^r{V8i-W#j#PHk;mVP{_HAW#`yGe&GWrp2qb;Llp9Ac|8XKOd zOJmpEwcfK#Bl#3G3$!PtSa(tHX`5dnj{$P%uCj11zN;Ak;)Jy3#NW7ZSE*ENN$)#(tBu|xxNjUa8 z_*zKL)^t>9q!=|(i1NpZ0CB821vnK(Js&7`T|J=j{@OCVk zG5V3;lNGezZvojgy2gf;kuRBD6JGoj-GKMZI~Kg&lGdJm*U-1&4RBaz$onmEMLMGq z6Zhoe&UtvW9>qKx^X$pIUm8i(H0bZwh1{5C1G$Z;N%|8{0PIicPb|=k>T1q6twcet zBbo#n1<;zJ3-T7)l&0#?R84DY{(Gb;p>O#Q=yZj0#3Fqjb!=k3iFUkWlRFhx=OcVb zW6!*6+_6TEa<;faOOzbQ(7SMhUHgo&?yS3e9=Xe1N-Q_0oP`n372`McJI=0ikZ<$N z` zZAgrM27>@cF1N&Ai?wqzUK*QGukuH%0;6jA)O(xnLvl`Wbq`9iwR3AMMH?Hk4;!1L zeP9ZIv}^4G#jf+O$*#wvQ|=Oa_i>U^9%1fLzSLLd%V+fOtCyn>pjjPVn!flE4PPRl zeDAcMyUUHXP^qa>5pPQ>G6i33i;}!TEd%2hxkdv zFM_?e3|8?RK+Ef)q~P1FAWF8Pq!X>hTu1q4X_Eg1Wqt8HfbvEK`U^xkstCY8ON_74 zvX=nzQk_D5fDn)1Z)-T64)p6MKq(I{;FT#pL9&{sl%GGaM5bRA`W2C%Yysmsp(%g- z@KV(g_G%opGoI;p(@}3noo^1k8MTAzRj1NhgBGD2r~J!!Lk?s95**dY&H>cTIs3FZ S@A-><-9PEq0G|fbfByyo>z@Mv literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/fun.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/fun.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..553929f07937b8dd8133a5e867f4c563110b4b55 GIT binary patch literal 3115 zcmbVO&65*F6z}f&$joe#4PjYC5yDDYOsVW1EDsb#fr}IeSt%A3Q)--~hkWd0CiHZW ztl@;EC#yVo;0PD1_!GQ%^}=7!M?G=z;L(%s^-Qwa>@G{0RKI@x>+Uz*@BO;_eOfAc z1b#o3zWe5nMMD0<#_Z3A#$_n!0}z~W8j(J&(>|*+N;u<2WYi5^n{|_$+~PJbaEH5X zyKZrhFYqESwavQC%Y5;BQZMidH=%a;5nhGb^h%q=~i;1cvWBQ0v65j!Y zZQ0_iq&ad85Cf18B+HTa0Wkr&E{z;n0mK5NF3lXN0AhpXp0qNA7hwC&_Aj2h-U(Y< zY3+6=tgR>gKKP+_1++RK(vSb zFqUa;3bmpx09_79H&a!Z2ZhD|{vvpb|(F(2J-SGTlMF zl<6+&WfaJ_4d2$2m5HI!zX}U&3%}ze$woPEt#%@6VC%biXS}y0_458v-C9( zr0h_S?JZ&%`dUcN$q%`LzR+Cx9h5O?lP#83A+ofMtXbw{6B)!#AVZk=Qj#b1DR~IY z>9MQit8)+8nDvaF*|UHzhS=a{)^1q$*0{B!$6s%6Oy){Ev-pTU1a|e<*f>FEY&-@V zGibw#D`06C@;Qmil;HmhIOvC-)S1^#E1{58Pe?U1j7(YxLng`?7BpBdU z0|G)IAZwhAjfSlyAfOktbhLD}^t4>ivZ!SVLSQt?_txT$T$~2Woc-R|%z`%at-tl$ z|M@Kp<1=eR9EY9j7z*Ta-ENJViD>&3aRNJDM}htqCsDi!qP_q@OOr+)q82F+FVRe| zFAfKTP&5M3&w&zhV5eCegb`f6d8dbW^hB3QIKgu(QP`fCjgoJ{>=aN|Do0T$PQhY) zOOr*M23^svGMfn>i5j%#i2@H8xdA1;1Y(vbaB!);=kFOs>aa2pX>XrETYI=PJ=niO z@1b1!Y&N!VuvZS`5*&176ma9??TfPT%Ix@Avm>9q{{a?fV5z=yV5r3k^ozGpptGON zI6ET+@?l?Z<1IgelAZ-I<88bq!K0qR=#GC8IoO?lf`LQbDd*gI`CxaBjVHD&^c+k` zexgs|g`Ohz1OaFFw(HV;WoJLnoISPl65IQS!Y|ApMP&`(>F)ScEe!Ag3o2#i&gF7JvT zwC5v;8PW7WG@)^51lJ^y^a*=Pbk1~s`xInC`W=Kq_Hz;WpMD7X-?+VbjI=^Xr>d~HlQSj#6f75vL`Yc~8 zW+y()zK{CM(}u~=b0{e~GW)b&R!)|uh*aRGb~dQ#pqxqSqRP2;CF%xgnCfIizn1#; s+Apn|VS!!=zOTx;2>1Lj3NPX2Qp78?VpM3+a#oz0^R9E+IpZAt4+)%wXaE2J literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/handlers.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/handlers.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4aa29685010b3262a97d235cfc10bddacdb719da GIT binary patch literal 1305 zcmZ`&&2AGh5VpOWWRsGrickRo!f+@GpoSv{gb+a$J&;zUTq>buvvxKccGs=#t!PP4 z;o5g-k9`xK!B1%g9-vm9*<}2@ys`$-*>wm1mp4Amyh2ZgudI&)j?qM5~g|v zf}wrHFe3@x$Hhwa33HhH7418$!J4qTti?Q78?4Pbur?VPqyEat6FL?tr@7+OJfX87 zV+ogvYC$DudB|xZG!;`C3dZRVcngg}`*uC7-herTsWw4qG{>4O&=N0j1lgPsY;8_y zW2CS;XAVZpg$x=e8{?UfI?OfQ6LicoMt5a=6lhN0s>s@gNz60d$EFn)n%e6V)7CP` zlyyj(!l>^W$DagdC7cC1Sby5`>uZ$J5OC&AQKeq=;3kkOd zJk1k$o(-N3UWs%vKFk9)7(&=L1v-T~6ln@OHQ1TVd8pN(^hvdOaBN%!RWvOiE(qjY z$MPDiA-20}Ku?kN7PxJJqR~0NK&OD6b{2TOal6q1A!cm^l%T$8=(KeH;bE{1#T3S3OBMKb6_2y zR+U$@EDNvlqtI^}Bnho*p>am*6i4zVgoozY%;h~R)~&EVq>0poid8 zmhQG|9W3vI)^C}X?=unleu*oY1jQ#PI$D%ioVyaac%xv3_dFFWPxuS_VU)GIc+K@X IUf1jV0)Rz>% literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/management.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/management.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..61b3cd2f9378bfea5a8dfae99343b441ce91405e GIT binary patch literal 6692 zcmc&&&2L-B5r1DKA1RWOC0Vlk$@nX#lURuzPjuSYxMGm=< z+wlTV!(No>WP@xc7vyw56ZwG;noN`r^13Yq1>KGXW0a*F`IM&ujZu+GRHkv7pglB6 zQ#4I`X@+KLAI;HzI?$R4igb_;(P2756?%e>(lI(tC+H+SNvB$+phQ(V{fQNn=_$&h z9jB+sM>|2!P#*0bIzt7tlQd6f(N58`ltVjB=jdB#_tJAzLOVm>rZU=DdY;D7?xPpz zNwjnHBE5umKb@zS(H@`+^c}PZ=@q(&_7FH7<(#EE2>A{{!o!g92&6Qev#iG;?QzI^ zf?m}!T%y+>Eqa^Yp=(s5cj-EPk8aRSx<&8N_vwAQO&?G|KcFAd zhph|2Vfqo(!NU>yh#F`s;S;p*xlK)?PrTqLg|r{oW3)&uw8trP)2c3gjoq}Wj><1J zVv52}(o&@%SZ_qp*BG~|w#uwfLpDIUr$JPg-TJ+ywhZf0JCSOVQO$0r)0R9Ebz4bI zdCTqQvdW6E(_Iaf8^)x(yS=tlUZ*ERmF>l*O``6-PFFecs&Z%*>oj^v7!;a~PAD3k zE`_Sl6k$V#q8o)Ohov-7FdsHBki0xZP+5jMq)KLdfX=5~jO3dTuocQiOSvFcg=8gc z%7*NUMCGII!or$tcS7Zej`HI0W2tf?Ok_hy5pL-|qlJ*c+1I`8Rf^>$s^T2t))uj8t(lbv1lL6)<>7|$%V6wnSnHkP=fXe~* ziOe!p{5SM{^nWgMh9>?Bm^?7Ql75Q$5|{!ozm<7C=XdCjq5p*}=>D(KFG3C_$I=;} z15*O#&$5_eegaGxm~Uh$#e59R_;U7BTTIGwiX-4AH14DvPjT0Q+q3L|?!25xaTkD_ z)O6S7o^=;k#H;uuuv40n}W&IbX=!zT>9hvAb9yKqPCn%Cf(;z`Dz;%btsDXykb;Zu7Vo-yz& z!~3|JGYFh8mZ)-dfUAS3YSn2ik`YKt!Xl_#FRruS31(c4v7^D0SmB0S&8Fs$`3NRV zu&8rjfRja$iB7tU*t8Ng)vk4y-t9GL{xX8o8#QHJkDFnX60waW*HKv|-!3|vr2v=<KB_Nuv4IUZ_G(+MDIdpIorC#? zqq$T5U}!s^?2Zd4NfwpmOhQQ`yt3RwUfFFQ<8{B`)$k}d@4~6;EHs4niI>sez9tVW zqa^wWaVG61IwQZwv@OnKe9L#(xVC6p2M?eI+8+5BI{)tXp2D1ao8J@MA5n`71Zzxh z;VOW~)H1_ch7EP*_=t1FtD9ST$GKvCSiJA7I}csn+`DJvbNww_e#eoXnfbt;vkcAq zR$R70Yg->^W4NvBs#g==!RmrFiS!_fsu}SL!v}VPI1D)Z98SmUb^v-kZw&vCWw>9vHUfsQ0iw}ar#ddqx?%D_q zOo3&nX3Ta~-4?TASzldjE$ZK&E~c2jUQGA0ySTWqMOyI=$dxCtFX9rw?LzWN_!&yV z2OA4Hsl{|q7qKh4e`Id?;Rn)k8m#dv*;Un@lD7(pmq2cd8uqg31zOvP#jE=K9 z6DDyDquaI2=l1VWMoeiWdX4aN2BiPe!i%ZhJIj14Weag@xP$1FJIKae(P>1FacHub zo!H}y;>*X_W0nR#hKF&BkDmS{GsvbrXFWoqzDt~OYT7K3CuJ}RR|I{<(V2wUDa7Ao zDiotA+p#AR3It4w`oaci+0~2n7Otmy-Ne58sC$vQd>?6k*uMH`>im`Mo&pdUC08FK}9&AlK>=Uz!7VF*|h{C{G ziUJ?Z;MpQcf-F2JTv-b;y2T|wjKT$h1Q{3xaYbKg^mo@dAHV(M#yzBkE9+5-R55i8 zkP3BFA1xC!%EJOcwrID3TIAtXcB`-w9Umj^WW5 zBA-XaIg8%~q>Gmf)3d2GYw_1)9!5}}Wh&4b+}#y@wu~F6Q%*O&r3zaf#EQdLoq9L! zZ}uvilG@ zO-{woEz#yazf|-~n~#N?n_1q9TwFwg!Q6{3S1VlIMTMxW@3oQ<+f>J&KF6w?24F#5 z1LYM`)s5(Boc7$7!4d>BmHMHhD z^io%YCS~R`=<=8DP$M~`k^bpUFOe0wwh~t2US}b!$Zo|PE*1Tzfezj@D*UFQb*0K0 zt+9;kPj4ryw3ABTtHj-V)vU2T*3mY-;Q}UF>8&a72M;7-Ck>v%>?^E6&UHD0PT&|T z!}!?n1dmovDBnDdh(xfd3D%<;yRKh^k}Gf(9SDPQ+3iNjnW3j?ztAor*fNa=;o<;U zd7G6#cx6%L6uK0(8@S`?hmW1!wDk2?zh~)N(@yVLIH}E^Yd#YM$6Aqa z#a?6{(OAeWhNVr6Pc`LVz#-a;!dIXlD`BUefLbP;ihI^R?D^OIjGy;&s5AbQU-YN( TA48k-OK1@fF`6$Q@F)KXwu!S~ literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/normal_commands.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/Objects/__pycache__/normal_commands.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d79fe5673b9990270b298e20c238834b1a7d0f9 GIT binary patch literal 1672 zcmaJ>OK%)S5bnp!?CjId+OctXEs=$_5wH#tL5dKHFhU%VK}ry01T3>t>pBY zjw&ioaOx2fV8BzB@jzrUa5w`2GIcXA@K9#pq?MpzISUxL;6Y_510Q^-LJjKBfF`tH z36_V|pbB@O{gMSWSbVs$mornaa@CW7{#3x(nB z#o0Iw%NTmwy|0RF@bqXLLT?A-|81B<8e4Iv$THM)@B6_)9F@A47b*+WespdBWOQu& z_|G`%M;Xv>G!Z6z?&GZCRBxjmk@4mrENx^d#5P8J*S_yIxrghjjfC82frN3ZN95x5 zATJa+>vA6j;4=>59036b+zScbl>f!RJCo~dCQ3eMU$b97njuI~IcHOOASioJc_~qL z4&3=d^5*d`#q6H4A&15(RRuxY+zsCAzi~|No@_th7%-M5`$`?cR-PAQ)w%8podi0G?p*PX z4fiwbQO@2tP1XDO=1F@?-`cn}5nCPA!9{f+N!O!t)Wb!T`fq<(A zwAWQ@$O0#f&|>3VRY&~=c zZ4)6F?1jePx0SB+;(1~aV)kJ3(56AGAErr&-PV?{Ejo*%b$jC})K(OsZ~QN^0>)|l XC0(JZbuIG-Uluj7CjBMf^=tnD_;rXL literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/stats/__init__.py b/dist/ba_root/mods/chatHandle/ChatCommands/__init__.py similarity index 98% rename from dist/ba_root/mods/stats/__init__.py rename to dist/ba_root/mods/chatHandle/ChatCommands/__init__.py index 1f50d61..cdc7758 100644 --- a/dist/ba_root/mods/stats/__init__.py +++ b/dist/ba_root/mods/chatHandle/ChatCommands/__init__.py @@ -4,4 +4,4 @@ Things in here should be hardened, highly type-safe, and well-covered by unit tests since they are widely used in live client and server code. -""" +""" \ No newline at end of file diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Main.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/Main.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1447b70b99d068aafa48fca1cc86efe9ce474ce9 GIT binary patch literal 1442 zcmZWpTWb_C6izbt+37{8;(`zRAi|=!K8uQ46<@lFtssN2rjxLp?p$h;RjX4F)c?`G z>8n4)A26?ipg*Ax;z?%4Ud)n{?|kP>l5@#ETUZDYj6c2iFTc46{m{zsK|r|!Q)VC- zVmL!Nj&V+6g0)UEE4O3YU<f6WqhA<~9FqE6lBK**DVwNrLX)JNYo$JuY;ii9>~N8%Ql@1ghqzuGmm;Ux zYMJM>V44ZnXhEkuhaEt(9?lC`+*SBi$zN~)8YlXkZfLAyUWF+chzcpRjc2Z0F^J4u zae?7=&0B`QYLMoyGh%q#@b`hYw>AHWS%!BE{{nc&@GqIYj+g_ny6@J)0Pd8`|MipnH>!W*R zzPbKtPT6R6i>gPE{fryfoikdaX>o05w~pHFCJLfkf(_*|2o$bhn;cEC2wb8|(G7hi zJxytT1E|nGIzaoF;RDP_Un2{U-A8-mgw1BoXRz;Cid6U`-m{fek&l?UGa{ZVd*7)@ zWmUMc51^5Y*R9n9>j&jlHuw_pU3sVc#;uJ~r ziIOJ5)8UX!T3eG%DptU?Nrc|&*roI<66R+9&AepujNjJVns=~_qvl7JvG4d7{{n;` BTqXbj literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/stats/__pycache__/__init__.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/__init__.cpython-38.opt-1.pyc similarity index 53% rename from dist/ba_root/mods/stats/__pycache__/__init__.cpython-38.opt-1.pyc rename to dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/__init__.cpython-38.opt-1.pyc index 7ed55b36ec09b4c7a2417b324268498dd0295a0b..29491a4db7f8bcfaf1eddee901da19e3205a1554 100644 GIT binary patch delta 80 zcmaFL^qq+}l$V!_0SNBRtV$5t$ScZd>Zo5_l3$dVo~oakTbh$tlA5A#pzoBQn-pAF dnwX;RoRL`Kk(if~lL}@!=jY}Ed6Qik6#(tD8YTb$ delta 62 zcmey)^puG=l$V!_0SJP#suF}Z@`^Gl>+2VnBE!y=Sdgvi2icJt~fi~D8eE>oWtt_&RV#)H7 zG`d;Hmp*<&ugS6f554!?Bhf>Fp7t-~)EU~wIxYp0GsBM}XTBMJ)$2tB+8@8ZeD+yD z$iJv;HxHCgpz8}51QE0($!ewvb-I^$FncAdc)}?WOz_gLf+TRV4{|GMRbdiV?IZ$Q zAX-0@q$5JnhPf*u(Sf-qx}pbjU(jt@ z)dkrb5|2=FPM&uKj4?a2?Yu1DytEKD%JRHkI63w#OUIcVOr%LCStV0dYa><6R0zi; z992t;--zmgetR_1rdDwGk*pSFW~3NB8a=M7@%i&bCPv2>nRx=YFXbo)@%ZzTb0_4L zcsReZZ>;ZN>U4btBu_gAX$W7J_Nf|xEl1uqje~&Qd4B}L+I#RCynnD{4QafF4T0Su znFbI6y4E2Ms3Vgu793*XpIKH2ZNp8ZzdVgSh3DBeMnTo3)G=3Ww6xYB>pQcBc$CtG zVm0&;vAC;3N-jeh;$= zH0JE@I|=QNgy-zs*-yaEFVX%4{RGW-_HUhp_Gbb-cbNd*N1IHmg!18Bg|SsoJR}Zm z=k=ma{JerpOu9IwSy^OS>fJ5Wa$MexNeGmu=4vkAhX3k47>IX3`BqoBa))QU3|_-U z(Yqsdw0iu7O{YGs@?%y zJh0w4b9YjQpxe&VGP{yWpTOI>D$RA4z79kSa4T2vy;!-78RdSsm5umpDOaZ9QB{jY UDL=+IyOi8>PfnK}un^neKh?)%kpKVy literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/cheats.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/cheats.cpython-38.opt-1.pyc similarity index 99% rename from dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/cheats.cpython-38.opt-1.pyc rename to dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/cheats.cpython-38.opt-1.pyc index 42371ae3464577b3ba745b98f1ef4d970a2a464a..e64f34da3579078d4c2f154df66723303c87c84c 100644 GIT binary patch delta 20 ZcmeB^?~~^a<>lpK0D>!NRU5gR`2jDI1mOSx delta 20 ZcmeB^?~~^a<>lpK0D?TZf{onG`~WKE1StRj diff --git a/dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/fun.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/fun.cpython-38.opt-1.pyc similarity index 97% rename from dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/fun.cpython-38.opt-1.pyc rename to dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/fun.cpython-38.opt-1.pyc index e53cfa46745b208baf14a325c471a36bbbd1a04c..e29ba7b9319ae065f581d93ffd727fcaf0ff0d0b 100644 GIT binary patch delta 20 acmcaCc3F%&l$V!_0SK<7Rc++<;06FV5(OFn delta 20 acmcaCc3F%&l$V!_0SKB*3pR3la037|d<2aE diff --git a/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/handlers.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/handlers.cpython-38.opt-1.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d3ee7d3a6703323fbd731fe3dd1199312300daba GIT binary patch literal 904 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 literal 0 HcmV?d00001 diff --git a/dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/normal_commands.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/normal_commands.cpython-38.opt-1.pyc similarity index 96% rename from dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/normal_commands.cpython-38.opt-1.pyc rename to dist/ba_root/mods/chatHandle/ChatCommands/__pycache__/normal_commands.cpython-38.opt-1.pyc index 5390a8ad533105ae77432a039f8a7d07eeaa1845..0161df4932879ba288ac5d79b958c0bafabcc7fd 100644 GIT binary patch delta 20 acmeyv^M{8!l$V!_0SK<7Rc+)hWCH*_4F!Av delta 20 acmeyv^M{8!l$V!_0SHVa3N~^VvH<`#rv!um diff --git a/dist/ba_root/mods/chatHandle/__pycache__/__init__.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/__pycache__/__init__.cpython-38.opt-1.pyc index afc2db22ff97c4fe9912bd8b7ca541e6e9f06c73..0980eba30bb95cb49cff939730fa664435526031 100644 GIT binary patch delta 26 gcmaFG^oof)l$V!_0SK<7Rc+)pV`Oxm?8K-609z*pMgRZ+ delta 26 gcmaFG^oof)l$V!_0SIP1$l1tk#>kjF*@;mD0A1MzmH+?% diff --git a/dist/ba_root/mods/chatHandle/__pycache__/__init__.cpython-38.pyc b/dist/ba_root/mods/chatHandle/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index c36c83c693b28ff9f05ef3589ca64144152ac462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmYjMF-}7<3{A^G^`%Z+z-y(p2S5k`?ZALo%3n~VG)?>)qcr(S@>_k*z(qI>dsmLY z#)R7mOSWYDz31n8Jgx-C>Z4v?4TShUHUEQW;*K+qxLENj>|iA(!}qU6-0fn34V4VB zfu;+lPz>5r=^;Cv(831G0WpB~9i7cHNn(Oy3AUz7_O my@(0rF4`=O)8&zEdX!2LTT^P@_Q%l;Z#$2-7cBh4DgFQ)7k63! diff --git a/dist/ba_root/mods/chatHandle/__pycache__/handlechat.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/__pycache__/handlechat.cpython-38.opt-1.pyc index 1359ebd1f0d55c80ddfc2feafece1299e3f7aec0..260e53b29325904cb39d19b64b75be561dd0e6a9 100644 GIT binary patch delta 274 zcmZo?-N(!q%FD~e00hqGs}kxNC-TWKnoQI-kzo#I&}4fFlF($l#afV(Sds{2u=pls z=J`#oW(<^%Vt3BZ%}vZp(PX;CoLiiJi!(VVGc~UyJ~L${LlMVhSw`i0=ZwS>51^8q zRDB2q63{ECyd|8LnNyNl6rT*_$LFRN7bm8tf?QF|2C|Wni;;)12*lT9kKzu=uEB!Uy9gu^B`KczG$ T)efYg7^H%Sk%viug@Y9UppQrV literal 647 zcmYjO!H&}~5FOiTlXkPqN-H52aYwl{oH(rzVte31FAEiz(_1G^!Ayc<>LeWf^!V=&Ff%MZye_Tl4d2L8>OpZQMfs|H z*Xwn4J8)432JiWeP_o>{6bg&oouBQ7wdz`2Aq_mD$RxurCuhW*V66?({;o}R9of?nMslDPR*@iGJ&>|ser_E%&VK9M)&#*kLoEYIZ8wooWN-{&zQ6d= zDdgLP9UCpJMOtTgVW${?%yBn!j;P4$lbzys(%2=wlnKk#7yqd)0=)jPtd3*pnw!ue gvWg8J4GtojI6b@4y%>~y6WT>Va+1??nx)y~4;d4U^#A|> diff --git a/dist/ba_root/mods/chatHandle/__pycache__/handlechat.cpython-38.pyc b/dist/ba_root/mods/chatHandle/__pycache__/handlechat.cpython-38.pyc deleted file mode 100644 index e99c01511b6f10c9bb8b4f8426713ce38b5769d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmWIL<>g`k0%pdP1U(@A7{oyaOhAqU5EqL9i4=wu#vFzyhE&E>hAgILMn)h%m_d{2 zB~XsRPm?){yC5gAGPS7KC9x#&7HdIKW?soH*5c&+qSTcPMJzx?VB(jXvsFxJF;HDh zMnQ~YK>tX)n( z4KyX_>?kPjatFz(hz8b}_lNz+aYN0 zFyvk+VPp}|WN=_yTjK(yGEFtlCKgwm`IA zlcXa;(T2GzBGG}lC%U2sb6?Oi68GQ0Y2-Af)}M>aWN#>_pt0wRS*YZ z$j@bFv>nW9Rb^$G*A=V^o#U2GV<2FE0$o3V!H_F@O_sEw$KDjJ=F!- z8xoIDaz`$$%cGBZ+)9*!Q@)%fhiA`_$hJTp(>_N8>M6b>G}#to^}k<5WX($Q?&=S9C_O`4gz-P{SgRj@4;*E{-Y&pNaHnZ2<#5YG=K=u zwGMGW9hr2o;1CP{)UrZo8*U=~?Mdt@JkPc<3aT!pj=5^1rL_iG-c2K>69(?B0M$%C8U#cTqNIs3;> zLi3Ay7MYfMcMG)~mv>_l0_CZ>oXdCNzZxke-T~!XUA+gkTRh`s@ER^6|A5et zE8z5+Vm@QOgT_GPLjoDUS>uBI2J1^E{3SP#6R)TUpbiql8V;JL{xbZ^$Bcly;MY*& zvzKdJ3vj<~;es99*K1q|xIeaVtsUHlYg`*}f0}S-H8Sn1NJQ6^64SZps=phkNykR# z^oAZP%!C^{QVix_`t$MqFHRnP^8Mt8>En}cR^(u097F0ZV%oF%5DG|Y9rvuS=Vf86 zU)DcM<$~&R&23CV`BLU7aIvBdqpOBEV9nVM)@ud7fr7RzEsZH=lVmVfBG0r*aTT`4 zzGao3xCcQYot9;4lJG1q{zp4QJV5jZFc5l=?o-aXG@|?7?Qx$)ETEh!1jYmFjWc&A z^*-pfGcU7Csq`_tovYGZXX)EOv;enq1(R##GG>(f;Z`={v!z^_hDTK`7Nz_Qn3BgBSo3Y$tOq_HP$Cy6_@i&Rur@C)o` zmi;AfS@8>q1^2oS%45N;?0Z}}_ndpK-*h@H0`cYE?A;Ga$X7h-nU$ z83=7rbpvu7+8|B2%+qxJ3cOL~x^*Tx=M;YBF7Fk0Z`rvYKCUF6m*Oc7RkvaDX_tlg H3qtl2bK%os diff --git a/dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/management.cpython-38.opt-1.pyc b/dist/ba_root/mods/chatHandle/chatCMDS/__pycache__/management.cpython-38.opt-1.pyc deleted file mode 100644 index ae9f7a37e327de01b1f6a915202968425daee634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5226 zcmc&&&2JmW72gkjEGbf=K5R>}EZg!&LdUTj$4MN=wH(`VoYZDMY&Xd!F}>njQM7iK z^z2fJ4FwIN0=*gqdbf*Sbm=L_-Ws5PK?8Iy4NxFRZUqYT5cJUBn_0@FEccQIr7$~h zelwbV@6G#~y-_X~4gCIesdMXZx2cj5Ek7c<_yXNLt)7+DLNaJ-7>IjV7NS&4Tjxe%2A#iDo~Mzs6=HN zrV*;pD2>rLP0$Y7NxNvWIqr_o6iw4^nxQ>3OM7V_?WZ|9KnI&8w?c>L@UIMal%Ap- z`Z0Q%s_4h*2t9*-f{xO&=y%XDnn%Brj?;7KchL!Y9{nVpq!-Xn(TnsF`e`~vFQea0 zr|A{+GjxW2hJFv7r3Lh}bdFv{zn9L_1@!yqBE5!wKTU4ooTZzBeAAF{H)NcFl$w8* zbswbN4|(V45=%m_(`9;t-lU(?6}n0_dW+tscj#TZM%U>E{es@3_vr(2=|lR6KBk*g zr(5LFA~l+4+&Loh!NUPsq9*!-l)YwDm%rzetXguYvFs(GAIDzPm*u!2d_PKu-{V+~ zYF1XfM$%esC3owcz`N^k~ZQw@}bInXK2UrH!*~HRV z^e-S;AhpC^H%ue?7ULYoHKbuyIx$4wx^K)y>#DRKqK2#_C=a*CV= zQd!B}H^p!=oMMN8jVf#|8A-7*U}Fk9nN&1J1}uEMRyD;C)F_l0TcXVLEFM)$3^Tn~ z(<4mp({zRD{hBT@y@zRA%rSj{AEOLdVvOm7nnr9i#34;jFnyS58+NJA{3>izJjM9a zjGJPI?sn>K7k8GJL?@;+J7O#Tn+ni13ktV@2(T9Li zO^Vk+52%wh%uQ{|&c0?ejTI~AP-HeuC~}UE^P%xbjp|UXn&e<|9{(X{kYVaeZQ(aX zy9>8oZpTTzmuR)8vvxKttr({_)yK9v_9NJ=jux|a4QRnJ1!DsYvj#R9<`DQ8!_%5! zZGGZ0mcah3MNdV_4O20(_0`W{RU1ve+QO?X!Pt*I0C5zX{E|0jo()rtfApr$VyiFu zHs$farUOc16{cqhW!<)J+epK5i%X=5Zrk!aEoZhs+6Kkg8 z+5*=#@QP90zEjhM1Kd3WE3FNzfn%^N)oe|?ft{;%6HolUS!gb)-?s}X@{fhox!X%i z8+}rXcd%S$5;(ND0&=U6$ASG8E#~aWLXIghEj&x`Wx@0RKXCaH7W8!UW)^B54+c}lENnFG1R(+oU_D8fqqhj>QOmPJLuZCYr-2wSR zM+?Myl<}&fmAR-bLXRW6x=Fdt|Mu33jEBx zH<8#6GC+|O*UX1d%l1ie14&WY7zfI$%)#M1s>~za-)#0Gj==G|~4-Aa3&P7T#Y3_6^!r z-Wea@owb%lQzpRW@*@+_x@XO+2$mKfO4&VY7}-)(Zfg-QW7qG{dKSTBQN@FAt3lw} z)bicTvhM|M7SCi^W*c1*<9j$Kp_l-N!(I9-o3~4x@qO7And(^+QJh97qYno zgL`u8@>GG0BT;~xhQzP7|oVJkA`Pa=-~BqCzL=B&d&o+-}#qQDD>(l0F+ z@u@`dC29;Kwc=YsmhVCM2*VvdsJOtTyKXIa3Qx2u>ld~ntgYsPX; fI~ivbt%5(>$vVT%gfs38q0cyZ$8qv&8K>|cPTzAK diff --git a/dist/ba_root/mods/chatHandle/chatCMDS/chatcmd.py b/dist/ba_root/mods/chatHandle/chatCMDS/chatcmd.py deleted file mode 100644 index b7cfd50..0000000 --- a/dist/ba_root/mods/chatHandle/chatCMDS/chatcmd.py +++ /dev/null @@ -1,70 +0,0 @@ -# Released under the MIT License. See LICENSE for details. - -import ba, _ba -import setting -from playersData import pdata -from . import fun -from . import management, cheats, normal_commands as normal_cmds - - -def client_to_account(client_id): - rost = _ba.get_game_roster() - for i in rost: - if i['client_id'] == client_id: - return i['account_id'] - return None - - -def check_permission(account_id, command): - roles = pdata.get_roles() - for role in roles: - if account_id in roles[role]["ids"] and command in roles[role]["commands"]: - return True - return False - - -def cmd_type(cmnd): - - if cmnd in normal_cmds.cmnds or cmnd in normal_cmds.cmnd_aliases: - return "normal_cmd" - - if cmnd in management.cmnds or cmnd in management.cmnd_aliases: - return "management" - - if cmnd in fun.cmnds or cmnd in fun.cmnd_aliases: - return "fun" - - if cmnd in cheats.cmnds or cmnd in cheats.cmnd_aliases: - return "cheats" - - -def cmd(msg, client_id): - cmnd = msg.split(" ")[0].lower().split("/")[1] - arg = msg.split(" ")[1:] - acid = "pb-IF48VgWkBFQ" -#client_to_account(client_id) - - if cmd_type(cmnd) == "fun": - if check_permission(acid, cmnd): - fun.exec_cmd(cmnd, arg, client_id, acid) - - elif cmd_type(cmnd) == "management": - if check_permission(acid, cmnd): - management.exec_cmd(cmnd, arg, client_id, acid) - - elif cmd_type(cmnd) == "cheats": - if check_permission(acid, cmnd): - cheats.exec_cmd(cmnd, arg, client_id, acid) - - elif cmd_type(cmnd) == "normal_cmd": - normal_cmds.exec_cmd(cmnd, arg, client_id, acid) - - else: - _ba.chatmessage("no access") - - - if setting.brdcast_chatcmd: - return msg - return None - - diff --git a/dist/ba_root/mods/chatHandle/chatCMDS/cheats.py b/dist/ba_root/mods/chatHandle/chatCMDS/cheats.py deleted file mode 100644 index 5b04256..0000000 --- a/dist/ba_root/mods/chatHandle/chatCMDS/cheats.py +++ /dev/null @@ -1,236 +0,0 @@ -# Released under the MIT License. See LICENSE for details. - -from _ba import chatmessage as cmsg, screenmessage as smsg -from .handlers import activity_players, on_command_error, handlemsg, handlemsg_all -import ba, _ba, time - -cmnds = ['kill', 'heal', 'curse', 'sleep', 'superpunch', 'gloves', 'shield', 'freeze', 'unfreeze', 'godmode'] - -cmnd_aliases = ['die', 'heath', 'cur', 'sp', 'punch', 'protect', 'ice', 'thaw', 'gm'] - - - -def exec_cmd(cmnd, arg, client_id, pbid): - - if cmnd in ['kill', 'die']: - kill_call(arg) - - elif cmnd in ['heal', 'heath']: - heal_call(arg) - - elif cmnd in ['curse', 'cur']: - curse_call(arg) - - elif cmnd in ['sleep']: - sleep_call(arg) - - elif cmnd in ['sp', 'superpunch']: - super_punch_call(arg) - - elif cmnd in ['gloves', 'punch']: - gloves_call(arg) - - elif cmnd in ['shield', 'protect']: - shield_call(arg) - - elif cmnd in ['freeze', 'ice']: - freeze_call(arg) - - elif cmnd in ['unfreeze', 'thaw']: - un_freeze_call(arg) - - elif cmnd in ['gm', 'godmode']: - god_mode_call(arg) - - - - -def kill_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - handlemsg_all(ba.DieMessage()) - - else: - try: - req_player = int(arg[0]) - handlemsg(req_player, ba.DieMessage()) - except: - return - - - - - -def heal_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - handlemsg_all(ba.PowerupMessage(poweruptype='health')) - - else: - try: - req_player = int(arg[0]) - handlemsg(req_player, ba.PowerupMessage(poweruptype='health')) - except: - return - - -def curse_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - handlemsg_all(ba.PowerupMessage(poweruptype='curse')) - - else: - try: - req_player = int(arg[0]) - handlemsg(req_player, ba.PowerupMessage(poweruptype='curse')) - except: - return - - - -def sleep_call(arg): - if on_command_error(arg): - return - # ahh ! harsh here maybe fix in future - elif arg[0] == 'all': - for i in activity_players(): - i.actor.node.handlemessage('knockout', 8000) - else: - try: - req_player = int(arg[0]) - activity_players()[req_player].actor.node.handlemessage('knockout', 8000) - except: - return - - - -def super_punch_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - for i in activity_players(): - if i.actor._punch_power_scale != 15: - i.actor._punch_power_scale = 15 - i.actor._punch_cooldown = 0 - else: - i.actor._punch_power_scale = 1.2 - i.actor._punch_cooldown = 400 - - else: - try: - req_player = int(arg[0]) - - if activity_players()[req_player].actor._punch_power_scale != 15: - activity_players()[req_player].actor._punch_power_scale = 15 - activity_players()[req_player].actor._punch_cooldown = 0 - else: - activity_players()[req_player].actor._punch_power_scale = 1.2 - activity_players()[req_player].actor._punch_cooldown = 400 - except: - return - - - -def gloves_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - handlemsg_all(ba.PowerupMessage(poweruptype='punch')) - - else: - try: - req_player = int(arg[0]) - handlemsg(req_player, ba.PowerupMessage(poweruptype='punch')) - except: - return - - - -def shield_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - handlemsg_all(ba.PowerupMessage(poweruptype='shield')) - - else: - try: - req_player = int(arg[0]) - handlemsg(req_player, ba.PowerupMessage(poweruptype='shield')) - except: - return - - - -def freeze_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - handlemsg_all(ba.FreezeMessage()) - - else: - try: - req_player = int(arg[0]) - handlemsg(req_player, ba.FreezeMessage()) - except: - return - - - -def un_freeze_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - handlemsg_all(ba.ThawMessage()) - - else: - try: - req_player = int(arg[0]) - handlemsg(req_player, ba.ThawMessage()) - except: - return - - - -def god_mode_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - - for i in activity_players(): - if i.actor._punch_power_scale != 7: - i.actor._punch_power_scale = 7 - i.actor.node.hockey = True - i.actor.node.invincible = True - else: - i.actor._punch_power_scale = 1.2 - i.actor.node.hockey = False - i.actor.node.invincible = False - - else: - req_player = int(arg[0]) - player = activity_players()[req_player].actor - - if player._punch_power_scale != 7: - player._punch_power_scale = 7 - player.node.hockey = True - player.node.invincible = True - - else: - player._punch_power_scale = 1.2 - player.node.hockey = False - player.node.invincible = False - - - diff --git a/dist/ba_root/mods/chatHandle/chatCMDS/fun.py b/dist/ba_root/mods/chatHandle/chatCMDS/fun.py deleted file mode 100644 index ff1612f..0000000 --- a/dist/ba_root/mods/chatHandle/chatCMDS/fun.py +++ /dev/null @@ -1,177 +0,0 @@ -# Released under the MIT License. See LICENSE for details. - - -from _ba import chatmessage as cmsg, screenmessage as smsg -from .handlers import activity_players, on_command_error, handlemsg, handlemsg_all -import ba, _ba - - -cmnds = ['fly', 'invisible', 'headless', 'creepy', 'celebrate', 'spaz'] - -cmnd_aliases = ['inv', 'hl', 'creep', 'celeb'] - - -def exec_cmd(cmnd, arg, clid, pbid): - - if cmnd in ['fly']: - fly_call(arg) - - elif cmnd in ['inv', 'invisible']: - invi_call(arg) - - elif cmnd in ['hl', 'headless']: - headless_call(arg) - - elif cmnd in ['creepy', 'creep']: - creep_call(arg) - - elif cmnd in ['celebrate', 'celeb']: - celeb_call(arg) - - elif cmnd in ['spaz']: - spaz_call(arg) - - - -def fly_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - - for players in activity_players(): - if players.actor.node.fly != True: - players.actor.node.fly = True - else: - players.actor.node.fly = False - - else: - try: - player = int(arg[0]) - - if activity_players()[player].actor.node.fly != True: - activity_players()[player].actor.node.fly = True - else: - activity_players()[player].actor.node.fly = False - - except: - return - - - - -def invi_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - for i in activity_players(): - body = i.actor.node - if body.torso_model != None: - body.head_model = None - body.torso_model = None - body.upper_arm_model = None - body.forearm_model = None - body.pelvis_model = None - body.hand_model = None - body.toes_model = None - body.upper_leg_model = None - body.lower_leg_model = None - body.style = 'cyborg' - else: - - player = int(arg[0]) - body = activity_players()[player].actor.node - - if body.torso_model != None: - body.head_model = None - body.torso_model = None - body.upper_arm_model = None - body.forearm_model = None - body.pelvis_model = None - body.hand_model = None - body.toes_model = None - body.upper_leg_model = None - body.lower_leg_model = None - body.style = 'cyborg' - - - - -def headless_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - - for players in activity_players(): - node = players.actor.node - - if node.head_model != None: - node.head_model = None - node.style='cyborg' - - else: - try: - player = int(arg[0]) - node = activity_players()[player].actor.node - - if node.head_model != None: - node.head_model = None - node.style='cyborg' - except: - return - - - -def creep_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - - for players in activity_players(): - node = players.actor.node - - if node.head_model != None: - node.head_model = None - node.handlemessage(ba.PowerupMessage(poweruptype='punch')) - node.handlemessage(ba.PowerupMessage(poweruptype='shield')) - - else: - try: - player = int(arg[0]) - node = activity_players()[player].actor.node - - if node.head_model != None: - node.head_model = None - node.handlemessage(ba.PowerupMessage(poweruptype='punch')) - node.handlemessage(ba.PowerupMessage(poweruptype='shield')) - except: - return - - - -def celeb_call(arg): - if on_command_error(arg): - return - - elif arg[0] == 'all': - handlemsg_all(ba.CelebrateMessage()) - - else: - try: - player = int(arg[0]) - handlemsg(player, ba.CelebrateMessage()) - except: - return - - - - - -def spaz_call(arg): - if on_command_error(arg): - return - - pass diff --git a/dist/ba_root/mods/chatHandle/chatCMDS/handlers.py b/dist/ba_root/mods/chatHandle/chatCMDS/handlers.py deleted file mode 100644 index 5a414e1..0000000 --- a/dist/ba_root/mods/chatHandle/chatCMDS/handlers.py +++ /dev/null @@ -1,26 +0,0 @@ -""" helper functions to reduce lot code """ -import _ba, ba - - -def activity_players(): - return _ba.get_foreground_host_activity().players - -def sess_players(): - return _ba.get_foreground_host_session().sessionplayers - -def on_command_error(arg): - if arg == [] or arg == ['']: - return True - return False - - - -def handlemsg(client, msg): - activity_players()[client].actor.node.handlemessage(msg) - -def handlemsg_all(msg): - for i in activity_players(): - i.actor.node.handlemessage(msg) - - - diff --git a/dist/ba_root/mods/chatHandle/chatCMDS/management.py b/dist/ba_root/mods/chatHandle/chatCMDS/management.py deleted file mode 100644 index 620ca00..0000000 --- a/dist/ba_root/mods/chatHandle/chatCMDS/management.py +++ /dev/null @@ -1,260 +0,0 @@ -# Released under the MIT License. See LICENSE for details. - -from _ba import chatmessage as cmsg, screenmessage as smsg -from .handlers import activity_players, sess_players, on_command_error, handlemsg, handlemsg_all -from playersData import pdata -import ba, _ba, time - -cmnds = ['kick', 'remove', 'end', 'quit', 'mute', 'unmute', 'slowmo', 'nv', 'dv', 'pause', 'cameramode', 'createrole', 'addrole', 'removerole', 'addcommand', 'addcmd', 'removecommand', 'removecmd', 'changetag'] - -cmnd_aliases = ['rm', 'next', 'restart', 'mutechat', 'unmutechat', 'sm', 'slow', 'night', 'day', 'pausegame', 'camera_mode', 'rotate_camera'] - -def exec_cmd(cmnd, arg, client_id, pbid): - if cmnd in ['kick']: - kick(arg[0]) - - elif cmnd in ['end', 'next']: - end_call(arg) - - elif cmnd in ['quit', 'restart']: - quit_call(arg) - - elif cmnd in ['mute', 'mutechat']: - mute_call() - - elif cmnd in ['unmute', 'unmutechat']: - un_mute_call() - - elif cmnd in ['remove', 'rm']: - remove_call(arg) - - elif cmnd in ['sm', 'slow', 'slowmo']: - slow_mo_call() - - elif cmnd in ['nv', 'night']: - nv_call(arg) - - elif cmnd in ['dv', 'day']: - dv_call(arg) - - elif cmnd in ['pause', 'pausegame']: - pause_call() - - elif cmnd in ['cameraMode', 'camera_mode', 'rotate_camera']: - rotate_camera_call() - - elif cmnd in ['createrole']: - create_role_call(arg) - - elif cmnd in ['addrole']: - add_role_to_player(arg) - - elif cmnd in ['removerole']: - remove_role_from_player(arg) - - elif cmnd in ['addcommand', 'addcmd']: - add_command_to_role(arg) - - elif cmnd in ['removecommand', 'removecmd']: - remove_command_to_role(arg) - - elif cmnd in ['changetag']: - change_role_tag_call(arg) - - - - -# ============= - - -def kick(client_id): - _ba.disconnectclient(client_id) - - -def remove_call(arg): - - if on_command_error(arg): - return - - elif arg[0] == 'all': - for i in sess_players(): - i.remove_from_game() - - else: - try: - req_player = int(arg[0]) - sess_players()[req_player].remove_from_game() - except: - return - - -def add(): - pass - - -def end_call(arg): - if arg == [] or arg == ['']: - activity = _ba.get_foreground_host_activity() - activity.end_game() -""" - else: - try: - tmr = int(arg[0]) - time.sleep(tmr) - activity = _ba.get_foreground_host_activity() - activity.end_game() - except: - return -""" - - -def quit_call(arg): - - if arg == [] or arg == ['']: - ba.quit() - - """ - else: - try: - tmr = int(arg[0]) - time.sleep(tmr) - ba.quit() - except: - return - """ - - -def mute_call(): - pass - -def un_mute_call(): - pass - - - -def slow_mo_call(): - - activity = _ba.get_foreground_host_activity() - - if activity.globalsnode.slow_motion != True: - activity.globalsnode.slow_motion = True - - else: - activity.globalsnode.slow_motion = False - - - - - -def nv_call(arg): - - activity = _ba.get_foreground_host_activity() - - if arg == [] or arg == ['']: - - if activity.globalsnode.tint != (0.5, 0.7, 1.0): - activity.globalsnode.tint = (0.5, 0.7, 1.0) - else: - #will fix this soon - pass - - elif arg[0] == 'off': - if activity.globalsnode.tint != (0.5, 0.7, 1.0): - return - else: - pass - - - -def dv_call(arg): - - activity = _ba.get_foreground_host_activity() - - if arg == [] or arg == ['']: - - if activity.globalsnode.tint != (1,1,1): - activity.globalsnode.tint = (1,1,1) - else: - #will fix this soon - pass - - elif arg[0] == 'off': - if activity.globalsnode.tint != (1,1,1): - return - else: - pass - - -def pause_call(): - - activity = _ba.get_foreground_host_activity() - - if activity.globalsnode.paused != True: - activity.globalsnode.paused = True - - else: - activity.globalsnode.paused = False - - -def rotate_camera_call(): - - activity = _ba.get_foreground_host_activity() - - if activity.globalsnode.camera_mode != 'rotate': - activity.globalsnode.camera_mode = 'rotate' - - else: - activity.globalsnode.camera_mode == 'normal' - - - - - -def create_role_call(arg): - pdata.create_role(arg[0]) - - -def add_role_to_player(arg): - id = sess_players()[int(arg[1])].get_account_id() - try: - pdata.add_player_role(arg[0], id) - except: - return - -def remove_role_from_player(arg): - id = sess_players()[int(arg[1])].get_account_id() - try: - pdata.remove_player_role(arg[0], id) - except: - return - - -def change_role_tag_call(arg): - pdata.change_role_tag(arg[0], arg[1]) - - - - - -all_commands = ["changetag","createrole", "addrole", "removerole", "addcommand", "addcmd","removecommand","removecmd","kick","remove","rm","end","next","quit","restart","mute","mutechat","unmute","unmutechat","sm","slow","slowmo","nv","night","dv","day","pause","pausegame","cameraMode","camera_mode","rotate_camera","kill","die","heal","heath","curse","cur","sleep","sp","superpunch","gloves","punch","shield","protect","freeze","ice","unfreeze","thaw","gm","godmode","fly","inv","invisible","hl","headless","creepy","creep","celebrate","celeb","spaz"] - - - -def add_command_to_role(arg): - try: - if arg[1] in all_commands: - pdata.add_command_role(arg[0], arg[1]) - except: - return - - - -def remove_command_to_role(arg): - try: - if arg[1] in all_commands: - pdata.remove_command_role(arg[0], arg[1]) - except: - return - - - diff --git a/dist/ba_root/mods/chatHandle/chatCMDS/normal_commands.py b/dist/ba_root/mods/chatHandle/chatCMDS/normal_commands.py deleted file mode 100644 index 7319664..0000000 --- a/dist/ba_root/mods/chatHandle/chatCMDS/normal_commands.py +++ /dev/null @@ -1,54 +0,0 @@ -# Released under the MIT License. See LICENSE for details. - -from _ba import chatmessage as cmsg, screenmessage as smsg -from .handlers import sess_players -import ba, _ba - -cmnds = ['me', 'list', 'uniqeid'] - -cmnd_aliases = ['stats', 'score', 'rank', 'myself', 'l', 'id', 'pb-id', 'pb', 'accountid'] - - -def exec_cmd(cmnd, arg, clid, pbid): - - if cmnd in ['me', 'stats', 'score', 'rank', 'myself']: - stats_call() - - elif cmnd in ['list', 'l']: - list_call(clid) - - elif cmnd in ['uniqeid', 'id', 'pb-id', 'pb' , 'accountid']: - show_id_call(arg, pbid, clid) - - - - - -def stats_call(): - pass - - - -def list_call(clid): - seprator = '______________________________' - lst = u'{0:^16}{1:^15}{2:^10}'.format('name', 'client_id' , 'player_id') + f'\n{seprator}\n' - - for i in sess_players(): - lst += u'{0:^16}{1:^15}{2:^10}\n'.format(i.getname(icon = False), str(i.inputdevice.client_id), str(i.id)) - smsg(lst, color = (0,2.55,2.55), transient = True , clients = [clid]) - - - -def show_id_call(arg, acid, clid): - if arg == [] or arg == ['']: - cmsg(f'Your account id is {acid} ') - else: - try: - rq_client = sess_players()[int(arg[0])] - name = rq_client.getname(full=True , icon=True) - acid = rq_client.get_account_id() - smsg(f" {name}'s account id is '{acid}' ", color = (0,2.55,2.55), transient = True , clients = [clid]) - except: - return - - \ No newline at end of file diff --git a/dist/ba_root/mods/chatHandle/chatFilter/ChatFilter.py b/dist/ba_root/mods/chatHandle/chatFilter/ChatFilter.py new file mode 100644 index 0000000..b87ad50 --- /dev/null +++ b/dist/ba_root/mods/chatHandle/chatFilter/ChatFilter.py @@ -0,0 +1,6 @@ +# Released under the MIT License. See LICENSE for details. +import ba, _ba + + +def isAbuse(msg): + pass \ No newline at end of file diff --git a/dist/ba_root/mods/chatHandle/chatFilter/FilterWords.py b/dist/ba_root/mods/chatHandle/chatFilter/FilterWords.py new file mode 100644 index 0000000..5ab7732 --- /dev/null +++ b/dist/ba_root/mods/chatHandle/chatFilter/FilterWords.py @@ -0,0 +1,1012 @@ +""" +those worlds will get filterd in chat +become dank add your worlds O_O + + """ + +filtered_words = [ +'kamine' +'bitch' +'erotic' +'shit' +'bra' +'nipple' +'jhaat' +'mc' +'bhosdika' +'baap' +'aulad' +'wtf' +'chood' +'chhod' +'bhadwe' +'bhadve' +'behnchod' +'gaand' +'baap' +'mf' +'fuck' +'mc' +'bc' +'lawde' +'chutiyamother' +'laude' +'chutiye' +'maderchod' +'maderchhod' +'maderchood' +'madarchod' +'madarchhod' +'chut' +'bhen' +'bsdk' +'kaminey' +'gaand' +'gand' +'tatti' +'pennis' +'fucker' +'madarchod' +'machod' +'chood' +'machod' +'fuck' +'fck' +'fkuc' +'fuk' +'sex' +'sexy' +'nigga' +'asshole' +'bc' +'ass' +'fuckoff' +'cock' +'hardcore' +'leabian' +'motherfuck' +'lund' +'dick' +'dickhead' +'nigga' +'orgasm' +'porn' +'slut' +'viagra' +'whore' +'dildo' +'pussy' +'piss' +'hijdemadar' +'madarchodd' +'chodd' +'randi' +'randiii' +'lund' +'lundd' +'lode' +'laude' +'chuss' +'land' +'choot' +'chut' +'maa' +'randy' +'madarchodd' +'nanga' +'nangi' +'benchod' +'bancho' +'behnchod' +'gaand' +'lundd' +'shit' +'ass' +'asshole' +'ass' +'asa' +'ass' +'asshole' +'ahole' +'anal' +'anal impaler' +'anal leakage' +'analprobe' +'anus' +'arsehole' +'ass' +'ass fuck' +'ass fuck' +'ass hole' +'assbag' +'assbandit' +'assbang' +'assbanged' +'assbanger' +'assbangs' +'assbite' +'assclown' +'asscock' +'asscracker' +'asses' +'assface' +'assfaces' +'assfuck' +'assfucker' +'assfucker' +'assfukka' +'assgoblin' +'asshole' +'asshat' +'asshat' +'asshead' +'asshoie' +'asshole' +'assholes' +'asshopper' +'assjabber' +'assjacker' +'asslick' +'asslicker' +'assmaster' +'assshole' +'asssucker' +'asswad' +'asswhole' +'asswipe' +'asswipes' +'erotic' +'azz' +'bitch' +'boobs' +'bitch' +'bitch' +'licking' +'sack' +' sucking' +'ballbag' +'balls' +'ballsack' +'bangbros' +'bastard' +'bastardo' +'bastards' +'beotch' +'bitch' +'biatch' +'big black' +'breasts' +'big tits' +'bigtits' +'bitch' +'bitch tit' +'bitch tit' +'bitchass' +'bitched' +'bitcher' +'bitchers' +'bitches' +'bitchin' +'bitching' +'bitchtits' +'bitchy' +'black cock' +'blonde action' +'blonde on blonde action' +'bloody hell' +'blow job' +'blow me' +'blow your load' +'blowjob' +'blowjobs' +'boner' +'boners' +'boob' +'boobies' +'boobs' +'booby' +'booger' +'bookie' +'boong' +'booobs' +'boooobs' +'booooobs' +'booooooobs' +'bootee' +'bootie' +'booty' +'booty call' +'breasts' +'breeder' +'brotherfucker' +'bull shit' +'bullshit' +'bullshits' +'bullshitted' +'bullturds' +'bung' +'bung hole' +'bunghole' +'bunny fucker' +'bust a load' +'bust a load' +'busty' +'butt' +'butt fuck' +'butt fuck' +'butt plug' +'buttcheeks' +'buttfuck' +'buttfucka' +'buttfucker' +'butthole' +'buttmuch' +'buttmunch' +'buttpirate' +'buttplug' +'cock' +'cock' +'cunt' +'cock' +'cock' +'cocksucker' +'chichi man' +'chick with a dick' +'childfucker' +'chode' +'chodes' +'clit' +'clit licker' +'clit licker' +'clitface' +'clitfuck' +'clitoris' +'clitorus' +'clits' +'clitty' +'clitty litter' +'clitty litter' +'clusterfuck' +'cnut' +'cocain' +'cocaine' +'coccydynia' +'cock' +'cock' +'cock pocket' +'cock pocket' +'cock snot' +'cock snot' +'cock sucker' +'cockass' +'cockbite' +'cockblock' +'cockburger' +'cockeye' +'cockface' +'cockfucker' +'cockhead' +'cockholster' +'cockjockey' +'cockknocker' +'cockknoker' +'cocklump' +'cockmaster' +'cockmongler' +'cockmongruel' +'cockmonkey' +'cockmunch' +'cockmuncher' +'cocknose' +'cocknugget' +'cocks' +'cockshit' +'cocksmith' +'cocksmoke' +'cocksmoker' +'cocksniffer' +'cocksuck' +'cocksuck' +'cocksucked' +'cocksucked' +'cocksucker' +'cocksucker' +'cocksuckers' +'cocksucking' +'cocksucks' +'cocksucks' +'cocksuka' +'cocksukka' +'cockwaffle' +'condom' +'coochie' +'coochy' +'corksucker' +'cornhole' +'cornhole' +'corp whore' +'corp whore' +'crackhead' +'crackwhore' +'crap' +'crappy' +'creampie' +'crikey' +'cripple' +'crotte' +'cum' +'cum chugger' +'cum chugger' +'cum dumpster' +'cum dumpster' +'cum freak' +'cum freak' +'cum guzzler' +'cum guzzler' +'cumbubble' +'cumdump' +'cumdump' +'cumdumpster' +'cumguzzler' +'cumjockey' +'cummer' +'cummin' +'cumming' +'cums' +'cumshot' +'cumshots' +'cumslut' +'cumstain' +'cunillingus' +'cunnie' +'cunnilingus' +'cunny' +'cunt' +'cunt' +'cunt hair' +'cunt hair' +'cuntass' +'cuntbag' +'cuntbag' +'cuntface' +'cunthole' +'cunthunter' +'cuntlick' +'cuntlick' +'cuntlicker' +'cuntlicker' +'cuntlicking' +'cuntlicking' +'cuntrag' +'cunts' +'cuntsicle' +'cuntsicle' +'cuntslut' +'cuntstruck' +'cuntstruck' +'cyberfuc' +'cyberfuck' +'cyberfuck' +'cyberfucked' +'cyberfucked' +'cyberfucker' +'cyberfuckers' +'cyberfucking' +'cyberfucking' +'douche' +'douche' +'dick' +'dildo' +'dildo' +'darkie' +'rape' +'daterape' +'dawgiestyle' +'deep throat' +'deepthroat' +'dick' +'dick head' +'dick hole' +'dick hole' +'dick shy' +'dick shy' +'dickbag' +'dickbeaters' +'dickdipper' +'dickface' +'dickflipper' +'dickfuck' +'dickfucker' +'dickhead' +'dickheads' +'dickhole' +'dickish' +'dickish' +'dickjuice' +'dickmilk' +'dicks' +'dicksucker' +'dicksucking' +'dicktickler' +'dickwad' +'dildo' +'dildos' +'dog style' +'dogfucker' +'doggie style' +'doggiestyle' +'doggiestyle' +'doggin' +'dogging' +'doggy style' +'doggystyle' +'doggystyle' +'double penetration' +'douche' +'douche' +'dumass' +'dumb ass' +'dumbass' +'dumbasses' +'dumbcunt' +'dumbfuck' +'dumbshit' +'dummy' +'dumshit' +'eat a dick' +'eat a dick' +'eat hair pie' +'eat hair pie' +'eat my ass' +'ejaculate' +'ejaculated' +'ejaculates' +'ejaculates' +'ejaculating' +'ejaculating' +'ejaculatings' +'ejaculation' +'ejakulate' +'erect' +'erection' +'erotic' +'erotism' +'f u c k' +'f u c k e r' +'fuck' +'fuck' +'fack' +'fag' +'fagbag' +'fagfucker' +'fagg' +'fagged' +'fagging' +'faggit' +'faggitt' +'faggot' +'faggotcock' +'faggots' +'faggs' +'fagot' +'fagots' +'fatass' +'fcuk' +'fcuker' +'fcuking' +'fecal' +'feck' +'fecker' +'fcuk' +'fingerbang' +'fingerfuck' +'fingerfuck' +'fingerfucked' +'fingerfucked' +'fingerfucker' +'fingerfucker' +'fingerfuckers' +'fingerfucking' +'fingerfucking' +'fingerfucks' +'fingerfucks' +'fingering' +'fuc' +'fuck' +'fuck' +'fuck' +'fuck buttons' +'fuck hole' +'fuck hole' +'fuck off' +'fuck puppet' +'fuck puppet' +'fuck trophy' +'fuck trophy' +'fuck yo mama' +'fuck yo mama' +'fuck you' +'fucka' +'fuckass' +'fuckass' +'fuckass' +'fuckbag' +'fuckbitch' +'fuckbitch' +'fuckboy' +'fuckbrain' +'fuckbutt' +'fuckbutter' +'fucked' +'fuckedup' +'fucker' +'fuckers' +'fuckersucker' +'fuckface' +'fuckhead' +'fuckheads' +'fuckhole' +'fuckin' +'fucking' +'fuckings' +'fuckingshitmotherfucker' +'fuckme' +'fuckme' +'fuckmeat' +'fuckmeat' +'fucknugget' +'fucknut' +'fucknutt' +'fuckoff' +'fucks' +'fuckstick' +'fucktard' +'fucktard' +'fucktards' +'fucktart' +'fucktoy' +'fucktoy' +'fucktwat' +'fuckup' +'fuckwad' +'fuckwhit' +'fuckwit' +'fuckwitt' +'fudge packer' +'fudgepacker' +'fuk' +'fuker' +'fukker' +'fukkers' +'fukkin' +'fuks' +'fukwhit' +'fukwit' +'fuq' +'fux' +'fuxor' +'fvck' +'fxck' +'gae' +'gang bang' +'gangbang' +'gangbang' +'gangbang' +'gangbanged' +'gangbangs' +'ganja' +'gash' +'gassy ass' +'gassy ass' +'gay' +'gay sex' +'gayass' +'gaybob' +'gaydo' +'gayfuck' +'gayfuckist' +'gaylord' +'gays' +'gaysex' +'gaytard' +'gaywad' +'gender bender' +'genitals' +'gey' +'god damn' +'godamn' +'godamnit' +'goddam' +'goddam' +'goddammit' +'goddamn' +'goddamned' +'goddamned' +'goddamnit' +'godsdamn' +'gtfo' +'homo' +'homo' +'hand job' +'handjob' +'hard core' +'hard on' +'hardcore' +'hardcoresex' +'hentai' +'herp' +'herpes' +'herpy' +'heshe' +'heshe' +'hircismus' +'hitler' +'hiv' +'hoar' +'hoare' +'hobag' +'hoe' +'hoer' +'holy shit' +'homo' +'homo' +'homodumbshit' +'homoerotic' +'homoey' +'hore' +'horniest' +'horny' +'hot carl' +'hot chick' +'hotsex' +'how wtf' +'inbred' +'incest' +'injun' +'intercourse' +'jack off' +'jackass' +'jackasses' +'jackhole' +'jackoff' +'jackoff' +'jaggi' +'jagoff' +'jail bait' +'jailbait' +'jap' +'japs' +'jelly donut' +'jerk' +'jerk off' +'jerkoff' +'jerkass' +'jerked' +'jerkoff' +'jerkoff' +'kock' +'kondum' +'kondums' +'kooch' +'kooches' +'kootch' +'kraut' +'kum' +'kummer' +'kumming' +'kums' +'kunilingus' +'kunja' +'kunt' +'lesbian' +'lesbians' +'lesbo' +'lesbos' +'lez' +'lezza' +'lesbo' +'lovemaking' +'lube' +'lust' +'lusting' +'lusty' +'mofo' +'mofo' +'masterbate' +'masterbe' +'masterbate' +'mafugly' +'mafugly' +'make me come' +'male squirting' +'mams' +'masterbe' +'masterbate' +'masterbate' +'masterbate' +'masterbate' +'masterbate' +'masterbating' +'masterbation' +'masterbations' +'masturbate' +'masturbating' +'masturbation' +'mcfagget' +'menstruate' +'menstruation' +'meth' +'mfucking' +'milf' +'moron' +'mothafuck' +'mothafucka' +'mothafuckas' +'mothafuckaz' +'mothafucked' +'mothafucked' +'mothafucker' +'mothafuckers' +'mothafuckin' +'mothafucking' +'mothafucking' +'mothafuckings' +'mothafucks' +'mother fucker' +'mother fucker' +'motherfuck' +'motherfucka' +'motherfucked' +'motherfucker' +'motherfuckers' +'motherfuckin' +'motherfucking' +'motherfuckings' +'motherfuckka' +'motherfucks' +'muthafecker' +'muthafuckker' +'mutherfucker' +'nigga' +'nigger' +'naked' +'nigger' +'niggah' +'nigga' +'nude' +'nudity' +'numbnuts' +'nut butter' +'nut butter' +'nut sack' +'nutsack' +'nutter' +'nympho' +'nymphomania' +'octopussy' +'orgasim' +'orgasims' +'orgasm' +'orgasmic' +'orgasms' +'orgies' +'orgy' +'ovary' +'ovum' +'ovums' +'pussy' +'porn' +'pantie' +'panties' +'panty' +'pawn' +'pee' +'peepee' +'penetrate' +'penetration' +'penial' +'penile' +'penis' +'penisbanger' +'penisfucker' +'penispuffer' +'perversion' +'phallicsex' +'phonesex' +'phuck' +'phuk' +'phuked' +'phuking' +'phukked' +'phukking' +'phuks' +'phuq' +'piece of shit' +'pigfucker' +'pissed' +'pissed off' +'pisser' +'pissers' +'pisses' +'pisses' +'pissflaps' +'pissin' +'pissin' +'pissing' +'pissoff' +'pissoff' +'pissoff' +'pisspig' +'poop' +'poop chute' +'poopchute' +'poopuncher' +'porch monkey' +'porchmonkey' +'porn' +'porno' +'pornography' +'pornos' +'psycho' +'puss' +'pusse' +'pussi' +'pussies' +'pussy' +'pussy fart' +'pussy fart' +'pussy palace' +'pussy palace' +'pussylicking' +'pussypounder' +'pussys' +'raging boner' +'rape' +'raped' +'raper' +'raping' +'rapist' +'rectal' +'rectum' +'rectus' +'reefer' +'reetard' +'reich' +'renob' +'retard' +'retarded' +'s hit' +'shit' +'scum' +'seaman' +'seamen' +'seduce' +'seks' +'semen' +'sex' +'sexo' +'sexual' +'sexy' +'shit' +'shit' +'shit' +'shit' +'shaved pussy' +'shemale' +'shit' +'shit' +'shit' +'shit ass' +'shit fucker' +'shit fucker' +'shitass' +'shitbag' +'shitbagger' +'shitblimp' +'shitbrains' +'shitbreath' +'shitcanned' +'shitcunt' +'shitdick' +'shit' +'shiteater' +'shited' +'shitey' +'shitface' +'shitfaced' +'shitfuck' +'shitfull' +'shithead' +'shitheads' +'shithole' +'shithouse' +'shiting' +'shitings' +'shits' +'shitspitter' +'shitstain' +'shitt' +'shitted' +'shitter' +'shitters' +'shitters' +'shittier' +'shittiest' +'shitting' +'shittings' +'shitty' +'slut' +'slut bucket' +'slut bucket' +'slutbag' +'slutdumper' +'slutkiss' +'sluts' +'son of a bitch' +'son of a motherless goat' +'son of a whore' +'sonofabitch' +'sperm' +'stfu' +'suck' +'suckass' +'sucked' +'sucking' +'sucks' +'tit' +'titties' +'titties' +'testical' +'testicle' +'testis' +'threesome' +'throating' +'tied up' +'tight white' +'tinkle' +'tit' +'tit wank' +'tit wank' +'titfuck' +'titi' +'tities' +'tits' +'titt' +'titties' +'tittiefucker' +'titties' +'titty' +'tittyfuck' +'tittyfucker' +'tittywank' +'tongue in a' +'transsexual' 'two fingers' +'two fingers with tongue' +'undressing' +'urinal' +'urine' +'urophilia' +'vagina' +'viagra' +'vibrator' +'whore' +'whoreface' +'whore' +'whorealicious' +'whorebag' +'whored' +'whoreface' +'whorehopper' +'whorehouse' +'whores' +'whoring' +'wigger' +'wtf' +'xrated' +'xrated' +'xxx' +'what the fuck' +'the fuck' +'tf' +] + diff --git a/dist/ba_root/mods/chatHandle/chatSpam/chatfilter.py b/dist/ba_root/mods/chatHandle/chatSpam/CheackSpam.py similarity index 81% rename from dist/ba_root/mods/chatHandle/chatSpam/chatfilter.py rename to dist/ba_root/mods/chatHandle/chatSpam/CheackSpam.py index bf3dea9..9d6db0a 100644 --- a/dist/ba_root/mods/chatHandle/chatSpam/chatfilter.py +++ b/dist/ba_root/mods/chatHandle/chatSpam/CheackSpam.py @@ -1,3 +1,3 @@ # Released under the MIT License. See LICENSE for details. -def isAbuse(): +def isspam(): return \ No newline at end of file diff --git a/dist/ba_root/mods/chatHandle/handlechat.py b/dist/ba_root/mods/chatHandle/handlechat.py index 2f6fc5a..0bc73ef 100644 --- a/dist/ba_root/mods/chatHandle/handlechat.py +++ b/dist/ba_root/mods/chatHandle/handlechat.py @@ -1,26 +1,20 @@ -# Released under the MIT License. See LICENSE for details. -from playersData import pdata -from chatHandle.chatCMDS import chatcmd -#from chatFilter import chatfilter -import ba,_ba - -def public_id(client_id): - rost=_ba.get_game_roster() - for client in rost: - if client['client_id']==client_id: - return client['account_id'] - return None - -def filter_chat_message(msg,client_id): - if msg.startswith("/"): - return chatcmd.cmd(msg,client_id) - return msg - -""" - if chatfilter.isAbuse(msg): - pdata.warn(public_id(client_id)) - return None - return msg -""" - - +# Released under the MIT License. See LICENSE for details. + +from PlayersData import pdata +from ChatHandle.ChatCommands import Main + +import ba, _ba + + + +def filter_chat_message(msg, client_id): + if msg.startswith("/"): + return Main.Command(msg, client_id) + return msg + +""" + if chatfilter.isAbuse(msg): + pdata.warn(public_id(client_id)) + return None + return msg +""" \ No newline at end of file diff --git a/dist/ba_root/mods/chatHandle/temporary.txt b/dist/ba_root/mods/chatHandle/temporary.txt new file mode 100644 index 0000000..24c5e8b --- /dev/null +++ b/dist/ba_root/mods/chatHandle/temporary.txt @@ -0,0 +1,14 @@ +###### remaining + + +mute / unmute +spaz +me +stats +nv / dv +replies for coamd like ' created role Pranav69 successfully' +some dirt here there + + +chat spam +chat filter diff --git a/dist/ba_root/mods/custom_hooks.py b/dist/ba_root/mods/custom_hooks.py index c3621ff..dada884 100644 --- a/dist/ba_root/mods/custom_hooks.py +++ b/dist/ba_root/mods/custom_hooks.py @@ -1,8 +1,7 @@ - +from ChatHandle import HandleChat def filter_chat_message(msg,client_id): - from chatHandle import handlechat - return handlechat.filter_chat_message(msg,client_id) + return HandleChat.filter_chat_message(msg,client_id) def on_app_launch(): diff --git a/dist/ba_root/mods/playersData/__pycache__/__init__.cpython-38.opt-1.pyc b/dist/ba_root/mods/playersData/__pycache__/__init__.cpython-38.opt-1.pyc index 4dbd2f2a2e62f5c5b0eaa2d4e150604ce4519524..bfb4940c8a5658c14f5e4cfaa80ab07c0808b049 100644 GIT binary patch delta 26 gcmey%^p}Y{l$V!_0SK<7Rc+*UV`L1N9K@&%0AJAtoB#j- delta 26 gcmey%^p}Y{l$V!_0SIP1$l1v4#>iMOIfzjk0Ahm%>;M1& diff --git a/dist/ba_root/mods/playersData/__pycache__/__init__.cpython-38.pyc b/dist/ba_root/mods/playersData/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 22ece1715c385200153e7dde7b4f86a2c9300869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397 zcmYk2PfkKH5XQ>`gL#o7n9P<0IDj!mMRvxGvLQ`sY3I?J(l%`$EsI%%~nkJRy|!kvvL3Za~`(a;9+e` zhR{IMdR1)j(%I5MHZq}xHI_Z12k9JOlLEvP-cXf1tLqnI{U(F;U@##Op>;_7oQG6S8=F!QH%qN!+mgW><7Q4gwHKkjJH~r)1RwRSrACWwKe*gdg diff --git a/dist/ba_root/mods/playersData/__pycache__/pdata.cpython-38.opt-1.pyc b/dist/ba_root/mods/playersData/__pycache__/pdata.cpython-38.opt-1.pyc index f0a52a3b07ba69fddcb15ecdbf0ea9abdc34371e..8d353a449e01ceee042c8d7d80eb317e536f70c6 100644 GIT binary patch delta 1122 zcmZWoOHUI~6z-W<+v!sy(N+pAATof3fYS015@XyDl5SW?Vuo=#Ef~r)x79^mxHGOa zAxFP%l6WzGEJO2VJSH^ShRG73)`ep8UeCOQnoO_YG$R&1DDKmnufZ+;U7x!%P89tPqORX+IoR7!8>7Yo%=T|H&fgj3{9PiSBA6L0^V3-3+r}6# zMpvpg(b-FMoo3NJaE_Z^UG~iKXtsi?j6#MhzK_nsJU@%>Y}3Upke9Snl+ShT|4NZ= zVY%=qVok3r=kWqh9hz}OF(3v>U}fBc0&mB5)~}(}GKAs2>~#Is;3nv_2^}1+=hWE^ z3=P-de_|zAmReNetCeMPFCvH-sdw15T}$0Fyhg)wyKI6SQM+FzJlHSs5>)#vGdyi3 zN)Ip=HIZ^q9;*<9bJol;SmRI4$4mFog@dQ!LT&qP*#TQ2t0IdIC;u>~V3U$JR*83= z;2}Y%0v?4K?2(N#`-taD1=FAb+mZ^NBv#%mP^w0t6Br1VJ|HAZkc-3_Qju)b?q~dW zh$f;M1& delta 1122 zcmZWoOHUI~6z0scOj}ws5?i6PJOU%M#RgjnjSyql7!o!tG%;nI4i7__$!&Fk3wOqq zhTN5jF>z(Ob>W8a4@`7@cm4%du8im0L722n`ep8UeCOQnoO_YE$i#P&NoxpypErZk z_+Jp*f^U%G=P(Tc{|!YL9qetOjd7#Q6*Gr-ndI+`Qg)uGX9;YAXve>d3M|SZ zd9%858{H@IuCt$a51iwDuO)kCchGEyRT+g0R(x+RLXn@DTaW4DHpolbD$3`&&HqY~ zZqed+6tR7;E9db7Pn{UTkYYd#62Qv12NOJqZLQrvt8ECwec9>y?fy;BX%jj)T+eB- zTNoOx!T-bxuq-cF8?M)u$$bwMovZqv2Zr-rw;=eb=rO%AhpStcse*Wm)xFIndK zh!rnXF%~tEa!?*yA&BOzS~*zbPpn6k`{=^KQ*ogNejqzwHL@zQ=wR|sYX;USxv@&T z4T1**kqUSeR=7t^oY_Y_Unw{O8n6wi;Ay=2W{FaD0)xOru=PG6S%O?7&VY(!qjtaG zze6u`NJ)dV*jb@ApF2YFJMvwI3!TJ>P-ZP~x(9-9Cepj|?b1t>%fWK=HA65*ut2a# dP$Vc5$Z6H-YmH!?V1s~qi6|j8N%QZC#y^d!+Ij#0 diff --git a/dist/ba_root/mods/playersData/roles.json b/dist/ba_root/mods/playersData/roles.json index d34f3e4..75865f8 100644 --- a/dist/ba_root/mods/playersData/roles.json +++ b/dist/ba_root/mods/playersData/roles.json @@ -8,6 +8,10 @@ ], "commands": [ "createrole", + "add", + "spectators", + "lobbytime", + "whitelist", "addrole", "removerole", "addcommand", @@ -79,7 +83,8 @@ "changetag" ], "ids": [ - "pb-IF48VgWkBFQ" + "pb-IF48VWkBFQ", + "None" ] }, "test69": { diff --git a/dist/ba_root/mods/privateserver.py b/dist/ba_root/mods/privateserver.py index 8367c3b..8f62f33 100644 --- a/dist/ba_root/mods/privateserver.py +++ b/dist/ba_root/mods/privateserver.py @@ -1,27 +1,42 @@ -"""Define a simple example plugin.""" +""" +Private Server whitelist by Mr.Smoothy + +* don't dare to remove credits or I will bite you + +GitHub : https://github.com/imayushsaini/Bombsquad-Ballistica-Modded-Server +""" # ba_meta require api 6 - -# Private Server whitelist by Mr.Smoothy from __future__ import annotations - from typing import TYPE_CHECKING +from ba._enums import TimeType -import ba,json,_ba,time +import ba, json, _ba, time, datetime if TYPE_CHECKING: pass -import datetime -from ba._enums import TimeType -whitelist_on=True # change it by chat commands for by editing here -spectators=False # ,, ,, ,, ,, False means spectating not allowed -whitelist={} # dont change -lobbychecktime=3 # time in seconds, to check lobby players ... increase time ,for more time unwanted players can watch match - # decrease time , kick them fast , but can also give some lagg to the server , adjust yourself acrd. to cpu power +whitelist_on = True +""" Change It By Chat Commands For By Editing Here """ -admins=['pb-JiNJARBaXEFBVF9HFkNXXF1EF0ZaRlZE'] # dirty admin system , for now , until we get good working chat commands + +spectators = False +""" False Means Spectating Not Allowed """ + + +whitelist = {} +""" Dont change """ + + +lobbychecktime = 3 +""" +Time in seconds, to check lobby players ... increase time ,for more time unwanted players can watch match +Decrease time , kick them fast , but can also give some lagg to the server , adjust yourself acrd. to cpu power """ + + +admins = ['pb-JiNJARBaXEFBVF9HFkNXXF1EF0ZaRlZE'] +"""Dirty admin system , for now , until we get good working chat commands """ def inWhiteList(id): diff --git a/dist/ba_root/mods/setting.json b/dist/ba_root/mods/setting.json index e80165b..935d8b9 100644 --- a/dist/ba_root/mods/setting.json +++ b/dist/ba_root/mods/setting.json @@ -4,6 +4,15 @@ "spectators": false, "lobbychecktime": 3 }, + + + + "ChatCommands": { + "BrodcastCommand": true + }, + + + "textonmap": { "top watermark": "Welcome to server \n ip 192.168.0.1", "bottom left watermark": "join discord for fun", @@ -13,6 +22,9 @@ "message 3" ] }, + + + "enabletags": true, "enablerank": true, "enableeffects": false diff --git a/dist/ba_root/mods/stats/__pycache__/mystats.cpython-38.opt-1.pyc b/dist/ba_root/mods/stats/__pycache__/mystats.cpython-38.opt-1.pyc deleted file mode 100644 index 482aac220c8c1952d3a0a6f5f3c372656acc8a74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5790 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 diff --git a/dist/ba_root/mods/stats/mystats.py b/dist/ba_root/mods/stats/mystats.py deleted file mode 100644 index 8e52ca5..0000000 --- a/dist/ba_root/mods/stats/mystats.py +++ /dev/null @@ -1,224 +0,0 @@ -damage_data = {} -#Don't touch the above line -""" -mystats module for BombSquad version 1.5.29 -Provides functionality for dumping player stats to disk between rounds. -""" -ranks=[] -import threading,json,os,urllib.request,ba,_ba,setting -from ba._activity import Activity -from ba._music import setmusic, MusicType -from ba._enums import InputType, UIScale -# False-positive from pylint due to our class-generics-filter. -from ba._player import EmptyPlayer # pylint: disable=W0611 -from ba._team import EmptyTeam # pylint: disable=W0611 -from typing import Any, Dict, Optional -from ba._lobby import JoinInfo -from ba import _activitytypes as ba_actypes -from ba._activitytypes import * -our_settings = setting.get_settings_data() -# where our stats file and pretty html output will go -base_path = os.path.join(_ba.env()['python_directory_user'],"stats" + os.sep) -statsfile = base_path + 'stats.json' -htmlfile = base_path + 'stats_page.html' -table_style = "{width:100%;border: 3px solid black;border-spacing: 5px;border-collapse:collapse;text-align:center;background-color:#fff}" -heading_style = "{border: 3px solid black;text-align:center;}" -html_start = f''' - - - - Test Server - - - -

Top 200 Players

- - - - - - - - - -''' -# #removed this line as it isn't crt data -def refreshStats(): - # lastly, write a pretty html version. - # our stats url could point at something like this... - f=open(statsfile) - stats = json.loads(f.read()) - - f=open(htmlfile, 'w') - f.write(html_start) - entries = [(a['scores'], a['kills'], a['deaths'], a['games'], a['name_html'], a['aid']) for a in stats.values()] - # this gives us a list of kills/names sorted high-to-low - entries.sort(reverse=True) - rank = 0 - toppers = {} - pStats = stats - toppersIDs=[] - _ranks=[] - for entry in entries: - if True: - rank += 1 - scores = str(entry[0]) - kills = str(entry[1]) - deaths = str(entry[2]) - games = str(entry[3]) - name = str(entry[4]) - aid = str(entry[5]) - if rank < 6: toppersIDs.append(aid) - #The below kd and avg_score will not be added to website's html document, it will be only added in stats.json - try: - kd = str(float(kills) / float(deaths)) - kd_int = kd.split('.')[0] - kd_dec = kd.split('.')[1] - p_kd = kd_int + '.' + kd_dec[:3] - except Exception: - p_kd = "0" - try: - avg_score = str(float(scores) / float(games)) - avg_score_int = avg_score.split('.')[0] - avg_score_dec = avg_score.split('.')[1] - p_avg_score = avg_score_int + '.' + avg_score_dec[:3] - except Exception: - p_avg_score = "0" - if damage_data and aid in damage_data: - dmg = damage_data[aid] - dmg = str(str(dmg).split('.')[0] + '.' + str(dmg).split('.')[1][:3]) - else: dmg = 0 - - _ranks.append(aid) - - pStats[str(aid)]["rank"] = int(rank) - pStats[str(aid)]["scores"] = int(scores) - pStats[str(aid)]["total_damage"] += float(dmg) #not working properly - pStats[str(aid)]["games"] = int(games) - pStats[str(aid)]["kills"] = int(kills) - pStats[str(aid)]["deaths"] = int(deaths) - pStats[str(aid)]["kd"] = float(p_kd) - pStats[str(aid)]["avg_score"] = float(p_avg_score) - - if rank < 201: - # #removed this line as it isn't crt data - f.write(f''' - - - - - - - - ''') - f.write(''' -
RankNameScoreKillsDeathsGames Played
Total Damage{str(dmg)}
{str(rank)}{str(name)}{str(scores)}{str(kills)}{str(deaths)}{str(games)}
- -''') - f.close() - global ranks - ranks=_ranks - - f2 = open(statsfile, "w") - f2.write(json.dumps(pStats, indent=4)) - f2.close() - - from playersData import pdata - pdata.update_toppers(toppersIDs) - -def update(score_set): - """ - Given a Session's ScoreSet, tallies per-account kills - and passes them to a background thread to process and - store. - """ - # look at score-set entries to tally per-account kills for this round - - account_kills = {} - account_deaths = {} - account_scores = {} - - for p_entry in score_set.get_records().values(): - account_id = p_entry.player.get_account_id() - if account_id is not None: - account_kills.setdefault(account_id, 0) # make sure exists - account_kills[account_id] += p_entry.accum_kill_count - account_deaths.setdefault(account_id, 0) # make sure exists - account_deaths[account_id] += p_entry.accum_killed_count - account_scores.setdefault(account_id, 0) # make sure exists - account_scores[account_id] += p_entry.accumscore - # Ok; now we've got a dict of account-ids and kills. - # Now lets kick off a background thread to load existing scores - # from disk, do display-string lookups for accounts that need them, - # and write everything back to disk (along with a pretty html version) - # We use a background thread so our server doesn't hitch while doing this. - print(account_kills) - print(account_scores) - if account_scores: - UpdateThread(account_kills, account_deaths, account_scores).start() - -class UpdateThread(threading.Thread): - def __init__(self, account_kills, account_deaths, account_scores): - threading.Thread.__init__(self) - self._account_kills = account_kills - self.account_deaths = account_deaths - self.account_scores = account_scores - print("init thread") - def run(self): - # pull our existing stats from disk - print("run thead") - try: - if os.path.exists(statsfile): - with open(statsfile) as f: - stats = json.loads(f.read()) - except: - stats={} - - # now add this batch of kills to our persistant stats - for account_id, kill_count in self._account_kills.items(): - # add a new entry for any accounts that dont have one - if account_id not in stats: - # also lets ask the master-server for their account-display-str. - # (we only do this when first creating the entry to save time, - # though it may be smart to refresh it periodically since - # it may change) - '''url = 'http://bombsquadgame.com/accountquery?id=' + account_id - response = json.loads( - urllib.request.urlopen(urllib.Request(url)).read()) - print('response variable from mystats.py line 183:') - print(response) - name_html = response['name_html']''' - stats[account_id] = {'rank': 0, - 'name_html': str(account_id), - 'scores': 0, - 'total_damage': 0, - 'kills': 0, - 'deaths': 0, - 'games': 0, - 'kd': 0, - 'avg_score': 0, - 'aid': str(account_id)} - # now increment their kills whether they were already there or not - stats[account_id]['kills'] += kill_count - stats[account_id]['deaths'] += self.account_deaths[account_id] - stats[account_id]['scores'] += self.account_scores[account_id] - # also incrementing the games played and adding the id - stats[account_id]['games'] += 1 - stats[account_id]['aid'] = str(account_id) - # dump our stats back to disk - tempppp = None - from datetime import datetime - with open(statsfile, 'w') as f: - f.write(json.dumps(stats)) - # aaand that's it! There IS no step 27! - now = datetime.now() - update_time = now.strftime("%S:%M:%H - %d %b %y") - print(f"Added {str(len(self._account_kills))} account's stats entries. || {str(update_time)}") - refreshStats() - -def getRank(acc_id): - global ranks - if ranks==[]: - refreshStats() - if acc_id in ranks: - return ranks.index(acc_id)+1 \ No newline at end of file diff --git a/dist/ba_root/mods/stats/rank.py b/dist/ba_root/mods/stats/rank.py deleted file mode 100644 index 9b46f9f..0000000 --- a/dist/ba_root/mods/stats/rank.py +++ /dev/null @@ -1 +0,0 @@ -# Released under the MIT License. See LICENSE for details. \ No newline at end of file diff --git a/dist/ba_root/mods/stats/stats.json b/dist/ba_root/mods/stats/stats.json deleted file mode 100644 index e0b50f0..0000000 --- a/dist/ba_root/mods/stats/stats.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "pb-IF4VAk4a": { - "rank": 1, - "name_html": "pb-IF4VAk4a", - "scores": 0, - "total_damage": 0.0, - "kills": 0, - "deaths": 0, - "games": 18, - "kd": 0.0, - "avg_score": 0.0, - "aid": "pb-IF4VAk4a" - } -} \ No newline at end of file diff --git a/dist/ba_root/mods/stats/stats_page.html b/dist/ba_root/mods/stats/stats_page.html deleted file mode 100644 index 401181a..0000000 --- a/dist/ba_root/mods/stats/stats_page.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - Test Server - - - -

Top 200 Players

- - - - - - - - - - - - - - - - - - -
RankNameScoreKillsDeathsGames Played
1pb-IF4VAk4a00018
- - \ No newline at end of file