From a04667ee5f65f3052093e58c6ad55a092eb425a3 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Tue, 21 Oct 2014 22:09:00 -0400 Subject: [PATCH] Added RenX_OnTeamChange event; formatSteamID is now const; ReadableString non-format versions of sendPubChan() sendAdmChan() and sendLogChan() added. --- Jupiter Bot.sln | 4 ++++ Release/Plugins/RenX.Core.lib | Bin 56672 -> 58474 bytes RenX.Core/RenX_Plugin.cpp | 5 +++++ RenX.Core/RenX_Plugin.h | 1 + RenX.Core/RenX_Server.cpp | 33 ++++++++++++++++++++++++++------- RenX.Core/RenX_Server.h | 10 +++++----- 6 files changed, 41 insertions(+), 12 deletions(-) diff --git a/Jupiter Bot.sln b/Jupiter Bot.sln index e0f95cc..ca2ba27 100644 --- a/Jupiter Bot.sln +++ b/Jupiter Bot.sln @@ -116,6 +116,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RenX.Greetings", "RenX.Gree EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RenX.IRCJoin", "RenX.IRCJoin\RenX.IRCJoin.vcxproj", "{672B3FC9-0B31-45B4-AAB6-669073F2D291}" + ProjectSection(ProjectDependencies) = postProject + {C188871B-5F32-4946-B301-24CA2EBB275D} = {C188871B-5F32-4946-B301-24CA2EBB275D} + {9103DF3D-8B4A-48E5-A6B3-CBE2554630E2} = {9103DF3D-8B4A-48E5-A6B3-CBE2554630E2} + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Release/Plugins/RenX.Core.lib b/Release/Plugins/RenX.Core.lib index dc3ac441062f08b1c183bd2493f7284bbf35fdfe..2c99aef59989c5bb7a6554b95e4a1575b93081ec 100644 GIT binary patch delta 7391 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 L5HmR9RpWmHa}x&7 diff --git a/RenX.Core/RenX_Plugin.cpp b/RenX.Core/RenX_Plugin.cpp index 0f65f32..467f6be 100644 --- a/RenX.Core/RenX_Plugin.cpp +++ b/RenX.Core/RenX_Plugin.cpp @@ -60,6 +60,11 @@ void RenX::Plugin::RenX_OnNameChange(Server *, const PlayerInfo *, const Jupiter return; } +void RenX::Plugin::RenX_OnTeamChange(Server *, const PlayerInfo *) +{ + return; +} + void RenX::Plugin::RenX_OnChat(Server *, const RenX::PlayerInfo *, const Jupiter::ReadableString &) { return; diff --git a/RenX.Core/RenX_Plugin.h b/RenX.Core/RenX_Plugin.h index 8fb7ecf..f8e0e17 100644 --- a/RenX.Core/RenX_Plugin.h +++ b/RenX.Core/RenX_Plugin.h @@ -45,6 +45,7 @@ namespace RenX virtual void RenX_OnJoin(Server *server, const PlayerInfo *player); virtual void RenX_OnPart(Server *server, const PlayerInfo *player); virtual void RenX_OnNameChange(Server *server, const PlayerInfo *player, const Jupiter::ReadableString &newPlayerName); + virtual void RenX_OnTeamChange(Server *server, const PlayerInfo *player); /** Chat type logs */ virtual void RenX_OnChat(Server *server, const PlayerInfo *player, const Jupiter::ReadableString &message); diff --git a/RenX.Core/RenX_Server.cpp b/RenX.Core/RenX_Server.cpp index d5dc1d0..7308228 100644 --- a/RenX.Core/RenX_Server.cpp +++ b/RenX.Core/RenX_Server.cpp @@ -201,12 +201,12 @@ RenX::PlayerInfo *RenX::Server::getPlayerByPartNameFast(const Jupiter::ReadableS return nullptr; } -Jupiter::StringS RenX::Server::formatSteamID(const RenX::PlayerInfo *player) +Jupiter::StringS RenX::Server::formatSteamID(const RenX::PlayerInfo *player) const { return RenX::Server::formatSteamID(player->steamid); } -Jupiter::StringS RenX::Server::formatSteamID(uint64_t id) +Jupiter::StringS RenX::Server::formatSteamID(uint64_t id) const { switch (RenX::Server::steamFormat) { @@ -435,6 +435,11 @@ void RenX::Server::sendPubChan(const char *fmt, ...) const } else msg.vformat(fmt, args); va_end(args); + RenX::Server::sendPubChan(msg); +} + +void RenX::Server::sendPubChan(const Jupiter::ReadableString &msg) const +{ for (size_t i = 0; i != serverManager->size(); i++) serverManager->getServer(i)->messageChannels(RenX::Server::logChanType, msg); } @@ -453,6 +458,11 @@ void RenX::Server::sendAdmChan(const char *fmt, ...) const } else msg.vformat(fmt, args); va_end(args); + RenX::Server::sendAdmChan(msg); +} + +void RenX::Server::sendAdmChan(const Jupiter::ReadableString &msg) const +{ for (size_t i = 0; i != serverManager->size(); i++) serverManager->getServer(i)->messageChannels(RenX::Server::adminLogChanType, msg); } @@ -471,11 +481,16 @@ void RenX::Server::sendLogChan(const char *fmt, ...) const } else msg.vformat(fmt, args); va_end(args); + RenX::Server::sendLogChan(msg); +} + +void RenX::Server::sendLogChan(const Jupiter::ReadableString &msg) const +{ for (size_t i = 0; i != serverManager->size(); i++) { - IRC_Bot *ircServer = serverManager->getServer(i); - ircServer->messageChannels(RenX::Server::logChanType, msg); - ircServer->messageChannels(RenX::Server::adminLogChanType, msg); + IRC_Bot *server = serverManager->getServer(i); + server->messageChannels(RenX::Server::logChanType, msg); + server->messageChannels(RenX::Server::adminLogChanType, msg); } } @@ -680,8 +695,12 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) RenX::PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0); player->deaths++; Jupiter::ReferenceString damageType = buff.getWord(3, RenX::DelimS); - for (size_t i = 0; i < xPlugins.size(); i++) - xPlugins.get(i)->RenX_OnDie(this, player, damageType); + if (damageType.equals("DamageType")) + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnTeamChange(this, player); + else + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnDie(this, player, damageType); this->firstDeath = true; onAction(); } diff --git a/RenX.Core/RenX_Server.h b/RenX.Core/RenX_Server.h index 986b8cf..3b56d0b 100644 --- a/RenX.Core/RenX_Server.h +++ b/RenX.Core/RenX_Server.h @@ -204,7 +204,7 @@ namespace RenX * @param player Player to fetch Steam ID from * @return A player's formatted Steam ID on success, an empty string otherwise. */ - Jupiter::StringS formatSteamID(const RenX::PlayerInfo *player); + Jupiter::StringS formatSteamID(const RenX::PlayerInfo *player) const; /** * @brief Formats a Steam ID into a readable string. @@ -212,7 +212,7 @@ namespace RenX * @param id Steam ID to format * @return A player's formatted Steam ID on success, an empty string otherwise. */ - Jupiter::StringS formatSteamID(uint64_t id); + Jupiter::StringS formatSteamID(uint64_t id) const; /** * @brief Kicks a player from the server. @@ -393,26 +393,26 @@ namespace RenX /** * @brief Formats and sends a message to a server's corresponding public channels. * - * @param server Server corresponding to channel types. * @param fmt String containing the format specifiers indicating what message to send. */ void sendPubChan(const char *fmt, ...) const; + void sendPubChan(const Jupiter::ReadableString &msg) const; /** * @brief Formats and sends a message to a server's corresponding adminstrative channels. * - * @param server Server corresponding to channel types. * @param fmt String containing the format specifiers indicating what message to send. */ void sendAdmChan(const char *fmt, ...) const; + void sendAdmChan(const Jupiter::ReadableString &msg) const; /** * @brief Formats and sends a message to a server's corresponding channels. * - * @param server Server corresponding to channel types. * @param fmt String containing the format specifiers indicating what message to send. */ void sendLogChan(const char *fmt, ...) const; + void sendLogChan(const Jupiter::ReadableString &msg) const; /** * @brief Processes a line of RCON input data. Input data SHOULD NOT include a new-line ('\n') terminator.