From 3cec93c76f40586334cc4b00f04eec32689f5aa0 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Wed, 22 Oct 2014 21:06:01 -0400 Subject: [PATCH] Moved IP assignment within getPlayerOrAdd(); fixed bug where steamid was not being assigned. --- Release/Plugins/RenX.Core.lib | Bin 61562 -> 61562 bytes RenX.Core/RenX_Server.cpp | 33 ++++++++++++++++----------------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/Release/Plugins/RenX.Core.lib b/Release/Plugins/RenX.Core.lib index f86f70c11d9645b82acd1cbb93b67ed850bef392..7a19750bf2d19bd9ab0a97e0da851241ab388dc8 100644 GIT binary patch delta 3930 zcmaJ^X;hVE5WX%Ht`I2qx&o1!sCm`ndQO6gN-iL76=0$r)6_~^)Q%e1Vr6K^Ag-*U z5~84h3kqI0RP-S39ycy}atRUq*TGITGv7Pkef4nSAM-sk^UO2z&imd5XR`)pvxF{g z{Ra&gV28MD>)xTSgu4DKhzjj3|K`_NZT5bC#$Qa!@lBdpBBz8-@n~YPxI=AXCkRgJ zRPZd}OcUkqx5)>tBzn3L=rH&v`GPw<*1ok)@@yJ8rJ!q4Pw{YMSt00&H(Fuo`gau+ z)54wg-YqChfW=~I0N`2Dx#8W4zT5G8Q%iHm=nw!Y>)S$la(fMRG1))` zBB~jqIzo#L-8Do|H7AeR5Uv{yM$Qewh%;6&GIHZMg(RB0wiqm-y`m8MaVAmrFBqqHQ* zjEoM`NHJGjW#gc&6BIJxP+)74aUfFhur#+oM4KKEvsLGko@Rxi8SFPKWwP>9Euajg zDY|sn7cve{6(hNq81AL1?=_OPoyE-p&)j-IL)wdJS-JCR5n9UU2LG`1G0Lb#FH4u` z8so4GVXTlmRD-eF4lpy*2kJ70X^~W!k(uH|>YmNyitc6xDI^((ZewHEwh_u`&$YqC zJzgyNwr|XsT*JI9R}E}cjc1dqZuUO?~w z5#n_mAb-D*7XdK*9#eUL=OT^YgPm+_*tt>}ZuYMlYM6sjbAMl9qHNGKhmAft zYfPgRj^?lkS8`HJqYc*X@?viDkXujWRy%1rIJO6v2{>bPuGCAqB|PNd?z>}66pC5M z#)G?cBr43oBQba%3?39P0gCsS!7Dj<+r0T2pX5A_lar^{s54cr2V@KgSag7aQr4{eNeg{ zbBv1^a!Aest_q5E*=C{cTeTt1$_BIv~ghi};#SY7gWmGF2>{3}gL%C?jHRiA! zS8XvpIxLGx1?S^R!AC;fVPA+pGFU}&WCgaN#nl_XgS}F>le&BV~iz!URG@%e%8VsIMZcv!3r%>Ci?5Gr^MGJFC zG^NGg4$(ph9Dhs%R#W16T*ihpNITB_3y*(f@@Gv$PmD7SR>(WSsFNq8ASE;(7TR_Z z*qe;@fw1cI3zO?AyZodO4X)(`OHVCP2`E;pGEU%ECN;W-E4xgFi}(&a&A_pzrA&LJ z6;jICc=Pn9Dx?x)=@~((cGG~lpPjByN}=SlqEO6zrq;21jzXy5TxJ-S8I5Je3?2b9 zj_WT0E%?N95}cY;evZ%4-E*#mXoKbF*_d$tN0lTlo3|S8WZG&mv2hydx=MF5J~%6OLe-H`e;sWNZqNc~~?HS)_J6#x}CgddJ1vmb!$7vt9tL%PHG z>-w1@UdJ|aPrKjLmyUXA=HHZTR92^3jI`g9v2=9{N^eQKG~?LYjTo<)Mw+Pb2OM+O zozGP-mFyn0FG==qXfBd=< zf}8>1tm>hXlXrlV84YpHR7Mg>ZRT?4OCoWkz8L8TxajnSbPqR(t(K9ZQq;1$QZ36) zvF651LdR7|@L9|Du<)KN4w9wno>9UWMEt~vVK3dcYF^{-%e-P;9F*$%1zi@+=>i`8 z-NEyL%!AUKQQ?SM&8T-?3ap*;(SNv3uq${xy4BC=_CJBwFro`o^y}70aMkkW52fX_ z-PE%x>tU>^x~okIaOaV4xG}IBo|*{_|LN2vxb}PebGhs6`S| zKJrO$BXrfy3$76@@@shg+^&%$PkqMUI=no4Vyq3cJTumIf`4md6eyj#SSp^##iA~+ z1+`05&G^9P=0szV%}A))I~N||2%6-bUIG%p5-0*op#eG#bP8sN@?ajJ&WUQ|n Nsu@G-*%(>x_aFI9Fl+z- delta 3930 zcmaJ^X;hVE5Wc7st`I2qx&o1!sCm^RF6She8@YhERRW22Oj9duQ9Ej2i4u852#J*2%*Ux z_diQK0U`@1Cf5D!PT6+)i)pcR&^dsjg* zE!-^pq9b)S~>-HzXzSeij*`#?xt*9J0D+G(f@DF!MC zQB4`u0h+JxrXfPAIeF~*2;FEfa;_IfoUxLT(>9D%NTRuOvq7^fCU_NQY_MYZ*T65u zS7H1&22pL}HqO$Vur}sSwKYdp3&MS2*`_v{8|6dp8#HV}<0Q8i>`lhZ$MEP?tGGi=@h&mL*Q4Zh010bSEoBA;~y+D;vYN4pT;Zo((4K z_GZbqeq+Yu8s=uZYGA{YY?&c@9vkLtTdG{@_t}!Rdvi}Bk!1k&hCuI-E$=##Zs59Ot z*yCKppd)e?a8*#OqerGFH~)=R=v`>6vbV8_5G-QFD|T2~D5F~CV3(@G>B>bruCYaO zT(!mYs7Mx*3eLxsf)9tfB0oqtI#5M&WCyjT#nlVHjljNyK&IUWcDp-tDwcVmY*EEr z?1JJCOh+X%q(l@z{lNQ}H&d8^X~H0`Bow@&+@T;(PocJ3=`krtix%#X zXiAH}9ioL2IN`Vmtfs{4gp3VokbZ*s7o7OWTv`rJTUORBCh$S5B!67x5iX#=tRUQl`Di z3aJ%ryixY43aP|caz;?9-85hx8_!swD9_yw!Lo(^iY6HL&)(XlM!Bi&3g1HEIbLWz;g#Sy}s~NE2a$v`fZ@nvCq{p|Szi(Qx*(t}Mo3 z?I$5(J|foojzWZ#r`pwUS=yyeI=j4uE}x-GLZ1LQdPU9?A=D-BbyY5TZLWU4Difnk zrR`cH0%Tkh0Vrlm<5}W=UFy@M%DS#2^@rux$S;3nAXHu#emIiMzCW^GgkL`#(GA93 z)6W#~I=+E>+U$mc?UX~(IDpxWh9Z*X0C9)BoasJgOPrK3r;`C@N|c`Y8fdiMJ>C_)w1jq zYi`U$bXFefwgl!>JQfmb_GvBxBA&#|0nQjMs$YCzFiv$u3Fygp|qT~ zn|fAdKa4X~ceN=IZa?yCyck--S070v?VK%oEa!|A$L&DKe;&&Yp(z86Vi(oM;TP2?silenceJoins = false; } }; - auto getPlayerOrAdd = [&](RenX::Server *server, const Jupiter::ReadableString &name, int id, RenX::TeamType team, bool isBot, uint64_t steamid) + auto getPlayerOrAdd = [&](RenX::Server *server, const Jupiter::ReadableString &name, int id, RenX::TeamType team, bool isBot, uint64_t steamid, const Jupiter::ReadableString &ip) { RenX::PlayerInfo *r = server->getPlayer(id); if (r == nullptr) @@ -651,6 +651,8 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) r->name = name; r->isBot = isBot; r->joinTime = time(nullptr); + r->steamid = steamid; + r->ip = ip; if (id != 0) server->players.add(r); switch (this->uuidMode) @@ -682,7 +684,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) if (action.equals("deployed")) { PARSE_PLAYER_DATA(); - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0, Jupiter::ReferenceString::empty); Jupiter::ReferenceString objectType = buff.getWord(3, RenX::DelimS); if (objectType.match("*Beacon")) player->beaconPlacements++; for (size_t i = 0; i < xPlugins.size(); i++) @@ -692,7 +694,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) else if (action.equals("suicided by")) { PARSE_PLAYER_DATA(); - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0, Jupiter::ReferenceString::empty); player->deaths++; player->suicides++; Jupiter::ReferenceString damageType = buff.getWord(3, RenX::DelimS); @@ -704,7 +706,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) else if (action.equals("killed")) { PARSE_PLAYER_DATA(); - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0, Jupiter::ReferenceString::empty); Jupiter::ReferenceString victimData = buff.getWord(3, RenX::DelimS); Jupiter::ReferenceString vname = victimData.getWord(2, ","); Jupiter::ReferenceString vidToken = victimData.getWord(1, ","); @@ -718,7 +720,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) vid = vidToken.asInt(10); TeamType vteam = RenX::getTeam(victimData.getWord(0, ",")[0]); Jupiter::ReferenceString damageType = buff.getWord(5, RenX::DelimS); - RenX::PlayerInfo *victim = getPlayerOrAdd(this, vname, vid, vteam, visBot, 0); + RenX::PlayerInfo *victim = getPlayerOrAdd(this, vname, vid, vteam, visBot, 0, Jupiter::ReferenceString::empty); player->kills++; if (damageType.equals("Rx_DmgType_Headshot")) player->headshots++; victim->deaths++; @@ -739,7 +741,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) else if (action.match("died by")) { PARSE_PLAYER_DATA(); - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0, Jupiter::ReferenceString::empty); player->deaths++; Jupiter::ReferenceString damageType = buff.getWord(3, RenX::DelimS); if (damageType.equals("DamageType")) @@ -754,7 +756,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) else if (action.match("destroyed*")) { PARSE_PLAYER_DATA(); - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0, Jupiter::ReferenceString::empty); Jupiter::ReferenceString victim = buff.getWord(3, RenX::DelimS); Jupiter::ReferenceString damageType = buff.getWord(5, RenX::DelimS); ObjectType type; @@ -834,7 +836,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) if (action.equals("teamsay:")) { PARSE_PLAYER_DATA(); - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0, Jupiter::ReferenceString::empty); Jupiter::ReferenceString message = buff.getWord(3, RenX::DelimS); onChat(this, player, message, false); for (size_t i = 0; i < xPlugins.size(); i++) @@ -843,7 +845,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) else if (action.equals("say:")) { PARSE_PLAYER_DATA(); - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0, Jupiter::ReferenceString::empty); Jupiter::ReferenceString message = buff.getWord(3, RenX::DelimS); onChat(this, player, message, true); for (size_t i = 0; i < xPlugins.size(); i++) @@ -856,7 +858,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) PARSE_PLAYER_DATA(); if (action.equals("disconnected")) { - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0, Jupiter::ReferenceString::empty); if (this->silenceParts == false) for (size_t i = 0; i < xPlugins.size(); i++) xPlugins.get(i)->RenX_OnPart(this, player); @@ -865,8 +867,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) } else if (action.equals("entered from")) { - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, buff.getWord(4, RenX::DelimS).equals("steamid") ? buff.getWord(5, RenX::DelimS).asUnsignedLongLong() : 0); - player->ip = buff.getWord(3, RenX::DelimS); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, buff.getWord(4, RenX::DelimS).equals("steamid") ? buff.getWord(5, RenX::DelimS).asUnsignedLongLong() : 0, buff.getWord(3, RenX::DelimS)); if (this->silenceJoins == false) for (size_t i = 0; i < xPlugins.size(); i++) @@ -874,7 +875,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) } else if (action.equals("changed name to:")) { - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0, Jupiter::ReferenceString::empty); Jupiter::ReferenceString newName = buff.getWord(3, RenX::DelimS); for (size_t i = 0; i < xPlugins.size(); i++) xPlugins.get(i)->RenX_OnNameChange(this, player, newName); @@ -904,7 +905,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) else if (header.equals("lADMIN:")) { PARSE_PLAYER_DATA(); - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0, Jupiter::ReferenceString::empty); if (action.equals("logged in as")) { player->adminType = buff.getWord(3, RenX::DelimS); @@ -976,9 +977,7 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) name = playerData.gotoWord(4, WHITESPACE); } - RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, steamid.asUnsignedLongLong()); - if (player->ip.size() == 0) - player->ip = ip; + RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, steamid.asUnsignedLongLong(), ip); } else {