From 66f598d5d2604368a951415ce34c5ab0d628a576 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Wed, 2 Nov 2016 19:36:16 -0600 Subject: [PATCH] Add server announcements/global broadcasts Chat messages with NULL uuid are now server announcements, and null lat/long messages are broadcast globally. --- chat.php | 32 ++++++++++++++++++++++++++------ database.mwb | Bin 18801 -> 18806 bytes settings.template.php | 6 ++++++ 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/chat.php b/chat.php index 9b19e24..63412a4 100644 --- a/chat.php +++ b/chat.php @@ -47,22 +47,42 @@ if (is_empty($VARS['msg'])) { //echo $searchbounds[1]->getLatitudeInDegrees(); //echo $searchbounds[1]->getLongitudeInDegrees(); - $msgs = $database->select('messages', ["[>]players" => ["uuid" => "uuid"]], ['messages.uuid', 'messages.message', 'messages.time', 'players.nickname'], ['AND' => [ - 'lat[>]' => $searchbounds[0]->getLatitudeInDegrees(), - 'lat[<]' => $searchbounds[1]->getLatitudeInDegrees(), - 'long[>]' => $searchbounds[0]->getLongitudeInDegrees(), - 'long[<]' => $searchbounds[1]->getLongitudeInDegrees()], + $msgs = $database->select('messages', ["[>]players" => ["uuid" => "uuid"]], ['messages.uuid', 'messages.message', 'messages.time', 'players.nickname'], ['AND' => + ["OR" => + [ + "AND #regular messages" => + [ + 'lat[>]' => $searchbounds[0]->getLatitudeInDegrees(), 'lat[<]' => $searchbounds[1]->getLatitudeInDegrees(), 'long[>]' => $searchbounds[0]->getLongitudeInDegrees(), 'long[<]' => $searchbounds[1]->getLongitudeInDegrees() + ], + "AND #global announcement messages" => + [ + 'lat' => null, 'long' => null + ] + ] + ], "ORDER" => "messages.time DESC", "LIMIT" => 30 ]); + foreach ($msgs as $key => $msg) { + if (is_null($msg['uuid'])) { + $msgs[$key]['uuid'] = "0"; + $msgs[$key]['nickname'] = "SERVER MESSAGE"; + $msgs[$key]['color'] = CHAT_ADMIN_COLOR; + } else if (in_array($msg['nickname'], CHAT_ADMINS)) { + $msgs[$key]['color'] = CHAT_ADMIN_COLOR; + } + } + + + echo json_encode($msgs); } else { // Post message if (is_empty($VARS['lat']) || is_empty($VARS['long']) || is_empty($VARS['msg'])) { sendError("Missing information.", true); } - + $msg = strip_tags($VARS['msg']); $database->insert('messages', ['#time' => 'NOW()', 'uuid' => $_SESSION['uuid'], 'message' => $msg, 'lat' => $VARS['lat'], 'long' => $VARS['long']]); diff --git a/database.mwb b/database.mwb index 7ef72d257c9e766ffd174f328ff9e5f56b4bee6c..e75556d187d95c7dbff4ecda0675b80888357288 100644 GIT binary patch delta 16374 zcmZAe18^nZ7c~su8{3+AVmlMtn%K5&-q_Z}wrx&qPbRiCv6C;q|5MNR*86rJ&gs!h<&s=7l0hG;tpKO#Gh?H9BM%yZXX{zhXPyK@5>%H z&qI<3_nBL%N?!KZ z`c8hS!&*=WJtOIDc?cueIJ9o4P=xI$i-nG5Ot9ZT801&UZ;5hYARdV=@beui*nySD zUwHin>+;1ocUYjAMtrCt$y7pdVOSx(Jj$ymucx(V;X9ohACoxa&h8n?)* ziNivIqIAMa{5U5*TI@6VIv@9$q%Juz5J_m1(BN%u!!7oj1d0?1kpxQVkoy!rZK))oTf@s!*wFdiX4DuqyQa^D!-Gi6D^E(R2}5rG(Gc-6fl{wd zMu~WOKQ?^fT_Yqrv#Xz!Gz{@|Py0?xalKDfTWkc0Nt&KGF%rl!;WLK<>4?OF4Ch1U zsEDZx@z}MEL@g5K*&Xp5Yi0RFNhtM8F%<;K?|3OM(Mo|sp$X?V;DgH_rPrHEaX;scV2)~MKagvyA=Hu7cBed;2x3!>)8FH5vjUvLTjF2Zh$HrkvB}V~ zXaf&YcWkm1nWsk7Nx2joN4GIInX5a0srmNimQ{tzyD^-{=HI2bU5VE0Zd7)9_skZl5MI^c#k(ks_aM1K_?)Tvy6SRV^>6=5ls8gR}9vW^VJbDoQ*o2^F*a#6s zcUpdV<{>)mhPd{;`3XpxW`Hmn+eU=*qz7H%KMS9HRUx%f98+}Vp}~#iwDei)ou~c` zXCsJixsd0GXP7PT`S1(sTxdeW<9R7w-+DEUyYy%~ilL?>!6c8tJPdhi&DhWHybFT( zM&4F3Avbe-6Zdw0>-^lcNTb(dT&gRTXvV!sSwkCWzo@M0ygmMb=BQunXiB{&^+isl zfIJ%5``*1Pki(F?Pq#Cl_H2bf&bjV4~Ir>gt0D1UkLheQ0 z6nz$hg@2MInjSyNeihg9k(bu2+lyCaNI>g$($xg3IEW2Ymma?|KKb4sms_*h`*F9m zG@N8cM0uhhOK8*Jd+0rAg}9ctI}Gn$2J!3}Vk+@nAR3B7+T36iu9uNNn6cZM!il}Bcd5_1-kZo64&BuCV!0M? zK$;|U_w_57s!mInifU`bR{@7V(ERW&8V7hFib$iNamufr&z?0mo@v#j2D{_+%?SNM z$`15oZ<+x49D64{&c8u&^?@izS*vjqLS3p-+!@_o{9UD6=SU_$e$EIF7q3Vi_N31% zzrRqU2x9)S`EC>Ij%jML(t2&uN@~0t`+-xpF#~K0C#BDBzZl33XY+IBAXxbuEAcHo z1Q11@7Tx>KLhD@h^h}5CsdoM$FC7`slyFmDmOXjn>$l#r&?5{QjG_9u&mZZBT2Tlm zT%ri++;9@02C-thsw&0sa8bbv-<__?g|WG?=3+#;>$J!SXQihbBfi%vp#F<>?KRc7 zeU8b5jp*!Yr=5y8z3BbJc*vapa}0t~Ehse82Uk_e`+W|&`#Ka;;7zmBe{YOVr@SQT zS*b4ue@mUagAEzPKKUCVkf~F!9};e+?sNWD<`m+#G8q4GNBnt56@hQkY20Sk+kD+f zp-2O=Eyf6|a{+3PuA`cz<+H$vAU#fG<(j(zLM&l9gPUbbpK&^ryP@Sz0=Xm_Qac9y zL~%S>05?k+Dec*P(P}{2PhFGwOzDQU;Z^7t*L~C%e8o`^>G@B>{C%{#THC+aUKjoR zP?o`n(xhEP;n3`kLH>sg9iah+2uq8)5$|-Ydw@@?zFso_zsN?tH1)ZaqgQuKj9Nz! zkdxMohnPaV26~p0uP307$5Jgv#)qUIstO`N%_Nduu;!1^VN#AKbCPmT7?=a&%ZZUl zYi-Bl8)j>eyP4|Cd~pJh@oFAI@}H=Zi=DBOUr~-P&0u;j&l+St5$f6C6+0l}TqAqp zkKa2dX07bB`~$DL=X&y@6hXji1A6zhN)5kU6lU*-!^6weQ6=&+64RL`u*i=u(?cA? zNkytIF^)_e_iVUWM(+=qhRPf{+XNo^y4%LUWh4>XSg(>0qhaOfMWJDyXjV*PHm% z+vS`Vn1mau?X(p7@t`;^n&bm6=IQ$6z&WZl?X*IQLhPO`aQk@w&1oGM67VuZ9d97Z zUHx1YyVBd2AQ!ya^!0i?{Z$}%g>-lMKhVAo0`KOT?W{e6z@`+w`Z(?cAMhrR1qF34 zxC0U&1&J436Wyb;+U`fbdm>{f3VJQV&XZPMV8#=sFDd;9IhL>e7T<*zLLzwAdipAP zkz&e__JIJYspEJN^u}HG!Fdy~+s%V%{<`B!?Jz<~cp9*_Z-R{$3f2xsVg)&;~E9fsB#EF6HI+e9%HZ?H7aCi3%J@&O^& zl*86{&AkPL#|t@0)?hXfstH>kyYKz{`&g^b^YqjcAuhjP7GSkg<-!vpi8Je7SAv&( zxkf31ZG``W-_=h--!oAfV3%Em>y*bR7G*d(VHCdYqpOWmvZeKbn}9Gb&xjWyqJ;|_ ztXbe5T~|0w>>xwe;Yz=S5GKW|&ox8~+avREnqUZv8)j-luQf&UsPG%&kVD+Sb|%Rm zm!mk;+P3}jxaj8_CAZPqGvFu>E=lYN1=a8SgEsmF#&NdwC;r7jmGM1Epnw5vumD&Q zDRzKaQKb=p0x<;803?CLSAGL{TZQtY2^Ep&ygPUJ=1QuF46Pu(kzY4s{xuAjOk(+RUt(rQAhOZYO!WYkBfED-8hF1eEfDq(ee6l zQI%;MAFX6|?^zAN3Q^F=5c-YWIuDc;sZLQ!<(*T>YgYp*T3T6LXlLwQ#FIZbU1-v{ zK0`LI-SX*qakv09=AZ(Pmv18;!PITuX(QT=it6ojI_{k10*Ar~)W}ZLwKtMu0hUoe zxz{6SCRQqKq&s&Xt*jr}E*~*dENnUCu9~A8I#0G^)#v;QED+o}6S-nGT$-sU|BN$h zLBAD|n~;M74VG{l(8R@L#-t%4$m3J+e^r_2fB5c=Nk3f35z_)2(1>Xrm4q$y#5EwB znc`D8;ZQQ<)Qk?oFCus|55mc-T?eTk|Fn_v7`c^d$~g>H{S4_t<*}5g;+nDqaU!g& zg?I18YJ$aT%HTIzox*oH#T=&Gu8Px1B;tf0bjX9~)Zf<;!w>v5kp2TZT0bV@RB)qq z*X-~oSkwt%vCcv8d|~1ktd!=_*ghB~Z|=zVBy>lJK`?>}rX65YnXR@h`B4#Ha|(h7 zB(91!OLhlU4O@bd^HekRoppJY3O?}CHAvo{lHWkjbMh7TQQ`Wi)T^J7tNP=79q#oF z1SP0nm1{}`)vqbLT2s$)E!;fhaqP{^aLlU;Miol36y*HkEBxP&|`eQKAlM{I; zgB9`Qz6;D9N`a1nG$UBxv5#y55+d+U3(gD8OQsq5ZeI~k26*gRT)itgWSPTdQE5R@ zCR3lIl*mlR7#LqTl%|peIB&*$*u^oZHHExVg1ivoi_Y8a7Q(zLRPm$MTQSZpFG32? zkB12mE|DN{Xu?sZ0=})n`PG9M0dHDRe$0gcKY(9K-&Is7o%gmi(YDa*wn!5)lFDMo zLw{qX7O2~|Zcg>0eiiyP+FMFciv9PfZ5rxA#~O6zdP1ii5&j5j6EXwE=0JXvT3M0} zkqx+HrmNE2VH5I$$o|=9y@>s|vMrHM?T)Hk!`iOXU&XU+G?MIQL?jT}d}2#Ks$m!V z#wms&{e>E~C(bGqQK$9>VadU;d*xayN4_?JOJz_?KTnJSddC7azKA=wM1T;-8dRoe z)|AsA+LEw@&5xz}3fII}f?*$B+n{@3wS^aHg6 z(%41FLa24GakT@I(Z~H5TZjB%g~Jp27zaN>(xuzDZWF(NognBQOp-Y6O!OT_2rWaR zxynzp_S;Zc7v!l1ghFoG=WgI=lp;7J6f_Hy-{EYDg1D`hnhpx@xlUSKgZfS%&*5NS*;-}=JGJ}MS)Jckf65eNq%WZg9k2##<-1o@hQlI zhY@gZ;8=hfB|msIe~TI|Pz#X_wp1z!;G>F|FHTIjCm6F$MRiG`pE71CQ}`R6#zSTR zK7tb{fq-A{6q~jrMa5}Ec@fSYT5EL`v1O^Ofr?A9UD`Y#?_4ki?X*uOtzeDMm0Q@t z?Zhd%4I1s|a-^29+uDSXK*Ddw;&HN0SE9U}dKLm~>b!QhJJBGD77MDJ#+D@$GeQ*1 zqZ89q`^>=oH}^m2U~gvz7AO(Z=#tXNVeo?~T9)q+B$wT}iMK+!6sM4oHd4FDYMqY7 zqyE%9Y58eON^hEP18GTZI`~Ue&BFW;6xsm=?i!SQz`xei=OJ0(=gmkD!cIzc*ct(Zmcnsx?{p%}Wq5b{E-Z6SP?o!Ss$#H)1Ym;a z(7^m?0Kg3#0Eq+ytU>t)dH_KF0RID^!&k-z3Wx|1fc0?p(ZNxNfX~DNa!~+22LV^5 zpU+#lr$asAEzqw_!VV|Pc{065ybs&vB*mVi%cDpk^p|p@!OI<+!D0<|Sx*H`=+0IA zQv7>*XbMWIpByzR`_~<>Wa%bSotH@%p0IaP8FIYxY0bjfI=N)pRG`(Wq-2g#`9vZT z{m(c8FXbGo+#*vxSvPGm7#^!A73t&r7sTls5b9CP&|J_RUNlLq9X`8Mms@OM0swyr zozXWJwQtUByX-D+Yg-&&Om|qZ6cI`$()EvGyk<@pVQC?;DH%$Nw2zfhWUAh*aES%q zlwpCxvo)qcWX&XoEl5~>-lD`JsT)>yt`7sTd)W=QpQ27srr>8b!r_qS>;JJN>mD?Ap{~xkvrsv7gr_J(kj>Tbim{{FORaM*sZ?mMp zhM00%P{Es-h_pm%H`p#An2~Gjb*WnU!Y*(Q#PueSS-a&dx_hh}2ue9Yq z%olT@Fgr_ClDzkYqc-IXDK0}w?qc#$Yq3(cq(oYSue=u}PC{ZZN2S=f2{Hdhc9X9e z4U(b)n=;Z`rW;Nb*hZODL?D-D1`^D71b7nOkQwN8GR=r2H$&f+A*U_lPnUt!MylJz z&xk7B)*-hQt~*JPOX6qnoQ9kzFxd&Q*AS6l4Z<{&cg~8`FaJIl=9|ibi6-v+=dlv< zKqty>j-7EXH_8xvE?hQj>-8f)tcdg81|)2bkUUj09I`GnNhm&?Hw5z`Yn^I!p8-nn+msJ(r zCuSsU0wi$8bDinDFxC0UETLHN@$S60K+f^pzIcHhHc((Na9_TO4ph*F5ts!M8vRCh zaw~bkEmz9W03}DR+BLued^bKqbgBsS_o!l659$(XZ976mYFlPmUx@lcxK282(;yWQ z1ZmO^>_G?P6Ea5hmINNNqu!Nx{-(v5qk`DB#`||+$+SqdZS3!j_`92{IVH1hMn~tee07~_zL2e~d#53Q=%h`t$j=5chU9*bHICGh`8v!N zBO+s!Y91@{$5|1PVBx5;Wg8td2|-00CyT>6Z9|ud`UMI5`3OCg!XD>8u2jrvdMg@* zLKZ8-fQ%e7tcbcdHjx0W12Fcawa7@FI#{ITVVb1FVC-Lp`4`#$QMt|krSdR~J8x88I3dgHa`y!hPZ;4PDMlxGY_eq%78-- zhT9-g;A2@UA-A6$#U>;oq{{OHNAP2gXThi#V{V`v_MTXAlm1jH7I?1}3i3*npbYWC zQJ8@|E#|gy1A3V`bp(4(!heh6G|=N`q|!T5_k@S$P+Yf1aeS4`joyKx=l2fwOeI3Eqfits-c>( z&tOieVcD~(oNlU_A;7W>iLuEKcHECxCIl19?X&%NAvQD`7a8B}0X`foV z2HGSWrezcL2*wUkH`6?W84sH~Yrbn(BYfwm2m!@ZdTpvN=9{zzVNIyvNQ2R7hZ(Mn zUk*QtA*s0WysjZmsZr-od$f?`Hv5~?Mx*r`Yvs?EP~=pTA!&^^7MF6tq4&PAfzPO! z=FlgRG>G5Ye1-P*3Rn*P_KK6zyPY0TAJ|;P?V3Yx-Y?YX*;2u6M4@P&gwGr)Ixj3y zm3Bz=`zxmRxQsv#l$z{3Mh}$2+u_+wq;9V74>#`C90=_K`t5RiSEXmEmI%h%sm%lQ zl?7dbVQ?;GNGA%USO5a6))R$`*mZv-%wvUs|DbgfW>_$6Rg+rUPtnJ~i)O_HkBzuNkWqWn2?a`Yg=+ByFC<71m=$+{ z0BS4r2}vqgf95>X<|MBvBPx;rlEj7{c^OGXIpWX1LrFbKij(nW@b`Hh^Yo{lFgV~e znDT$L_{x9D0sjI2rPSugN~A~KNP#o!f_0NgLx>;<){^F7gBc4#&Wdz1Rbk)%Uf4zW zS1lL^VguY7{kLAS0JHA9V2j#df=-h>MR|dY77G{0pRL6^mVgDnqmAN`8JNK>}Aj z!00YHWx*YyuVPqOz~7;w0oj2snWj`u$j*aEaCLRfzM{7Sp<*I$viJJlgsq@dPu}cI zthH#8=yW8{ugYby0AexDwbO5M`d82ka~aY9U@eje=5&NxO8`rc_$qq)7tgDs{d`0` zexcvFqlaGgz47Z!U!I@MC**kj=?Il78f+B<7@xgN#s2J>-h0~BKGgQVd*enBWCS&1 zH?e}ipV20`Vdf&$rYgVa>*FFcIOd|c&e38AMQ*pc3TE^?0XMiE8(G*wS3`m#l#Zbe z0D50Xs-dnwd2)0!!dYYs)BmZx5&wk!e5piUis&aa3kN@Ug?JDxq!#{S#xT_Gn0Zv< z?csx{wPZfzlUqdTTp}xLP#I!8{5T4!kgiBSKuWORE|2)ppQQ-wPWSWSGMndVK=sc> zTGscn2SB{=eG}gKLgxhGBSNqX;w`7Rzb8RIFKqPp>OtQ0EQ~{-aX9THUfc_k;EbSj zm;&RV=u2SI5_35xaM2p#6mul#fZpO5Tw8JtiCZM}EA|nlx$s;-(_Gmdl6K4q^StZe zS}3he#63x15!p?|e=a8~?j*1&_Pd(k(TV%frRLgWP&Fr3{lx2-K#!P6?;4WhY74uh zQsdZnHNemY-g)}5lj}W|E|zP8$FKHumP$g>i^HP}nAcvpj&BAQt>633`F-Y$I#CTl z-Xg0J-g`%yM+h@W1Pi^lcvdu;ts_Q8`CFBgN7=c4TUFgMYikEJfzX^;wk*Eg(9s>8 zDaXO&-$B$?rXMMPE-lxua+Awm>@qg7BUH%U7y5Op_a`oPSvWhpmpLmbzPZh(wPvZ% zhFK6?24N}KI|jBZMbLr7718fg4Z1=WwY@S5gUJf+*ud{WYNn_3Ns$fW%JyFwBySV! zls<3MNeRVX592F?yzMWRw`PSvPnB#|oQ9_lW`8Y&Ng}n5!!Z}m!vX_I-FUwWeY*dx z5oG_*8lk3UOYg((A~YX7t8TsI`VswMf`k#!TSeffNqzwttFkTWI+}1wiO;FjIhA1L zehh-bFYil$!!Hjzl(hZMQ&EdiSLl{XfSJT9tY@U8Ll^nU&uh< zPAt(}mLP!3VMW3>>`BbPd0@eu`8SGzQ#zQ)lj@G=cMOg13Y?va{tJ~!A{Kn$1RV@U zBHP!l0dc`^vn?cvIOR#ZQQ#c_cNd@~e+(!EeHuV2g=ya|Yw&qYo;*JyGzdwoFA>iO zvFrcmyM9_0#tqQYUt}JjK5I@>A@Y|JB8e;&zpfVVZz+rdbQ9uha+p7Pm+2yK$`F=O z+$heMLg}kcLnW1@hz9=m`4<2TYI)D!?*u+ymAhvt9li6ANw=Zx(d=Wheo|;ngNRl< zOpyJ_gV~Xx1H?w?qhd`q^EF-caFE5C@_ujq;y2?|Ie0J6fSX{uYpSc0m1i}Cr6?}_ z1~);2otnNc#@10cX=1O1mAYctJliH&uJol9(EVa-yXAGQ4t0{+t_EyI4lGMhEDGGe zNUr^@Bk#ggK!QDp=RrIy0dR)rf$$sF4&vQ<@RLP^xyX`52s`j^-Va`pc>;RN#S&Qh z6fjm+3MA38zQ3VClDh_aNKi%k;1l*YV~Y7LD7%$XD2?(!h9sy86Bd4R(ZQE8##F?$ z2%~~ceM6alK=LqdstL%c$${e0|+myLvd_m%z)Ek?#B_q%`$ZprDdC zDy6^YMjvk+;7WTf_6MJnENGJhLLzg6a}_`Oz{b3tb3be${=!DD_VzNca>kKc%df-JS7Gkc{o=}e zEfk$nm-a+23vN`zY^RekVfVi-yi(Q4|GMyb7KJ}q_8n;XkB;a%si{eO$dt5jGNu35 ziNBtoCFI8pN>`&PCk0e=ifuv){L3Q2OYGQSj-~mS-+!LT16nnay-Pt(! zb4}H2Nv&P##$sUIh;q^(>$1l<7?KC>D=J(N3^3;hxIC8~QqFX=9KIvGF}R0SaA}k% z?Xrax*@J=xH;+LnEVXZ+pDZ2XdwAQB68YJ%Qc@=3kw%7xf3erD*r=N|uffT69b3W_ z==VHRauKRVWM_17qq6U^q!sbvX_?5H-N?+k|n?0#zmd@t9hUskVlK+0=a4lfj5geimc&qsvD362|aZQr?P~~+Ky_Q zOsdA_Zk0<~Qkw2fVzwPlFoW7S(@?eo`Wn;#|1VMQn92RK)$;8bauWe)R;r=bpK2@42~&&jw& z;o@(aGd-aHqwWj;A9Wuo`2VW=Va9s7^%+H80waG4{03P9Y+wITlEiGS%Srqw*;5oZ z``%{+OR;C)8%-&qxO8XIKH6w>3sO=-D2hpr$*~e>EmV_MOLg-0zpa%wAi6sW#&HHXiBntddQ?ZQ)6&A<34}4j_MjRD^Oi^Y z5vM}KQ49V*w`VEfZ%@2Zuf7+}^x~}lQ~38H{=W*pchKJ0rleUb4;Q)v>BwWssMlm6 zQe$`!@gxJ&yn$ortcAup3A953pVH6-JMHqaiG!yLeBYckL&pK$wt!<`Dp{?;Nos*fC6S>_!hg3rhfCDTAp}qS<6q=$7oA`4 zb34nRzGWTOX~a|t<2I}H+txY)Mk36P{`xn_g(|qoU&qGrZ_PN59J}fENWj*x@YpjO ziZ@cjqxe+o-bZq9i!&E-eG2{H2N{G=4cC!n11WA1vnId5z?{MtM7T3EDV z@BP{i1&2$Ft#(3G{?dYTtN!j3#8=@kz&wTC^C}c=&k3j4s>scfi;cDB>eT&KLD(8k zqj!~=)Ic$Qiej<=F7dibeN}#-fj7Wo8^&K=P-mvo^{RQ?=3HO(elA>lBO3jYRY6x< z)K?OU42ey}JMbZcn+8K?diMbO#@jg3#O}F>Ue-0%$mG5xmmQGKn%0PDZ|7wlE-5JT2Hhxzawb{U>p_XMiteTkm9Qx zfG0(gWO*vSco)a!eCIJuwoz_T(9@ofQu>WFHd$Bh;8z5XYi=s0}T;9C;=K377DyR^}W?PM*kHfg6J8NzQ-+PyL zo=+~G+ELXT*;6M1pJ0<`R~S>ec%ok>wA5&~qzUEE)N?+|Z)d#^AI(~^PZ@R3Q(IG+ zpKU&$9qSvRs{>T^e*L}H-&(M2di)-zT@z=?)+@SaQdq18xOu3?Ee(%rX zxH~^z-b@{-^{@AAtO%vaz+9kAPT3`Ud6Dear-FN^3v3!nAxF3)7^)y|p4cO42fGK) zp%3$fa+VWZwfJ0~z8u~ths^kXxZI!B{>oj2tn;1}dIY3`zGJu`87yd0BllUq|C7ex zq3fd1)BTq*iq&5^vO+yTYxZ%{fA)i=C(d3U)I;~#-ueP`_p1qT=oxu)L7h%H#?P`A zvILuR0^eSjSrppAAE~0?9C4f{;VjKRMaTlZ{98M!JWKTdNhQFRr~l#ieAwCo+{{5- z73v#cxkT9p$qg^?5|rn>)a=TXYDm=CwzKuCDs;WZC;j?!=brYH>(Ko(vZiE!kI< zwWWNn6m^?f+w}(3!FF`^t!yMnq~XGz35g|EY{cON5G}nUr4_$35+oMukwTVV{*6l+ zepII%KAcMlnaHn#EWX_!C$r5+N7Htk&Cb-LbHi6FUX^y%Bu@diuqp0ThY%2HSUkH^ zlt0L1FM(FMXdt%T`@)7D8rj!;K)XU~F4SQ9<6^u-9@_I%>DCM^d*;w6jiHoHT9>Z@ zS1zmuM1q>4Uej*qM!@PfvAD1K_lK@$r4sB|$E4=KQp}9L&)mZA=#iip2@hT}#R6Uz zy%#|PZ5{=d&^kA|DuFyt$` zSY@4@A{Bwy+Nz(@(Sn6Yd5XVkYvq;86Yn}BL7AmWJU{tk^OWovw{*He@0a>aFQBpt zwRflc*FWN(y36IeyfHuI%Ug18351IMJRf)Nk18rud{T4j7_Omk%c_sMM(X5={MK@~ zO^f8-*qWuhsd3&)r#{fDBVAqwo=lb^*yOX_bioLPa_yRq?rIdM%<>iXO)$r;bA&It zKv4XF;@!PI-uG*-!o|YyDK|gWigAx4mrG?E3&CviCGJe_%L4449(dzP%jRd)d$CqU z<3oOA*O1nj>EiY=ak0w&TAPsMu8|Xa88Y6KSAH+Gef}=toag8FxN{V_dVe`^Uu*v9 z@qY648D7X8{1h3B)c!1~`1?S3ETL3C1NzkqYEh}@_`H4zuEw$WW5{;K#%`51d@VQy zhqo=;|D68&wX)TIOV zkUgbyI{}~fnsnTlLsQu0J)KFpVo+9euj!aamVHvAm4c7ehye3B^6h5kh~gVl6+3+6 z$*b+(gx(lReG>LW_wLuuFuD|@S?|oq4^f0)UC6h&f0U0OwcB-_%+(n8y}+NWlc5vX z>bwR?6OTbAW=H!5S>+xxoB9W2C^?WEf1||=9+fVGbr;fg-a`*e#1(b?SU>}kWs;#q zDn!cEmq(ps&rX?#R%ufoso)8wG;5pZo^l3?d(8}&kH}I=I43zT9KjWE&sR6X(k&F5 zKLG5JTWucklw2({1wBXT*JkZ%2ha^SjuR4E2_{bpP_a+{+v!`_TNzgT>+Nos7XPI_ zIp=Tl_ZGAY8_($HvDKJU5H_w7Z|FF!e1w}6MSIeiZiUAN)YyNm>rq;}jhOB75LFMUmWxvX|9p%kmzb7_J=5Yvc676zrS>02jiHjI% zUSWXk)_{`^5vE3ksjLPr9TRD{w>LI`UkfM%6ygRd0->X=h{Xv&SQHNiDkutlW!%g( z5n|amt^z2?R*67Kpd>qZ(Qm=80l5gn9H3MRr<4fs_C!p+uUpYmVYFw~>Q16-~>4d%p-)DAJw@MAv_2VSs-J7EG|GAQ2qS|30Us5bLgi-ri+MzI50utPR! zknzquPH^0}K!K{s#Sf(WsxgUG&`~P>A`I%!R5979DnsQlvh|5U(=gtNQ!k+3|inPAxy6!y`@*+DJ!D9VUtS&)kZF9hO%*;O!$ z9E9{RFqb|?Xu&l|3p7ubpLG@Jv)c%$#MR94B^;vr-=~q0EV0{;UZWk)9SL&33*0&6 z64Ab=wCY<6w0Zrpn z3`_xB0c5R|C2m}i_Hg5N4ojIg?4=WC#+er$77Q5<5ilZxb^3YShnNJm%2@y}8iZ4g z7>*T;JJ0zmB^erJN+_BlD7-vPmx)l~He$O6n*cZ$x-ch@0!9Z;XRY8*0sgZa;$jss zwr(<$fc0kg1=n~B8P&}1*tnp6%9wv?2M@Lk3AD65S}*4?+%9262LBE_af;lR9>voH zVSMqaTPJF~YC}Tu&0E61@!ZbmQ?woE0p;;0oQJI#1IuXH&A(`9fyU&}a1u$^NinO3kwSQAj9Hi=#k2q!Ivk)R2S(jZR7B*|V=d6uj!DWF$9!oGzVE35 z4brAFp+l%Y3e$7M98QZ9Aqf4>7+h8FUOhepe#%SYEY-IuXk zPpqK&A5fo^`vRXg53Vca%BJcd$nTeTyIYo(vEIoSHR~*_PFIl&;UVWMW1`Gwfv7W? zx@Ez!cKc8?b3qSY`JO0GZ2Cd+@bMq8sw4Zr;j()zwk6-HCywX zy|h^4M+{gMVip(?ZM6-ggK~KE&-_p(b^Gj^PDEj7bkEH6o`dl)4&ge7YLoO_m!9ig z4sFyWSr0IkDwl626W0+dHzSwW&FQy%wqt!+%O=y{0Vrv=h=*OSc3hYB51{sgChV8g zmbXROXJyvEtI^Lnd%{eI?B8x@<6v-Z5r?xv=-G~nd=Ink+N!PnA|JZ=WqK&NfOMX6 zsa=wMkTM@ZGR%=#^a)}cW_M?z6Pp6 zownBF%}wwyGc6aZqwL%)F;Ep<%|J$`ivqw}FX+nvA}a{1am%3N@5L9rWMQqn6X)U}rud6)-+Hq|1mt|$To19>$aaK~o5%HQuPFyl0o~1>>4-hexxyS9wyT9n5oYt* zu=`ddr)m4)Aj6w)CaCb%37S5Nfyou;R@95GC|TEGe9lO`4*TM$8N%34!}#kRjspHR zGi_(Kj-@Hj^KY$(8Q(VidCNq5&d!j`uQsK>YzHDzYTR+JgTDSvGSqm+N_W)BA))=A zr3~Jc5IESSCw0(=WS?Fb`!BLo-tgV1_=(~<15W>e)Q;+BBg6fg5Uvf;p*+_Qu5ylQ zNOgYO`o_bj{n%;M)Rbz1)tQ+dM{EzBSC``x`PMSh|4~?hxdWf+JoN$dF zsqatY!OTW${A&#LR+WVWXpeP*_RWx{f542_nx9-*ayA)L3-r6Dr}dLZ1beX)6+U4t zMsaRX`@KrfHfDY+WCEo%`tCqYka-gu`kUc10TWetps^P+$6tq}nc`Q6So>m9cNKpV zO@Vq%5-1BG2OOhdKJob4&zl7Kz<4KFW;iaAU=|Fo{_<>L->h%30xZto=}|4G-C+;Wi_qqkdzx6PlbPi?lS`=ywLn zxvxs+TXu;a>vrrt6T_RSG;e4`EHFNYRhY}145n+>93zw2++<|} zT@A{9ys{-h+tl!UCQeMqn@4dm_atAR6#g74*WthRFmnUVA`G~C>c73)s8T&r$69J` zt@1-Ht@^*;Oc@a}+kfCBU32C}ZA6S`qRc`}$$)P`-EK3xqWtwXyx9l8tS@w!bcn@397ec=k!i;HGBbgptEQ;>Q zi8V%y!YxS4NlW9Mf4hgZ-V2(k_Ejy0ZQ?Ifp(FCseT?~ZmIr(on#FuNabAH0b_J%c z?)b6VUp(EhW)f8F*Oq;@+F4tCPxI$XKez~yv4it7`P)vaY5a!v4%5XJ#0p42QGaVX zhGKFcufxe+h_dnMoAIL?FCuL5>cpYRTUI~Kcya03{7%N`ww~t5n;eXP#N^x`97dRCe)M)UZxs)-j%>vPjIb2?aA8#Lwd>Pa0{< z-#=y|t5#OZ+?srd8t3JNng&Su4qlHAvZixOHMx~E-5xBt|LT}@sTb$Wgr-bbbV)2@ zvDP{2t1x)wihWwrPh6DAIZ&1+MSK(-WTqfF|KOvH;3)6TGJE#WSl7K$_L^B8@?oUV zCnQMUIS=dBj>*t7Plf_n<89n=q91m&KP;UIygdyjhj{-vQ9L&@0DU^#=3Z@zbE7PD z-W*K*y8HOms~=-@-_680lW+T4RUMUpOYQ7h8S`@Ck+CIzyY^ebE=#k}@IEDHLU>o$ zK?}iQ=HJ73Bqgi-va~q&_##MU^pY6jK4Lfw&^bnvh~s;$=aE%y11nrX&J}dt3(b( zj5WWw{on~;`LIBR=x#?Z^h1R}4UY0zgBP7<0-ZEEDVb&TCI<$>W8@fq79VBGtT;Y3 zzAHZ_UB4CVc8m(+QJOzzb8B~5((PCNDO_3J&1v`4SbVYok(SDty?{Iatp~IO_J9^! zPQ(wMCrkKGyhl|meUXj6K^UUYsT-@_3{&ewa5W<@%1a2u-TDxETm92VEJb~Uy=C4Z z8-zd?4G(J~5|7GFT{7XZokiBaw{r_tEqV>E1mP3|cP2@3!ty^b;UcSkGHyrn`J&U@ z%jKr7^n`sHR?JLbP>kp|m7Ixr{Lq5>_qZp;k7}u>wsTZb>ONuqZcm75_IxXi@=kv` zwaI9558-?G(=I(mHu77xQ|)4q?Zb}MR!8T^)6-2YW77#{?Z?e0@c*&ee_8Sye+Wpz zBL2U;`AJcd2d(|KFn}fGTN5k_i0ksibR3JRn07q7)&}J&8_A G?EeSQ19+zZ delta 16445 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 U?n8Wh%08}6pFyBR4jHlk0}px1T>t<8 diff --git a/settings.template.php b/settings.template.php index 2927ab8..596c14b 100644 --- a/settings.template.php +++ b/settings.template.php @@ -26,6 +26,12 @@ define("APP_STORE_SANDBOX", true); define("DARKSKY_APIKEY", ""); +// List of players with special chat colors. +// Server messages (from the admin panel) are always special. +define("CHAT_ADMINS", ["admin"]); +// Color for chat admin names. Accepts any HTML named color or hexcode (#ff0000) +define("CHAT_ADMIN_COLOR", "red"); + // Admin control panel login define("ADMIN_USER", ""); define("ADMIN_PASS", "");