diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-03-31 04:41:56 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-03-31 04:41:56 +0000 |
commit | b55ac06019785b308ac1ead44414f8c6dee226fc (patch) | |
tree | 513033038be0a1a327b8dc714936d29d2f742353 /src/modules/mysql/db_mysql_read.cpp | |
parent | eaf211d59ca799719970f2789758eff6bc269eab (diff) |
Added akicks into SQL
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2848 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/modules/mysql/db_mysql_read.cpp')
-rw-r--r-- | src/modules/mysql/db_mysql_read.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/modules/mysql/db_mysql_read.cpp b/src/modules/mysql/db_mysql_read.cpp index 2cbcd669c..bbbca0df2 100644 --- a/src/modules/mysql/db_mysql_read.cpp +++ b/src/modules/mysql/db_mysql_read.cpp @@ -438,6 +438,42 @@ static void LoadDatabase() } } + query << "SELECT * FROM `anope_cs_akick`"; + qres = StoreQuery(query); + + if (qres) + { + for (size_t i = 0; i < qres.num_rows(); ++i) + { + ChannelInfo *ci = cs_findchan(SQLAssign(qres[i]["channel"])); + if (!ci) + { + Alog() << "MySQL: Channel akick entry for nonexistant channel " << qres[i]["channel"]; + continue; + } + NickCore *nc = NULL; + spacesepstream sep(qres[i]["flags"]); + std::string flag, mask; + bool stuck = false; + while (sep.GetToken(flag)) + { + if (flag == "ISNICK") + nc = findcore(qres[i]["mask"]); + else if (flag == "STUCK") + stuck = true; + } + AutoKick *ak; + if (nc) + ak = ci->AddAkick(SQLAssign(qres[i]["creator"]), nc, SQLAssign(qres[i]["reason"]), atol(qres[i]["created"].c_str()), atol(qres[i]["last_used"].c_str())); + else + ak = ci->AddAkick(SQLAssign(qres[i]["creator"]), SQLAssign(qres[i]["mask"]), SQLAssign(qres[i]["reason"]), atol(qres[i]["created"].c_str()), atol(qres[i]["last_used"].c_str())); + if (stuck) + ak->SetFlag(AK_STUCK); + if (nc) + ak->SetFlag(AK_ISNICK); + } + } + query << "SELECT * FROM `anope_cs_levels`"; qres = StoreQuery(query); |