From 62752db4c49a8679b51d5996003fd3a23c2a3f2d Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 25 Aug 2011 18:24:06 -0400 Subject: Rewrote mlock saving/loading code to not use this silly extensible hack --- modules/database/db_plain.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'modules/database/db_plain.cpp') diff --git a/modules/database/db_plain.cpp b/modules/database/db_plain.cpp index d2433b6fe..340775e0c 100644 --- a/modules/database/db_plain.cpp +++ b/modules/database/db_plain.cpp @@ -606,15 +606,19 @@ class DBPlain : public Module } else if (key.equals_ci("MLOCK")) { - std::vector mlocks; - ci->GetExtRegular("db_mlock", mlocks); - - Anope::string mlock_string = params[0] + " " + params[1] + " " + params[2] + " " + params[3]; - if (params.size() > 4) - mlock_string += " " + params[4]; - - mlocks.push_back(mlock_string); - ci->Extend("db_mlock", new ExtensibleItemRegular >(mlocks)); + bool set = params[0] == "1" ? true : false; + Anope::string mode_name = params[1]; + Anope::string setter = params[2]; + time_t created = params[3].is_pos_number_only() ? convertTo(params[3]) : Anope::CurTime; + Anope::string param = params.size() > 4 ? params[4] : ""; + + for (size_t i = CMODE_BEGIN + 1; i < CMODE_END; ++i) + if (ChannelModeNameStrings[i] == mode_name) + { + ChannelModeName n = static_cast(i); + ci->mode_locks.insert(std::make_pair(n, ModeLock(set, n, param, setter, created))); + break; + } } else if (key.equals_ci("MI")) { -- cgit