diff --git a/Release/Plugins/RenX.Core.lib b/Release/Plugins/RenX.Core.lib index 3e9bb9f..88a8c71 100644 Binary files a/Release/Plugins/RenX.Core.lib and b/Release/Plugins/RenX.Core.lib differ diff --git a/RenX.Core/RenX_Plugin.cpp b/RenX.Core/RenX_Plugin.cpp index 6b2b879..769b198 100644 --- a/RenX.Core/RenX_Plugin.cpp +++ b/RenX.Core/RenX_Plugin.cpp @@ -205,6 +205,56 @@ void RenX::Plugin::RenX_OnUnsubscribe(Server *, const Jupiter::ReadableString &) return; } +void RenX::Plugin::RenX_OnBlock(Server *, const Jupiter::ReadableString &, const Jupiter::ReadableString &) +{ + return; +} + +void RenX::Plugin::RenX_OnConnect(Server *, const Jupiter::ReadableString &) +{ + return; +} + +void RenX::Plugin::RenX_OnAuthenticate(Server *, const Jupiter::ReadableString &) +{ + return; +} + +void RenX::Plugin::RenX_OnBan(Server *, const Jupiter::ReadableString &, const Jupiter::ReadableString &) +{ + return; +} + +void RenX::Plugin::RenX_OnInvalidPassword(Server *, const Jupiter::ReadableString &) +{ + return; +} + +void RenX::Plugin::RenX_OnDrop(Server *, const Jupiter::ReadableString &, const Jupiter::ReadableString &) +{ + return; +} + +void RenX::Plugin::RenX_OnDisconnect(Server *, const Jupiter::ReadableString &) +{ + return; +} + +void RenX::Plugin::RenX_OnStopListen(Server *, const Jupiter::ReadableString &) +{ + return; +} + +void RenX::Plugin::RenX_OnResumeListen(Server *, const Jupiter::ReadableString &) +{ + return; +} + +void RenX::Plugin::RenX_OnWarning(Server *, const Jupiter::ReadableString &) +{ + return; +} + void RenX::Plugin::RenX_OnRCON(Server *, const Jupiter::ReadableString &) { return; diff --git a/RenX.Core/RenX_Plugin.h b/RenX.Core/RenX_Plugin.h index b5764e4..db6e553 100644 --- a/RenX.Core/RenX_Plugin.h +++ b/RenX.Core/RenX_Plugin.h @@ -83,6 +83,16 @@ namespace RenX virtual void RenX_OnExecute(Server *server, const Jupiter::ReadableString &user, const Jupiter::ReadableString &command); virtual void RenX_OnSubscribe(Server *server, const Jupiter::ReadableString &user); virtual void RenX_OnUnsubscribe(Server *server, const Jupiter::ReadableString &user); + virtual void RenX_OnBlock(Server *server, const Jupiter::ReadableString &user, const Jupiter::ReadableString &message); + virtual void RenX_OnConnect(Server *server, const Jupiter::ReadableString &user); + virtual void RenX_OnAuthenticate(Server *server, const Jupiter::ReadableString &user); + virtual void RenX_OnBan(Server *server, const Jupiter::ReadableString &user, const Jupiter::ReadableString &message); + virtual void RenX_OnInvalidPassword(Server *server, const Jupiter::ReadableString &user); + virtual void RenX_OnDrop(Server *server, const Jupiter::ReadableString &user, const Jupiter::ReadableString &message); + virtual void RenX_OnDisconnect(Server *server, const Jupiter::ReadableString &user); + virtual void RenX_OnStopListen(Server *server, const Jupiter::ReadableString &message); + virtual void RenX_OnResumeListen(Server *server, const Jupiter::ReadableString &message); + virtual void RenX_OnWarning(Server *server, const Jupiter::ReadableString &message); virtual void RenX_OnRCON(Server *server, const Jupiter::ReadableString &raw); /** Admin Type Logs */ diff --git a/RenX.Core/RenX_Server.cpp b/RenX.Core/RenX_Server.cpp index 574dc04..800573a 100644 --- a/RenX.Core/RenX_Server.cpp +++ b/RenX.Core/RenX_Server.cpp @@ -964,9 +964,9 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) } else kID = kIDToken.asInt(); - RenX::PlayerInfo *victim = getPlayerOrAdd(kName, kID, vTeam, kIsBot, 0, Jupiter::ReferenceString::empty); + RenX::PlayerInfo *killer = getPlayerOrAdd(kName, kID, vTeam, kIsBot, 0, Jupiter::ReferenceString::empty); for (size_t i = 0; i < xPlugins.size(); i++) - xPlugins.get(i)->RenX_OnKill(this, player, victim, damageType); + xPlugins.get(i)->RenX_OnKill(this, killer, player, damageType); } } else if (type.equals("died by")) @@ -1246,42 +1246,75 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) else if (subHeader.equals("Blocked;")) { // User | Reason="(Denied by IP Policy)" / "(Not on Whitelist)" + Jupiter::ReferenceString user = buff.getToken(2, RenX::DelimC); + Jupiter::ReferenceString message = buff.gotoToken(3, RenX::DelimC); + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnBlock(this, user, message); } else if (subHeader.equals("Connected;")) { // User + Jupiter::ReferenceString user = buff.getToken(2, RenX::DelimC); + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnConnect(this, user); } else if (subHeader.equals("Authenticated;")) { // User + Jupiter::ReferenceString user = buff.getToken(2, RenX::DelimC); + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnAuthenticate(this, user); } else if (subHeader.equals("Banned;")) { // User | "reason" | Reason="(Too many password attempts)" + Jupiter::ReferenceString user = buff.getToken(2, RenX::DelimC); + Jupiter::ReferenceString message = buff.gotoToken(4, RenX::DelimC); + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnBan(this, user, message); } else if (subHeader.equals("InvalidPassword;")) { // User + Jupiter::ReferenceString user = buff.getToken(2, RenX::DelimC); + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnInvalidPassword(this, user); } else if (subHeader.equals("Dropped;")) { // User | "reason" | Reason="(Auth Timeout)" + Jupiter::ReferenceString user = buff.getToken(2, RenX::DelimC); + Jupiter::ReferenceString message = buff.gotoToken(4, RenX::DelimC); + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnDrop(this, user, message); } else if (subHeader.equals("Disconnected;")) { // User + Jupiter::ReferenceString user = buff.getToken(2, RenX::DelimC); + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnDisconnect(this, user); } else if (subHeader.equals("StoppedListen;")) { // Reason="(Reached Connection Limit)" + Jupiter::ReferenceString message = buff.gotoToken(2, RenX::DelimC); + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnStopListen(this, message); } else if (subHeader.equals("ResumedListen;")) { // Reason="(No longer at Connection Limit)" + Jupiter::ReferenceString message = buff.gotoToken(2, RenX::DelimC); + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnResumeListen(this, message); } else if (subHeader.equals("Warning;")) { // Warning="(Hit Max Attempt Records - You should investigate Rcon attempts and/or decrease prune time)" + Jupiter::ReferenceString message = buff.gotoToken(2, RenX::DelimC); + for (size_t i = 0; i < xPlugins.size(); i++) + xPlugins.get(i)->RenX_OnWarning(this, message); } else {