diff --git a/Release/Plugins/RenX.Core.lib b/Release/Plugins/RenX.Core.lib index 3c0edd0..f3c236d 100644 Binary files a/Release/Plugins/RenX.Core.lib and b/Release/Plugins/RenX.Core.lib differ diff --git a/RenX.Core/RenX_LadderDatabase.cpp b/RenX.Core/RenX_LadderDatabase.cpp index 9b9624a..29a1b18 100644 --- a/RenX.Core/RenX_LadderDatabase.cpp +++ b/RenX.Core/RenX_LadderDatabase.cpp @@ -391,13 +391,13 @@ void RenX::LadderDatabase::sort_entries() RenX::LadderDatabase::last_sort = std::chrono::steady_clock::now(); } -void RenX::LadderDatabase::updateLadder(RenX::Server *server, const RenX::TeamType &team, bool output_times) +void RenX::LadderDatabase::updateLadder(RenX::Server *server, const RenX::TeamType &team) { if (server->players.size() != server->getBotCount()) { // call the PreUpdateLadder event if (this->OnPreUpdateLadder != nullptr) - this->OnPreUpdateLadder(*this, server, team, output_times); + this->OnPreUpdateLadder(*this, server, team); // update player stats in memory RenX::PlayerInfo *player; @@ -484,7 +484,7 @@ void RenX::LadderDatabase::updateLadder(RenX::Server *server, const RenX::TeamTy RenX::LadderDatabase::write(this->getFilename()); std::chrono::steady_clock::duration write_duration = std::chrono::steady_clock::now() - start_time; - if (output_times) + if (RenX::LadderDatabase::output_times) { Jupiter::StringS str = Jupiter::StringS::Format("Ladder: %u entries sorted in %f seconds; Database written in %f seconds." ENDL, RenX::LadderDatabase::getEntries(), @@ -520,3 +520,13 @@ void RenX::LadderDatabase::setName(const Jupiter::ReadableString &in_name) { RenX::LadderDatabase::name = in_name; } + +bool RenX::LadderDatabase::getOutputTimes() const +{ + return RenX::LadderDatabase::output_times; +} + +void RenX::LadderDatabase::setOutputTimes(bool in_output_times) +{ + RenX::LadderDatabase::output_times = in_output_times; +} diff --git a/RenX.Core/RenX_LadderDatabase.h b/RenX.Core/RenX_LadderDatabase.h index 54a73b9..a712833 100644 --- a/RenX.Core/RenX_LadderDatabase.h +++ b/RenX.Core/RenX_LadderDatabase.h @@ -168,7 +168,7 @@ namespace RenX * @param team Team which just won * @param output_times True if the sort/write times should be output, false otherwise. */ - void updateLadder(RenX::Server *server, const RenX::TeamType &team, bool output_times); + void updateLadder(RenX::Server *server, const RenX::TeamType &team); /** * @brief Erases all entries in the database. @@ -185,6 +185,20 @@ namespace RenX */ void setName(const Jupiter::ReadableString &in_name); + /** + * @brief Checks if this database outputs sort/write times when 'updateLadder' is called. + * + * @return True if output times get printed, false otherwise. + */ + bool getOutputTimes() const; + + /** + * @brief Sets this database to output sort/write times, or to not output sort/write times. + * + * @param in_output_times True to output sort/write times, false otherwise. + */ + void setOutputTimes(bool in_output_times); + /** * @brief Constructor for the LadderDatabase class */ @@ -200,7 +214,7 @@ namespace RenX */ ~LadderDatabase(); - typedef void PreUpdateLadderFunction(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team, bool output_times); + typedef void PreUpdateLadderFunction(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team); PreUpdateLadderFunction *OnPreUpdateLadder = nullptr; private: @@ -208,6 +222,7 @@ namespace RenX const uint8_t write_version = 0; uint8_t read_version = write_version; + bool output_times = false; Jupiter::StringS name; std::chrono::steady_clock::time_point last_sort = std::chrono::steady_clock::now(); size_t entries = 0; diff --git a/RenX.Ladder.All-Time/RenX_Ladder_All_Time.cpp b/RenX.Ladder.All-Time/RenX_Ladder_All_Time.cpp index 27c3e37..fb51ee1 100644 --- a/RenX.Ladder.All-Time/RenX_Ladder_All_Time.cpp +++ b/RenX.Ladder.All-Time/RenX_Ladder_All_Time.cpp @@ -27,9 +27,10 @@ RenX_Ladder_All_TimePlugin::RenX_Ladder_All_TimePlugin() // Load database this->database.process_file(Jupiter::IRC::Client::Config->get(this->getName(), "LadderDatabase"_jrs, "Ladder.db"_jrs)); this->database.setName(Jupiter::IRC::Client::Config->get(this->getName(), "DatabaseName"_jrs, "All-Time"_jrs)); + this->database.setOutputTimes(Jupiter::IRC::Client::Config->getBool(this->getName(), "OutputTimes"_jrs, true)); // Force database to default, if desired - if (Jupiter::IRC::Client::Config->getBool(this->getName(), "ForceDefault"_jrs, false)) + if (Jupiter::IRC::Client::Config->getBool(this->getName(), "ForceDefault"_jrs, true)) RenX::default_ladder_database = &this->database; } diff --git a/RenX.Ladder.Daily/RenX_Ladder_Daily.cpp b/RenX.Ladder.Daily/RenX_Ladder_Daily.cpp index 5b90824..99d3893 100644 --- a/RenX.Ladder.Daily/RenX_Ladder_Daily.cpp +++ b/RenX.Ladder.Daily/RenX_Ladder_Daily.cpp @@ -28,6 +28,7 @@ RenX_Ladder_Daily_TimePlugin::RenX_Ladder_Daily_TimePlugin() // Load database this->database.process_file(Jupiter::IRC::Client::Config->get(this->getName(), "LadderDatabase"_jrs, "Ladder.Daily.db"_jrs)); this->database.setName(Jupiter::IRC::Client::Config->get(this->getName(), "DatabaseName"_jrs, "Daily"_jrs)); + this->database.setOutputTimes(Jupiter::IRC::Client::Config->getBool(this->getName(), "OutputTimes"_jrs, false)); this->last_sorted_day = gmtime(std::addressof(time(0)))->tm_wday; this->database.OnPreUpdateLadder = OnPreUpdateLadder; @@ -40,7 +41,7 @@ RenX_Ladder_Daily_TimePlugin::RenX_Ladder_Daily_TimePlugin() // Plugin instantiation and entry point. RenX_Ladder_Daily_TimePlugin pluginInstance; -void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team, bool output_times) +void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team) { tm *tm_ptr = gmtime(std::addressof(time(0))); if (pluginInstance.last_sorted_day != tm_ptr->tm_wday) diff --git a/RenX.Ladder.Daily/RenX_Ladder_Daily.h b/RenX.Ladder.Daily/RenX_Ladder_Daily.h index be3f87c..646e015 100644 --- a/RenX.Ladder.Daily/RenX_Ladder_Daily.h +++ b/RenX.Ladder.Daily/RenX_Ladder_Daily.h @@ -37,6 +37,6 @@ private: STRING_LITERAL_AS_NAMED_REFERENCE(name, "RenX.Ladder.Daily"); }; -void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team, bool output_times); +void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team); #endif // _RENX_LADDER_ALL_TIME \ No newline at end of file diff --git a/RenX.Ladder.Monthly/RenX_Ladder_Monthly.cpp b/RenX.Ladder.Monthly/RenX_Ladder_Monthly.cpp index f4a46e1..c4109c1 100644 --- a/RenX.Ladder.Monthly/RenX_Ladder_Monthly.cpp +++ b/RenX.Ladder.Monthly/RenX_Ladder_Monthly.cpp @@ -28,6 +28,7 @@ RenX_Ladder_Monthly_TimePlugin::RenX_Ladder_Monthly_TimePlugin() // Load database this->database.process_file(Jupiter::IRC::Client::Config->get(this->getName(), "LadderDatabase"_jrs, "Ladder.Monthly.db"_jrs)); this->database.setName(Jupiter::IRC::Client::Config->get(this->getName(), "DatabaseName"_jrs, "Monthly"_jrs)); + this->database.setOutputTimes(Jupiter::IRC::Client::Config->getBool(this->getName(), "OutputTimes"_jrs, false)); this->last_sorted_month = gmtime(std::addressof(time(0)))->tm_mon; this->database.OnPreUpdateLadder = OnPreUpdateLadder; @@ -40,7 +41,7 @@ RenX_Ladder_Monthly_TimePlugin::RenX_Ladder_Monthly_TimePlugin() // Plugin instantiation and entry point. RenX_Ladder_Monthly_TimePlugin pluginInstance; -void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team, bool output_times) +void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team) { tm *tm_ptr = gmtime(std::addressof(time(0))); if (pluginInstance.last_sorted_month != tm_ptr->tm_mon) diff --git a/RenX.Ladder.Monthly/RenX_Ladder_Monthly.h b/RenX.Ladder.Monthly/RenX_Ladder_Monthly.h index a556d37..20da6fb 100644 --- a/RenX.Ladder.Monthly/RenX_Ladder_Monthly.h +++ b/RenX.Ladder.Monthly/RenX_Ladder_Monthly.h @@ -37,6 +37,6 @@ private: STRING_LITERAL_AS_NAMED_REFERENCE(name, "RenX.Ladder.Monthly"); }; -void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team, bool output_times); +void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team); #endif // _RENX_LADDER_ALL_TIME \ No newline at end of file diff --git a/RenX.Ladder.Weekly/RenX_Ladder_Weekly.cpp b/RenX.Ladder.Weekly/RenX_Ladder_Weekly.cpp index fe58a1e..5ed0538 100644 --- a/RenX.Ladder.Weekly/RenX_Ladder_Weekly.cpp +++ b/RenX.Ladder.Weekly/RenX_Ladder_Weekly.cpp @@ -28,6 +28,7 @@ RenX_Ladder_Weekly_TimePlugin::RenX_Ladder_Weekly_TimePlugin() // Load database this->database.process_file(Jupiter::IRC::Client::Config->get(this->getName(), "LadderDatabase"_jrs, "Ladder.Weekly.db"_jrs)); this->database.setName(Jupiter::IRC::Client::Config->get(this->getName(), "DatabaseName"_jrs, "Weekly"_jrs)); + this->database.setOutputTimes(Jupiter::IRC::Client::Config->getBool(this->getName(), "OutputTimes"_jrs, false)); this->last_sorted_day = gmtime(std::addressof(time(0)))->tm_wday; this->reset_day = Jupiter::IRC::Client::Config->getInt(this->getName(), "ResetDay"_jrs); @@ -41,7 +42,7 @@ RenX_Ladder_Weekly_TimePlugin::RenX_Ladder_Weekly_TimePlugin() // Plugin instantiation and entry point. RenX_Ladder_Weekly_TimePlugin pluginInstance; -void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team, bool output_times) +void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team) { tm *tm_ptr = gmtime(std::addressof(time(0))); if (pluginInstance.last_sorted_day != tm_ptr->tm_wday && tm_ptr->tm_wday == pluginInstance.reset_day) diff --git a/RenX.Ladder.Weekly/RenX_Ladder_Weekly.h b/RenX.Ladder.Weekly/RenX_Ladder_Weekly.h index b3d5542..0a737ff 100644 --- a/RenX.Ladder.Weekly/RenX_Ladder_Weekly.h +++ b/RenX.Ladder.Weekly/RenX_Ladder_Weekly.h @@ -38,6 +38,6 @@ private: STRING_LITERAL_AS_NAMED_REFERENCE(name, "RenX.Ladder.Weekly"); }; -void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team, bool output_times); +void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team); #endif // _RENX_LADDER_ALL_TIME \ No newline at end of file diff --git a/RenX.Ladder.Yearly/RenX_Ladder_Yearly.cpp b/RenX.Ladder.Yearly/RenX_Ladder_Yearly.cpp index acee35f..3256e1c 100644 --- a/RenX.Ladder.Yearly/RenX_Ladder_Yearly.cpp +++ b/RenX.Ladder.Yearly/RenX_Ladder_Yearly.cpp @@ -28,6 +28,7 @@ RenX_Ladder_Yearly_TimePlugin::RenX_Ladder_Yearly_TimePlugin() // Load database this->database.process_file(Jupiter::IRC::Client::Config->get(this->getName(), "LadderDatabase"_jrs, "Ladder.Yearly.db"_jrs)); this->database.setName(Jupiter::IRC::Client::Config->get(this->getName(), "DatabaseName"_jrs, "Yearly"_jrs)); + this->database.setOutputTimes(Jupiter::IRC::Client::Config->getBool(this->getName(), "OutputTimes"_jrs, false)); this->last_sorted_year = gmtime(std::addressof(time(0)))->tm_year; this->database.OnPreUpdateLadder = OnPreUpdateLadder; @@ -40,7 +41,7 @@ RenX_Ladder_Yearly_TimePlugin::RenX_Ladder_Yearly_TimePlugin() // Plugin instantiation and entry point. RenX_Ladder_Yearly_TimePlugin pluginInstance; -void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team, bool output_times) +void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team) { tm *tm_ptr = gmtime(std::addressof(time(0))); if (pluginInstance.last_sorted_year != tm_ptr->tm_year) diff --git a/RenX.Ladder.Yearly/RenX_Ladder_Yearly.h b/RenX.Ladder.Yearly/RenX_Ladder_Yearly.h index 85ae403..d92c42c 100644 --- a/RenX.Ladder.Yearly/RenX_Ladder_Yearly.h +++ b/RenX.Ladder.Yearly/RenX_Ladder_Yearly.h @@ -37,6 +37,6 @@ private: STRING_LITERAL_AS_NAMED_REFERENCE(name, "RenX.Ladder.Yearly"); }; -void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team, bool output_times); +void OnPreUpdateLadder(RenX::LadderDatabase &database, RenX::Server *server, const RenX::TeamType &team); #endif // _RENX_LADDER_ALL_TIME \ No newline at end of file diff --git a/RenX.Ladder/RenX_Ladder.cpp b/RenX.Ladder/RenX_Ladder.cpp index cb722cf..b9ce420 100644 --- a/RenX.Ladder/RenX_Ladder.cpp +++ b/RenX.Ladder/RenX_Ladder.cpp @@ -29,7 +29,6 @@ using namespace Jupiter::literals; RenX_LadderPlugin::RenX_LadderPlugin() { RenX_LadderPlugin::only_pure = Jupiter::IRC::Client::Config->getBool(this->getName(), "OnlyPure"_jrs, false); - RenX_LadderPlugin::output_times = Jupiter::IRC::Client::Config->getBool(this->getName(), "OutputTimes"_jrs, true); int mlcpno = Jupiter::IRC::Client::Config->getInt(this->getName(), "MaxLadderCommandPartNameOutput"_jrs, 5); if (mlcpno < 0) RenX_LadderPlugin::max_ladder_command_part_name_output = 0; @@ -59,7 +58,7 @@ void RenX_LadderPlugin::RenX_OnCommand(RenX::Server *server, const Jupiter::Read server->varData.set(this->name, "w"_jrs, "0"_jrs); RenX::TeamType team = static_cast(server->varData.get(this->name, "t"_jrs, "\0"_jrs).get(0)); for (size_t index = 0; index != RenX::ladder_databases.size(); ++index) - RenX::ladder_databases.get(index)->updateLadder(server, team, RenX_LadderPlugin::output_times); + RenX::ladder_databases.get(index)->updateLadder(server, team); } } } diff --git a/RenX.Ladder/RenX_Ladder.h b/RenX.Ladder/RenX_Ladder.h index f7cc16d..ab254ec 100644 --- a/RenX.Ladder/RenX_Ladder.h +++ b/RenX.Ladder/RenX_Ladder.h @@ -44,7 +44,7 @@ public: private: /** Configuration variables */ - bool only_pure, output_times; + bool only_pure; size_t max_ladder_command_part_name_output; STRING_LITERAL_AS_NAMED_REFERENCE(name, "RenX.Ladder"); };