From 82fe29ebaadac38b21fea305890eeb59a376eaed Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Wed, 22 Oct 2014 01:25:25 -0400 Subject: [PATCH] RCON Username is now tracked. --- Release/Plugins/RenX.Core.lib | Bin 58474 -> 58936 bytes RenX.Core/RenX_Server.cpp | 10 ++++++++++ RenX.Core/RenX_Server.h | 12 ++++++++++++ 3 files changed, 22 insertions(+) diff --git a/Release/Plugins/RenX.Core.lib b/Release/Plugins/RenX.Core.lib index 4c7941b54855f26b8165a638faf9b4b4696d419e..ec741b20dbe3f90a889b207d233a2e730b7b2455 100644 GIT binary patch delta 6218 zcmcgvdr;M78h%uAjg$vEYux2iVGN&y zIHZwM0!W-J)!4Kakg#>pNJ|7HHZ|2q^#dd}WND=4a!nkG&`3{k1=1yGL?W+TBdswF z5h)=Wr8Yn!YX#vBoS_qm(`PkG>Hvx2bd5W=m??2;utxc6K;lV~#^a}eM8e}?{6Q2I zX`G@FiK`U`zI+l__G)C2nGBX>LkA6OKA;f5Cy~2TW8X|bVr#NSUOOg6?4WIloL?0Z zu;&>Rwqyem**_SJ;FCDO8cG}t)7VKWC3b}x@N5^co&6xOqp!xEfwW5;{7qxqen8@I zltxZ40|;jQ4;5?dW#kh3TWRdx4oDmrtFb?i`@}|14I9rSGPAiRtrEgZ<06@mIPIfR z?n?TJr%X=bR%4B$39QLc;uvX?xH(PZeheUS@3BVBZa|?EpTq-py8?rIK-^+4NZjtA zkxyNTr-2%U>43zEi5i8?xF!2&c#L2cA zk0>i~Ax)z?kXMeleO#m98KCebpTu>4g#=WQQi{-&XpK2%5%ioaT;Zp88C5= zO)K%;P6HP{iEooMDz^g?*Ss{Uy3h|%!IDT+lBvoL-MFBT#I+oa+HwvR;>HL@$RLi< z=#A=vDwqCUn~fO~9`?bfGZu*O4+F*TZ@M~f3=q{5g5;(MSsGN3>etcBdCCR$Hd8JG zz^b*(k#YXGp0|E8&?b|u!~=K!zVST}ON^~0fk%J^-vCR_1HWA2MXcuj9l+%Z5Xbcr z^6+y$aTgdv91<*63JZ9Wb958X#Rep@APG&m@Jr?B*udM#X9Nwqrc;P0C;5#j6hcK? zDX=1ofe?vjNcd@>jvS;Hv%Tne@F`$5xk-A$wt5T9y9l)<7{n;Mg^ew;-yhtO6Uk(6a2N~>6AaobkL@W!` zm+}KC`y0>pZv&zZ1HsfUK1ADlfmZuD0d|ui>gVyd=SHr{Kz1f?c@h_1q$l7a;KQt3 znZ*xJnK}D;^-%_O448Hkh`G;sc#k)~2IxdoKcGP(k#Zew^PF@CQZKy_n0Nwc#;0!? zFn}z$k-at-Sc(!}u192yz7{_O+9t3bZMc!f!$8*XI1N230KO#ruQS>z(s&$bPL!OZ zQDWR#zLIEo7=zjQ9cxY`eann0naDNPmO4Ha42tXReCBYkoINw*25r!$3lpm5?@o<4 zk|w;{P0SrWFkv2AVFi{W1~c$AzQO{0iuw2wuVNAUpcmdm4@9FomcS3bSd6Y%h_zUQ z)%Xiq;4{Qy3O~UX3fiu_XQPX ztZCXp3WABK{b>5=aSXl-Q*CvoUfD#O^ML!oD{V#Pcb?)tvjJ)Z4viH8OI~ z`@FInoEmEPrSytZhv{`*u|@pZ=JApYcPQBFa1qw-fuiLWH<4hq*p)281bEqI0yF^) z5KhiaV#n=!)>P%pe}i$xwQ|&%j#|)Bqmf?XpUIuIle!H`xb4O;wYH_JWyZ#FX31PK zR4zVgW3`5l=45ADJqNzcWgh-C?+zD;L9;rDsA3DN>D1lR)tW*pU1cia zW5h~(tB?}$+kTzvBnot+Kx%kc!=}}|DLy7r=5@+E2p=V4cbQ16yHq~KyJp*?u!teM zRb&%(*XJy`ueaex8&lejq93Ph_U%zRC3|dkJ6>Y;Ud3nPUc;5~)pMWm6>&-VzPfLr z)-mh3`_0-UsCrE%7$AA{ULZX?RnyTKB?p{3V{EQ+9-EtJ56B{#98^Ji9W;e{zFYb- zv#DL5>lRt7>4%i!l0#OzF%@~>VV#*R-6FP}@OV*PyWR}6znGubTHJT@5Se-UUYl$6 zah|zWa^U=)uZ-5^MQNjQuf++q7k?yL@A0~-p3m2pNpL(UI(pK}KuO28MQufRrMu1Q z=`cdWO6VO51!LO z_>ZyUE1F94%$IP-z5F zeVCT$AwE3ux(dfou9{L(KAiRkj_)FJuR67cX{f%1rlCyQlF^#NP@R@fwPJYONt2dg z{MJdsIMbB!kwx|kU#r%xr)EI0>Y$uj!L`K5IJHbhiEbG~f;8RjjG3*8XOyYjGqKu~F&$FsWSR}qQueBB zkns#S=%X16Me19vMcq5@!cwLgW`Vs#WSI&)uFPp9wm7RheI~U(6c5i@MDSVT%xSLO zJ!|HgnYOA@W2iETl`5VzR6IIo2r@5dCD5G$k#Mm^wiA=in^&TBmqldi7kJ+J`q80A zxR=aA8jUhpH27br?u_xk!Q&<+M^bW%k`$#eo+7%?ytP?#b$8`UFa(&$X;mD1?sQ^qJuuXNt!;YZ>h zSEgzmUR^4$fE_~aOHR%nyIPM zk~RHQyi@hTA0I6gSDrgkvr1|$lAlELLVAk1Rd$kVbR^+CT`X#^&(bzo80AV9<}QJzI1MC<>(v$!;o7<3`<`8{0+3z4oB{kk z^=$_^WIzQTAliT1Q6$#*nd;SO9a(^t)R{bOa6_YJ#wf#~6k0{0>}f%NWcXoCL&K_s z((u<}YK^yu_kS+lyc!)+xbVK;*)~Wf>-36p{=!>Lr-P<@i=M%~8wxqH8vR{E=ZbCV ze63{rnt$8>_AgoIG*PL^X|j%90%L|dQj@tad!QR*6a|tf5FZoVFofp`T2GK zJk%6-rG;c3{wt=9`01gkyd3fTw@6X-It5b1$VWqTY50Cpp@nhVO1)k)28m|1rf2HixFLcNUK2gR|%zT8TXk<<)A|)wdqM2DCkQo&cT<+m5 z3i!kqidRxm0UszT;uQgv6jRK_xJ;Q=tJP{6XTJNK1HYd=)|!7N*T-MKbM|}hbMDVW z_zR@M5VJR1kyJy( z#JebpLx`C5vxze95*5J_b2LS9>=Y4m1QlayS}O{jiI{VRid#iQ60F?xr#H$hFOmarJ*IZ9~B8PL=rem0J~s|$@Nxj3?^dozE^C5Z6?bhiK1;4 zB*|P(#B3!R3Q2|bV>q;VK=K#fywM2}#r%1#eld&AF3Q{EA#~L{DgW?>5V(O6yQ#nFm zM^%{vQ7Fv;a4AVqn?fW(bhY5>Rn2TX!HqVG>nJ-@xnFTPfQZQ-t+*XZ#2gG$d^MOz zave`l{74aX_-XVV6x~*wL~og6?ut5O%ao$G%#B>d!A2Mcb$*IdaK=<=E~ARfezaHO zk0-c@WSI*115s2EPm%-Qpc3GOO>rDiN<8ocC7FtAXc6;ujb;>{;7XC=LKP8n-d9mE z2aZ7bEX4&>i7AInc@>7}e5K+hO2RlI5Fs+NUqwsWh`Dch**iVivcFjI_wlxfcJ_vW z!7irjYvl0Z`ua*IqB&m>#jZmFaYSKhL=UhS0`8^~wYq~@sV9oLiFw+Gp~dm?J4xhm zn&=k<6H`qz>I{ar6#G~!%O`TbLbMi%u0c_3C{)rRqQDfQpRGgz$vD2X_=|6ua6uG} zXI~hugFql0X79xvkVNDH#gJm6+3OKV1{6`Ll%r_ZF$8&ps5Klo7vk8T!wB5M|ASTN zMEqgMV4d%Qxn-C~1Xl(d50Kc82q-22?Q5L?;ax=Dn2X?zMBnE@X%niLg|crWTF!0T zK;#O_cM|p9jbJwuxoyEa7@I@X4)R?fTZz5MY@%VX(G~jEJ+Qr_)SiOKlM*P25=oGa z;xS^M&>C7u!4yVI(Dq2`L{HOTa;9zr=u28mizt@fq7aIsb@Voc(uWj5tEe3%({LI_ zLun~35D%xWHU*pZe-Ag6QYiiLpgo(S{$GQ(_wc>lMQrsNV~?1Z;AVd%a#DMB`aP2^ zq9C?YTbChI0y?1`ZNz`#p0PK?-f5xs9dYh0U540yifiAzU=cmzJMp4tyoX-&v0228 zL?R$2XxwR)>u`^l=!u-v>vr}iA+ z5SVF&KjL@?7m?@NR%}S@XJ{e-DfJgfJ*lLg5w3|H#rSMXlavRC7-sWR@1Du>y}>qF zy*K7t#EU}u4-_FyG8Ta}Snmh%LX#bf&~YwGGR0|*;3qs?~SFib} z={2@>Bu(0Kq|Irv)og!Gy0-7AmiFt?XBqaVWk|iCjH!m6wske5*_PA`TCd~cc|$p6 zqj)O1qgBHHxo+Z#Ox;SBn3yRo&&l*rmU+#t*2*%US8LHbT*ScKF5DRJ4Idh7jtyO8 zN$0|P50upEH$(XB>8k{+H(kVoJgH>exZGHC%~DFUpwtseyy2F zl#>5u7qL8BuEk`>8Q%T(DMNuU)EkD5KQq(t&PvyFq*7x}e3K!INZ%yW&D*rGX-yU_ zVsorv*qoL-r!~Wr7DrgIMR}eN&;21#H)EFg+g4pv7Kq%c1YU>000<26pN`N>vu3L3 zxNW+k`${ch(oPv(!?v)d@LWXrcA3W7?WWvyH+*unF8*O8s&l38y=sn7Q z5bTeD{RKT=Hn+(lhUCe(U&zyKG7V14y?Ssszl6O`a@v-{kQWTy>KFXmqGBlI!1GXy z=6k{MXMe*TAHne@%FJ*`jDeX;9o@y5eBC^K-ld=KS-^a4!gHqA5gwualuIAgJFCej2C(L5Irt+5z#5mO~#~gp99)BEA{wR z8m~CuXBhuija>6BculQo1eY zx-EN=R`iatWvaudVlAVG;dHU?mmV=WggjyaJcNxS`x(jbIXrevdb(P&NLkjN!jCt5 zlAb%B&{o4w$oI?>raRI5q|9{s$rxqBf3y053x(I$P{Bv9&od^UQ^w89?J7E@Q}(e* zqd}#*4f{&v`}I;o?H5!Y}1ze+|wu8kIdq?9WsA-bk`ECjpGtVwj-th}5b%$a3 z4c7Iv^cByZYyRO;y8+mJlXpv;CyNqemv20&&Q=$)z!2w25HJm?Zjtmo6;dIh`1}Ip zTc5M$L;MyJ>ovcZ=y2E+x*jGesn0(rEDnQd{G&wM?wO^r|vxZvJxq zEXjIdu!t`BozZxgci;Y_-4(oBxW=SgQtKgOnE{9IiM^K>8%4p@E4TRST`6W%O;KC= zWXLW4CV5{ht?nx#KIvl|9?szXyE2jdiREnk3`Oup2E?tg9x>EHqHW%g1O8Q5HmFum#4JA zm*;BH>*^n*7AYoNv%t8gks42WziUc+3bdmjq9wwQuXfxn^3?f3`V&5NoqfjrzOA()|9VehtsSUJY;NhN*wQUE zFUN?PH}o?9F5vr22FBlKpNW6o_@KF0&GCLNa_W8)?}j>4yw;n>H4@A57JoL`h?k2q z?HhG~UxJ%;C{EBq9|$~lji}+^l;a?fwQ#&)fj_iAy`?JO9|B*BoLduApxkZz14jnS z|HO(H-EU7+Tlk@n4VjMR1eoj`GC|bbZoc{C@1N9r6#`Z~>>Lcw9XxU)){;=8N#vRic$0vyF-arTlu14Y@SMjLn#5&@fMcTJrrQ`09 ZND>9#4%bD;R?E9;%NbkAqUYW2{{^^OHM{@- diff --git a/RenX.Core/RenX_Server.cpp b/RenX.Core/RenX_Server.cpp index e2b28c8..9317b64 100644 --- a/RenX.Core/RenX_Server.cpp +++ b/RenX.Core/RenX_Server.cpp @@ -846,7 +846,11 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) xPlugins.get(i)->RenX_OnExecute(this, playerData, command); } else if (action.equals("subscribed")) for (size_t i = 0; i < xPlugins.size(); i++) + { + if (this->rconUser.isEmpty()) + this->rconUser = playerData; xPlugins.get(i)->RenX_OnSubscribe(this, playerData); + } else for (size_t i = 0; i < xPlugins.size(); i++) xPlugins.get(i)->RenX_OnRCON(this, buff.gotoWord(1, RenX::DelimS)); } @@ -1013,6 +1017,7 @@ bool RenX::Server::reconnect() void RenX::Server::wipeData() { + RenX::Server::rconUser.truncate(RenX::Server::rconUser.size()); while (RenX::Server::players.size() != 0) delete RenX::Server::players.remove(0U); RenX::Server::commands.emptyAndDelete(); @@ -1028,6 +1033,11 @@ const Jupiter::ReadableString &RenX::Server::getGameVersion() const return RenX::Server::gameVersion; } +const Jupiter::ReadableString &RenX::Server::getRCONUsername() const +{ + return RenX::Server::rconUser; +} + RenX::Server::Server(const Jupiter::ReadableString &configurationSection) { RenX::Server::configSection = configurationSection; diff --git a/RenX.Core/RenX_Server.h b/RenX.Core/RenX_Server.h index 3b56d0b..b28848c 100644 --- a/RenX.Core/RenX_Server.h +++ b/RenX.Core/RenX_Server.h @@ -448,14 +448,25 @@ namespace RenX /** * @brief Fetches the RCON version number, or 0 or none has been set. + * + * @return RCON version number */ unsigned int getVersion() const; /** * @brief Fetches the game version string, or an empty string if none has been set. + * + * @return String containing the Game version */ const Jupiter::ReadableString &getGameVersion() const; + /** + * @brief Fetches the RCON user name. + * + * @return String containing the RCON user name + */ + const Jupiter::ReadableString &getRCONUsername() const; + /** * @brief Creates the Server object, and loads settings from the specified configuration section. * @@ -501,6 +512,7 @@ namespace RenX Jupiter::StringS rules; Jupiter::StringS IRCPrefix; Jupiter::StringS CommandPrefix; + Jupiter::StringS rconUser; }; }