From 1649b768fa6196c6e68451a982d9b572c7273dc5 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Sat, 23 May 2015 03:07:30 -0400 Subject: [PATCH] IRCPrefix is now parsed for tags Added tags: {SERVERHOST}, {SERVERPORT}, {SOCKHOST}, {SOCKPORT} --- Release/Bot.lib | Bin 19858 -> 19858 bytes Release/Plugins/RenX.Core.lib | Bin 120750 -> 120750 bytes RenX.Core/RenX_Server.cpp | 7 +++++-- RenX.Core/RenX_Tags.cpp | 16 ++++++++++++++++ RenX.Core/RenX_Tags.h | 8 ++++++++ 5 files changed, 29 insertions(+), 2 deletions(-) diff --git a/Release/Bot.lib b/Release/Bot.lib index c955f56f544561b7559d8810370b2084362b23ee..0d164b060047071a809ebf22b3c768748909bbd8 100644 GIT binary patch delta 1584 zcmZuwOH5Ny5TyYu-vClt5uvT+BR0T$^#7-{rL>eNF~p6gMJ0x?ASA|^xDa--Ai>T? zL!=rPu1p|=jSII%H^s!nxF8r46tTU&dklP>+MYb?a6KL*?;IXmI=NMG*u%!y#w|kGn^Uxs{Pl? z>HR|;Wx5e^ilLs-`zqM43O<-DP*6IxA|o_A4XhA;DiH}ytAx&|Q3-vcl3EvPRWdcb z0S;BO#Mtx@!@{~TMqNAhtAQntp~Qk*)C5n5Te+F;AaUo(G-tDW5n468E4qyWZuKP;A1@u_pBuRr&U_@W~+} z1B=H5MOQ1gVMj&-v+QbaJ8r;(QSH*0 z9qh{kDUQyGN_K#v$9zodfn(OPr;$dnK3I&|pgA6vYecroajj-IPQHG}7X*_vT}e>W zLPASybBvh2u|>fY&|Vp0iXo_P>w zQP{a`^q+^K;WVtJPMnK4`u&u+Zcx%>^m_WgfgPu{;aQF-z@Pd6Hge(yrmB0v=F&F6 zD0?M}f)p20bPfG*qzW6%Ek0;2(v1u^Tcf!X9%lsO#7%t9i1w^7Gf9O#Sm?z<)zVcv Nx^QQ3_TFqo-9Maor#b)t delta 1584 zcmZuwOH30{6r}+y-vClNB0^isM{IzZ{-)C}g_hD%qQnq4YC$E2uplHZOk4;%S&(4w zMnj|;7p_bogpCWgMmNR8#Hb+{6XU{#kgy@f&wcOBn?4e|o6~d8J@?%E@@uC2nrZdS z3Ad`Ls*)eDZU&yTl)knOTV4vE@YdB>{`u3jtzFj-lfjbUTVF#Z!js$J8nD5s{;$S= z-IU%t&{m>bVM?~t5_(S=`BlI>$qog%-6*m`qt`+T;inuE(2T;+X(cY8uN0=%fm-E6 z&1``K#U?N|RK~EAZiG?Oiv6l!QMKqSn2JmA*xgKRg^*TBX%;BDBZAO54>J(+3=8PG z$5KbeabTSp8$ixsh4&u2K;iTBc*S|pIi2#6HzaWP_1VonO+c{;HAkA%mR00iPs0Zf zj|}Xp1Vvvnwc$cW9kKDH+zEgDRj{InE5z_=(`kQFkiU{;=tn<~7B$aP;<%a;h?pfs zU#ns;_5efG0QXES<;I#R`B`90mpBGHG!En8!F`Qs6f~|3i%|)VG^WuIoDnr11R4B1 zD2`DTVj8wkPVmgr-wg5esg3$D3#=alYbAj#)U-gbvk7jx`GcT543C3a+eb>CdH-G8Ga2i;ikAT!&IDEScy+^(Vc_@f8$Ja7DYQz^q}oJ+#513 zjo87yG?3!ZEUzR7$a~BU8$EE$YVtHPDAofD!%k>SM8z7O?NY+1*-0>8zZ3JENt!Mv zS<^z&NNi(-F}0Be&g9T;2_lP`OR?gm)FsX&vmWTMdGs!aNvpyrV{ebn=`gv^aGE{y zFwP>Ab6M{_3q{LGSWO>07k>16X@1=xXPD8eng0fMlre@UIidi4>V4SAiyN4z>;|XL z*Z`sI>J%9%KBSoHdf`yvHi%n%&{U)o8Gf=xTRS|=a>lWn_@3qMNnv)J6?S1^01Fj+ QNA=MB?f#iNGi5dZ0EhnTMgRZ+ diff --git a/Release/Plugins/RenX.Core.lib b/Release/Plugins/RenX.Core.lib index 1e31821903417c7a658564489cc22f5b746aa351..f54cf03d5e42346c4740cc6a69df66c35122af17 100644 GIT binary patch delta 7932 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 diff --git a/RenX.Core/RenX_Server.cpp b/RenX.Core/RenX_Server.cpp index 37a577b..bb8319f 100644 --- a/RenX.Core/RenX_Server.cpp +++ b/RenX.Core/RenX_Server.cpp @@ -26,6 +26,7 @@ #include "RenX_Functions.h" #include "RenX_Plugin.h" #include "RenX_BanDatabase.h" +#include "RenX_Tags.h" int RenX::Server::think() { @@ -476,12 +477,14 @@ bool RenX::Server::changeTeam(RenX::PlayerInfo *player, bool resetCredits) const Jupiter::ReadableString &RenX::Server::getPrefix() const { - return RenX::Server::IRCPrefix; + static Jupiter::StringS parsed; + RenX::processTags(parsed = RenX::Server::IRCPrefix, this); + return parsed; } void RenX::Server::setPrefix(const Jupiter::ReadableString &prefix) { - RenX::Server::IRCPrefix = prefix; + RenX::sanitizeTags(RenX::Server::IRCPrefix = prefix); } const Jupiter::ReadableString &RenX::Server::getCommandPrefix() const diff --git a/RenX.Core/RenX_Tags.cpp b/RenX.Core/RenX_Tags.cpp index b426305..acb6357 100644 --- a/RenX.Core/RenX_Tags.cpp +++ b/RenX.Core/RenX_Tags.cpp @@ -71,6 +71,10 @@ TagsImp::TagsImp() this->INTERNAL_USER_TAG = this->getUniqueInternalTag(); this->INTERNAL_SERVER_NAME_TAG = this->getUniqueInternalTag(); this->INTERNAL_MAP_TAG = this->getUniqueInternalTag(); + this->INTERNAL_SERVER_HOSTNAME_TAG = this->getUniqueInternalTag(); + this->INTERNAL_SERVER_PORT_TAG = this->getUniqueInternalTag(); + this->INTERNAL_SOCKET_HOSTNAME_TAG = this->getUniqueInternalTag(); + this->INTERNAL_SOCKET_PORT_TAG = this->getUniqueInternalTag(); /** Player tags*/ this->INTERNAL_NAME_TAG = this->getUniqueInternalTag(); @@ -163,6 +167,10 @@ TagsImp::TagsImp() this->userTag = Jupiter::IRC::Client::Config->get(configSection, STRING_LITERAL_AS_REFERENCE("UserTag"), STRING_LITERAL_AS_REFERENCE("{USER}")); this->serverNameTag = Jupiter::IRC::Client::Config->get(configSection, STRING_LITERAL_AS_REFERENCE("ServerNameTag"), STRING_LITERAL_AS_REFERENCE("{SERVERNAME}")); this->mapTag = Jupiter::IRC::Client::Config->get(configSection, STRING_LITERAL_AS_REFERENCE("MapTag"), STRING_LITERAL_AS_REFERENCE("{MAP}")); + this->serverHostnameTag = Jupiter::IRC::Client::Config->get(configSection, STRING_LITERAL_AS_REFERENCE("ServerHostnameTag"), STRING_LITERAL_AS_REFERENCE("{SERVERHOST}")); + this->serverPortTag = Jupiter::IRC::Client::Config->get(configSection, STRING_LITERAL_AS_REFERENCE("ServerPortTag"), STRING_LITERAL_AS_REFERENCE("{SERVERPORT}")); + this->socketHostnameTag = Jupiter::IRC::Client::Config->get(configSection, STRING_LITERAL_AS_REFERENCE("SocketHostnameTag"), STRING_LITERAL_AS_REFERENCE("{SOCKHOST}")); + this->socketPortTag = Jupiter::IRC::Client::Config->get(configSection, STRING_LITERAL_AS_REFERENCE("SocketPortTag"), STRING_LITERAL_AS_REFERENCE("{SOCKPORT}")); /** Player tags */ this->nameTag = Jupiter::IRC::Client::Config->get(configSection, STRING_LITERAL_AS_REFERENCE("NameTag"), STRING_LITERAL_AS_REFERENCE("{NAME}")); @@ -255,6 +263,10 @@ void TagsImp::processTags(Jupiter::StringType &msg, const RenX::Server *server, msg.replace(this->INTERNAL_USER_TAG, server->getUser()); msg.replace(this->INTERNAL_SERVER_NAME_TAG, server->getName()); msg.replace(this->INTERNAL_MAP_TAG, server->getMap()); + msg.replace(this->INTERNAL_SERVER_HOSTNAME_TAG, server->getHostname()); + msg.replace(this->INTERNAL_SERVER_PORT_TAG, Jupiter::StringS::Format("%u", server->getPort())); + msg.replace(this->INTERNAL_SOCKET_HOSTNAME_TAG, server->getSocketHostname()); + msg.replace(this->INTERNAL_SOCKET_PORT_TAG, Jupiter::StringS::Format("%u", server->getSocketPort())); if (player != nullptr) { msg.replace(this->INTERNAL_STEAM_TAG, server->formatSteamID(player)); @@ -353,6 +365,10 @@ void TagsImp::sanitizeTags(Jupiter::StringType &fmt) fmt.replace(this->userTag, this->INTERNAL_USER_TAG); fmt.replace(this->serverNameTag, this->INTERNAL_SERVER_NAME_TAG); fmt.replace(this->mapTag, this->INTERNAL_MAP_TAG); + fmt.replace(this->serverHostnameTag, this->INTERNAL_SERVER_HOSTNAME_TAG); + fmt.replace(this->serverPortTag, this->INTERNAL_SERVER_PORT_TAG); + fmt.replace(this->socketHostnameTag, this->INTERNAL_SOCKET_HOSTNAME_TAG); + fmt.replace(this->socketPortTag, this->INTERNAL_SOCKET_PORT_TAG); /** Player tags */ fmt.replace(this->nameTag, this->INTERNAL_NAME_TAG); diff --git a/RenX.Core/RenX_Tags.h b/RenX.Core/RenX_Tags.h index df8ce5b..2d970d5 100644 --- a/RenX.Core/RenX_Tags.h +++ b/RenX.Core/RenX_Tags.h @@ -60,6 +60,10 @@ namespace RenX Jupiter::StringS INTERNAL_USER_TAG; Jupiter::StringS INTERNAL_SERVER_NAME_TAG; Jupiter::StringS INTERNAL_MAP_TAG; + Jupiter::StringS INTERNAL_SERVER_HOSTNAME_TAG; + Jupiter::StringS INTERNAL_SERVER_PORT_TAG; + Jupiter::StringS INTERNAL_SOCKET_HOSTNAME_TAG; + Jupiter::StringS INTERNAL_SOCKET_PORT_TAG; /** Player tags */ Jupiter::StringS INTERNAL_NAME_TAG; @@ -152,6 +156,10 @@ namespace RenX Jupiter::StringS userTag; Jupiter::StringS serverNameTag; Jupiter::StringS mapTag; + Jupiter::StringS serverHostnameTag; + Jupiter::StringS serverPortTag; + Jupiter::StringS socketHostnameTag; + Jupiter::StringS socketPortTag; /** Player tags */ Jupiter::StringS nameTag;