From 1f5e05e3b761e13031367ba565d446c0182b243e Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Thu, 16 Oct 2014 23:14:48 -0400 Subject: [PATCH] Moved resolution to OnPlayerCreate(). --- RenX.DNS/RenX_DNS.cpp | 38 ++++++++++++++++++++++++-------------- RenX.DNS/RenX_DNS.h | 3 ++- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/RenX.DNS/RenX_DNS.cpp b/RenX.DNS/RenX_DNS.cpp index 4a6a631..7de9ac7 100644 --- a/RenX.DNS/RenX_DNS.cpp +++ b/RenX.DNS/RenX_DNS.cpp @@ -17,24 +17,34 @@ typedef void(RenX::Server::*logFuncType)(const char *fmt, ...) const; -void RenX_DNSPlugin::RenX_OnJoin(RenX::Server *server, const RenX::PlayerInfo *player) +void RenX_DNSPlugin::RenX_OnPlayerCreate(RenX::Server *server, const RenX::PlayerInfo *player) { - Jupiter::ReferenceString host = Jupiter::ReferenceString(Jupiter::Socket::resolveHostname(Jupiter::CStringS(player->ip).c_str(), 0)); - const_cast(player)->varData.set(RenX_DNSPlugin::name, STRING_LITERAL_AS_REFERENCE("Host"), host); - - logFuncType func; - if (RenX_DNSPlugin::resolveAdmin) + if (player->isBot == false) { - if (RenX_DNSPlugin::resolvePublic) - func = &RenX::Server::sendLogChan; - else func = &RenX::Server::sendAdmChan; + Jupiter::ReferenceString host = Jupiter::ReferenceString(Jupiter::Socket::resolveHostname(Jupiter::CStringS(player->ip).c_str(), 0)); + const_cast(player)->varData.set(RenX_DNSPlugin::name, STRING_LITERAL_AS_REFERENCE("Host"), host); } - else if (RenX_DNSPlugin::resolvePublic) - func = &RenX::Server::sendPubChan; - else return; +} + +void RenX_DNSPlugin::RenX_OnJoin(RenX::Server *server, const RenX::PlayerInfo *player) +{ + if (player->isBot == false) + { + logFuncType func; + if (RenX_DNSPlugin::resolveAdmin) + { + if (RenX_DNSPlugin::resolvePublic) + func = &RenX::Server::sendLogChan; + else func = &RenX::Server::sendAdmChan; + } + else if (RenX_DNSPlugin::resolvePublic) + func = &RenX::Server::sendPubChan; + else return; - Jupiter::ReadableString &name = RenX::getFormattedPlayerName(player); - (server->*func)(IRCCOLOR "03[DNS] " IRCBOLD "%.*s" IRCBOLD IRCCOLOR "'s hostname resolved to: " IRCBOLD IRCCOLOR "10%.*s" IRCBOLD, name.size(), name.ptr(), host.size(), host.ptr()); + const Jupiter::ReadableString &host = player->varData.get(RenX_DNSPlugin::name, STRING_LITERAL_AS_REFERENCE("Host"), Jupiter::ReferenceString::empty); + Jupiter::ReadableString &name = RenX::getFormattedPlayerName(player); + (server->*func)(IRCCOLOR "03[DNS] " IRCBOLD "%.*s" IRCBOLD IRCCOLOR "'s hostname resolved to: " IRCBOLD IRCCOLOR "10%.*s" IRCBOLD, name.size(), name.ptr(), host.size(), host.ptr()); + } } int RenX_DNSPlugin::OnRehash() diff --git a/RenX.DNS/RenX_DNS.h b/RenX.DNS/RenX_DNS.h index b9494c7..eb4453c 100644 --- a/RenX.DNS/RenX_DNS.h +++ b/RenX.DNS/RenX_DNS.h @@ -16,7 +16,8 @@ class RenX_DNSPlugin : public RenX::Plugin { public: // RenX::Plugin - void RenX_OnJoin(RenX::Server *server, const RenX::PlayerInfo *player); + void RenX_OnPlayerCreate(RenX::Server *server, const RenX::PlayerInfo *player) override; + void RenX_OnJoin(RenX::Server *server, const RenX::PlayerInfo *player) override; public: // Jupiter::Plugin const Jupiter::ReadableString &getName() override { return name; }