From 71d96cd8b5747a9b1574d6e240a90c087dc31b7e Mon Sep 17 00:00:00 2001 From: Jessica James Date: Sun, 1 Dec 2019 22:15:24 -0600 Subject: [PATCH] Wired up new admin/warning message events for RenX.Logging --- src/Plugins/RenX/RenX.Core/RenX_Plugin.h | 2 - .../RenX/RenX.Logging/RenX_Logging.cpp | 162 ++++++++++++++++++ src/Plugins/RenX/RenX.Logging/RenX_Logging.h | 14 ++ 3 files changed, 176 insertions(+), 2 deletions(-) diff --git a/src/Plugins/RenX/RenX.Core/RenX_Plugin.h b/src/Plugins/RenX/RenX.Core/RenX_Plugin.h index e378d04..2f41b7b 100644 --- a/src/Plugins/RenX/RenX.Core/RenX_Plugin.h +++ b/src/Plugins/RenX/RenX.Core/RenX_Plugin.h @@ -77,12 +77,10 @@ namespace RenX virtual void RenX_OnRadioChat(Server &server, const PlayerInfo &player, const Jupiter::ReadableString &message); virtual void RenX_OnHostChat(Server &server, const Jupiter::ReadableString &message); virtual void RenX_OnHostPage(Server &server, const PlayerInfo &player, const Jupiter::ReadableString &message); - virtual void RenX_OnAdminMessage(Server &server, const PlayerInfo &player, const Jupiter::ReadableString &message); virtual void RenX_OnWarnMessage(Server &server, const PlayerInfo &player, const Jupiter::ReadableString &message); virtual void RenX_OnAdminPMessage(Server &server, const PlayerInfo &player, const PlayerInfo &target, const Jupiter::ReadableString &message); virtual void RenX_OnWarnPMessage(Server &server, const PlayerInfo &player, const PlayerInfo &target, const Jupiter::ReadableString &message); - virtual void RenX_OnHostAdminMessage(Server &server, const Jupiter::ReadableString &message); virtual void RenX_OnHostAdminPMessage(Server &server, const PlayerInfo &player, const Jupiter::ReadableString &message); virtual void RenX_OnHostWarnMessage(Server &server, const Jupiter::ReadableString &message); diff --git a/src/Plugins/RenX/RenX.Logging/RenX_Logging.cpp b/src/Plugins/RenX/RenX.Logging/RenX_Logging.cpp index d5f052e..42ff9ce 100644 --- a/src/Plugins/RenX/RenX.Logging/RenX_Logging.cpp +++ b/src/Plugins/RenX/RenX.Logging/RenX_Logging.cpp @@ -43,6 +43,8 @@ bool RenX_LoggingPlugin::initialize() RenX_LoggingPlugin::radioChatPublic = this->config.get("RadioChatPublic"_jrs, false); RenX_LoggingPlugin::hostChatPublic = this->config.get("HostChatPublic"_jrs, true); RenX_LoggingPlugin::hostPagePublic = this->config.get("HostPagePublic"_jrs, false); + RenX_LoggingPlugin::adminMessagePublic = this->config.get("AdminMessagePublic"_jrs, true); + RenX_LoggingPlugin::adminPMessagePublic = this->config.get("AdminPagePublic"_jrs, false); RenX_LoggingPlugin::otherChatPublic = this->config.get("OtherChatPublic"_jrs, false); RenX_LoggingPlugin::deployPublic = this->config.get("DeployPublic"_jrs, true); RenX_LoggingPlugin::mineDeployPublic = this->config.get("MineDeployPublic"_jrs, false); @@ -165,6 +167,18 @@ bool RenX_LoggingPlugin::initialize() RenX_LoggingPlugin::hostPageFmt = this->config.get("HostPageFormat"_jrs, Jupiter::StringS::Format(IRCCOLOR "12(Host -> %.*s): %.*s", RenX::tags->rawNameTag.size(), RenX::tags->rawNameTag.ptr(), RenX::tags->messageTag.size(), RenX::tags->messageTag.ptr())); + RenX_LoggingPlugin::adminMsgFmt = this->config.get("AdminMsgFormat"_jrs, + Jupiter::StringS::Format(IRCCOLOR "10%.*s: %.*s", RenX::tags->rawNameTag.size(), RenX::tags->rawNameTag.ptr(), RenX::tags->messageTag.size(), RenX::tags->messageTag.ptr())); + + RenX_LoggingPlugin::warnMsgFmt = this->config.get("WarnMsgFormat"_jrs, + Jupiter::StringS::Format(IRCCOLOR "07%.*s: %.*s", RenX::tags->rawNameTag.size(), RenX::tags->rawNameTag.ptr(), RenX::tags->messageTag.size(), RenX::tags->messageTag.ptr())); + + RenX_LoggingPlugin::pAdminMsgFmt = this->config.get("PAdminMsgFormat"_jrs, + Jupiter::StringS::Format(IRCCOLOR "10(%.*s -> %.*s): %.*s", RenX::tags->rawNameTag.size(), RenX::tags->rawNameTag.ptr(), RenX::tags->victimRawNameTag.size(), RenX::tags->victimRawNameTag.ptr(), RenX::tags->messageTag.size(), RenX::tags->messageTag.ptr())); + + RenX_LoggingPlugin::pWarnMsgFmt = this->config.get("PWarnMsgFormat"_jrs, + Jupiter::StringS::Format(IRCCOLOR "07(%.*s -> %.*s): %.*s", RenX::tags->rawNameTag.size(), RenX::tags->rawNameTag.ptr(), RenX::tags->victimRawNameTag.size(), RenX::tags->victimRawNameTag.ptr(), RenX::tags->messageTag.size(), RenX::tags->messageTag.ptr())); + RenX_LoggingPlugin::otherChatFmt = this->config.get("OtherChatFormat"_jrs, Jupiter::StringS::Format(IRCCOLOR "06[Other Chat]" IRCCOLOR " %.*s", RenX::tags->messageTag.size(), RenX::tags->messageTag.ptr())); @@ -503,6 +517,10 @@ bool RenX_LoggingPlugin::initialize() RenX::sanitizeTags(devBotExecuteFmt); RenX::sanitizeTags(hostChatFmt); RenX::sanitizeTags(hostPageFmt); + RenX::sanitizeTags(adminMsgFmt); + RenX::sanitizeTags(warnMsgFmt); + RenX::sanitizeTags(pAdminMsgFmt); + RenX::sanitizeTags(pWarnMsgFmt); RenX::sanitizeTags(subscribeFmt); RenX::sanitizeTags(rconFmt); RenX::sanitizeTags(adminLoginFmt); @@ -819,6 +837,150 @@ void RenX_LoggingPlugin::RenX_OnHostPage(RenX::Server &server, const RenX::Playe } } +void RenX_LoggingPlugin::RenX_OnAdminMessage(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &message) +{ + logFuncType func; + if (RenX_LoggingPlugin::adminMessagePublic) + func = &RenX::Server::sendLogChan; + else + func = &RenX::Server::sendAdmChan; + + Jupiter::String msg = this->adminMsgFmt; + if (msg.isNotEmpty()) + { + RenX::processTags(msg, &server, &player); + msg.replace(RenX::tags->INTERNAL_MESSAGE_TAG, message); + (server.*func)(msg); + } +} + +void RenX_LoggingPlugin::RenX_OnWarnMessage(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &message) +{ + logFuncType func; + if (RenX_LoggingPlugin::adminMessagePublic) + func = &RenX::Server::sendLogChan; + else + func = &RenX::Server::sendAdmChan; + + Jupiter::String msg = this->warnMsgFmt; + if (msg.isNotEmpty()) + { + RenX::processTags(msg, &server, &player); + msg.replace(RenX::tags->INTERNAL_MESSAGE_TAG, message); + (server.*func)(msg); + } +} + +void RenX_LoggingPlugin::RenX_OnAdminPMessage(RenX::Server &server, const RenX::PlayerInfo &player, const RenX::PlayerInfo &target, const Jupiter::ReadableString &message) +{ + logFuncType func; + if (RenX_LoggingPlugin::adminPMessagePublic) + func = &RenX::Server::sendLogChan; + else + func = &RenX::Server::sendAdmChan; + + Jupiter::String msg = this->pAdminMsgFmt; + if (msg.isNotEmpty()) + { + RenX::processTags(msg, &server, &player, &target); + msg.replace(RenX::tags->INTERNAL_MESSAGE_TAG, message); + (server.*func)(msg); + } +} + +void RenX_LoggingPlugin::RenX_OnWarnPMessage(RenX::Server &server, const RenX::PlayerInfo &player, const RenX::PlayerInfo &target, const Jupiter::ReadableString &message) +{ + logFuncType func; + if (RenX_LoggingPlugin::adminPMessagePublic) + func = &RenX::Server::sendLogChan; + else + func = &RenX::Server::sendAdmChan; + + Jupiter::String msg = this->pWarnMsgFmt; + if (msg.isNotEmpty()) + { + RenX::processTags(msg, &server, &player, &target); + msg.replace(RenX::tags->INTERNAL_MESSAGE_TAG, message); + (server.*func)(msg); + } +} + +void RenX_LoggingPlugin::RenX_OnHostAdminMessage(RenX::Server &server, const Jupiter::ReadableString &message) +{ + logFuncType func; + if (RenX_LoggingPlugin::adminMessagePublic) + func = &RenX::Server::sendLogChan; + else + func = &RenX::Server::sendAdmChan; + + Jupiter::String msg = this->adminMsgFmt; + if (msg.isNotEmpty()) + { + RenX::processTags(msg, &server); + msg.replace(RenX::tags->INTERNAL_NAME_TAG, "Host"_jrs); + msg.replace(RenX::tags->INTERNAL_RAW_NAME_TAG, "Host"_jrs); + msg.replace(RenX::tags->INTERNAL_MESSAGE_TAG, message); + (server.*func)(msg); + } +} + +void RenX_LoggingPlugin::RenX_OnHostAdminPMessage(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &message) +{ + logFuncType func; + if (RenX_LoggingPlugin::adminPMessagePublic) + func = &RenX::Server::sendLogChan; + else + func = &RenX::Server::sendAdmChan; + + Jupiter::String msg = this->pAdminMsgFmt; + if (msg.isNotEmpty()) + { + RenX::processTags(msg, &server, nullptr, &player); + msg.replace(RenX::tags->INTERNAL_NAME_TAG, "Host"_jrs); + msg.replace(RenX::tags->INTERNAL_RAW_NAME_TAG, "Host"_jrs); + msg.replace(RenX::tags->INTERNAL_MESSAGE_TAG, message); + (server.*func)(msg); + } +} + +void RenX_LoggingPlugin::RenX_OnHostWarnMessage(RenX::Server &server, const Jupiter::ReadableString &message) +{ + logFuncType func; + if (RenX_LoggingPlugin::adminMessagePublic) + func = &RenX::Server::sendLogChan; + else + func = &RenX::Server::sendAdmChan; + + Jupiter::String msg = this->warnMsgFmt; + if (msg.isNotEmpty()) + { + RenX::processTags(msg, &server); + msg.replace(RenX::tags->INTERNAL_NAME_TAG, "Host"_jrs); + msg.replace(RenX::tags->INTERNAL_RAW_NAME_TAG, "Host"_jrs); + msg.replace(RenX::tags->INTERNAL_MESSAGE_TAG, message); + (server.*func)(msg); + } +} + +void RenX_LoggingPlugin::RenX_OnHostWarnPMessage(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &message) +{ + logFuncType func; + if (RenX_LoggingPlugin::adminPMessagePublic) + func = &RenX::Server::sendLogChan; + else + func = &RenX::Server::sendAdmChan; + + Jupiter::String msg = this->pWarnMsgFmt; + if (msg.isNotEmpty()) + { + RenX::processTags(msg, &server, nullptr, &player); + msg.replace(RenX::tags->INTERNAL_NAME_TAG, "Host"_jrs); + msg.replace(RenX::tags->INTERNAL_RAW_NAME_TAG, "Host"_jrs); + msg.replace(RenX::tags->INTERNAL_MESSAGE_TAG, message); + (server.*func)(msg); + } +} + void RenX_LoggingPlugin::RenX_OnOtherChat(RenX::Server &server, const Jupiter::ReadableString &raw) { logFuncType func; diff --git a/src/Plugins/RenX/RenX.Logging/RenX_Logging.h b/src/Plugins/RenX/RenX.Logging/RenX_Logging.h index 4e21312..caa5a9e 100644 --- a/src/Plugins/RenX/RenX.Logging/RenX_Logging.h +++ b/src/Plugins/RenX/RenX.Logging/RenX_Logging.h @@ -43,6 +43,14 @@ class RenX_LoggingPlugin : public RenX::Plugin void RenX_OnRadioChat(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &message) override; void RenX_OnHostChat(RenX::Server &server, const Jupiter::ReadableString &message) override; void RenX_OnHostPage(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &message) override; + void RenX_OnAdminMessage(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &message) override; + void RenX_OnWarnMessage(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &message) override; + void RenX_OnAdminPMessage(RenX::Server &server, const RenX::PlayerInfo &player, const RenX::PlayerInfo &target, const Jupiter::ReadableString &message) override; + void RenX_OnWarnPMessage(RenX::Server &server, const RenX::PlayerInfo &player, const RenX::PlayerInfo &target, const Jupiter::ReadableString &message) override; + void RenX_OnHostAdminMessage(RenX::Server &server, const Jupiter::ReadableString &message) override; + void RenX_OnHostAdminPMessage(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &message) override; + void RenX_OnHostWarnMessage(RenX::Server &server, const Jupiter::ReadableString &message) override; + void RenX_OnHostWarnPMessage(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &message) override; void RenX_OnOtherChat(RenX::Server &server, const Jupiter::ReadableString &raw) override; void RenX_OnDeploy(RenX::Server &server, const RenX::PlayerInfo &player, const Jupiter::ReadableString &object) override; @@ -148,6 +156,8 @@ class RenX_LoggingPlugin : public RenX::Plugin unsigned int radioChatPublic : 1; unsigned int hostChatPublic : 1; unsigned int hostPagePublic : 1; + unsigned int adminMessagePublic : 1; + unsigned int adminPMessagePublic : 1; unsigned int otherChatPublic : 1; unsigned int deployPublic : 1; unsigned int mineDeployPublic : 1; @@ -228,6 +238,10 @@ class RenX_LoggingPlugin : public RenX::Plugin Jupiter::StringS radioChatFmt; Jupiter::StringS hostChatFmt; Jupiter::StringS hostPageFmt; + Jupiter::StringS adminMsgFmt; + Jupiter::StringS warnMsgFmt; + Jupiter::StringS pAdminMsgFmt; + Jupiter::StringS pWarnMsgFmt; Jupiter::StringS otherChatFmt; Jupiter::StringS deployFmt; Jupiter::StringS mineDeployFmt;