summaryrefslogtreecommitdiff
path: root/modules/chanserv/main
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2016-11-25 16:35:10 -0500
committerAdam <Adam@anope.org>2016-11-25 16:35:56 -0500
commita635344582a13d935631fbe930d79d3788359c8a (patch)
treecd7b372d02f94c7f6c18542e06d29deff0f19842 /modules/chanserv/main
parentf30d99f81f6fb8abd7ca555068173bad6c99e07a (diff)
Rename most ext fields names to be consistent with everything else, add accessors for many
Diffstat (limited to 'modules/chanserv/main')
-rw-r--r--modules/chanserv/main/chanaccess.cpp6
-rw-r--r--modules/chanserv/main/chanaccesstype.h4
-rw-r--r--modules/chanserv/main/channel.cpp178
-rw-r--r--modules/chanserv/main/channel.h78
-rw-r--r--modules/chanserv/main/channeltype.cpp18
-rw-r--r--modules/chanserv/main/channeltype.h6
-rw-r--r--modules/chanserv/main/chanserv.cpp19
7 files changed, 273 insertions, 36 deletions
diff --git a/modules/chanserv/main/chanaccess.cpp b/modules/chanserv/main/chanaccess.cpp
index bf05cdf8b..75c70ed9c 100644
--- a/modules/chanserv/main/chanaccess.cpp
+++ b/modules/chanserv/main/chanaccess.cpp
@@ -23,12 +23,12 @@
ChanServ::Channel *ChanAccessImpl::GetChannel()
{
- return Get(&ChanAccessType<ChanServ::ChanAccess>::ci);
+ return Get(&ChanAccessType<ChanServ::ChanAccess>::channel);
}
-void ChanAccessImpl::SetChannel(ChanServ::Channel *ci)
+void ChanAccessImpl::SetChannel(ChanServ::Channel *channel)
{
- Object::Set(&ChanAccessType<ChanServ::ChanAccess>::ci, ci);
+ Object::Set(&ChanAccessType<ChanServ::ChanAccess>::channel, channel);
}
Anope::string ChanAccessImpl::GetCreator()
diff --git a/modules/chanserv/main/chanaccesstype.h b/modules/chanserv/main/chanaccesstype.h
index c755a7df5..b93747be7 100644
--- a/modules/chanserv/main/chanaccesstype.h
+++ b/modules/chanserv/main/chanaccesstype.h
@@ -23,7 +23,7 @@ class ChanAccessType : public Serialize::Type<T>
static_assert(std::is_base_of<ChanServ::ChanAccess, T>::value, "");
public:
- Serialize::ObjectField<ChanServ::ChanAccess, ChanServ::Channel *> ci;
+ Serialize::ObjectField<ChanServ::ChanAccess, ChanServ::Channel *> channel;
Serialize::Field<ChanServ::ChanAccess, Anope::string> mask;
Serialize::ObjectField<ChanServ::ChanAccess, Serialize::Object *> obj;
Serialize::Field<ChanServ::ChanAccess, Anope::string> creator;
@@ -31,7 +31,7 @@ class ChanAccessType : public Serialize::Type<T>
Serialize::Field<ChanServ::ChanAccess, time_t> created;
ChanAccessType(Module *me) : Serialize::Type<T>(me)
- , ci(this, "ci", &ChanServ::ChanAccess::channel, true)
+ , channel(this, "channel", &ChanServ::ChanAccess::channel, true)
, mask(this, "mask", &ChanServ::ChanAccess::mask)
, obj(this, "obj", &ChanServ::ChanAccess::object, true)
, creator(this, "creator", &ChanServ::ChanAccess::creator)
diff --git a/modules/chanserv/main/channel.cpp b/modules/chanserv/main/channel.cpp
index 67a4c94ec..a35c80901 100644
--- a/modules/chanserv/main/channel.cpp
+++ b/modules/chanserv/main/channel.cpp
@@ -76,7 +76,7 @@ time_t ChannelImpl::GetTimeRegistered()
return Get(&ChannelType::time_registered);
}
-void ChannelImpl::SetTimeRegistered(const time_t &t)
+void ChannelImpl::SetTimeRegistered(time_t t)
{
Set(&ChannelType::time_registered, t);
}
@@ -86,7 +86,7 @@ time_t ChannelImpl::GetLastUsed()
return Get(&ChannelType::last_used);
}
-void ChannelImpl::SetLastUsed(const time_t &t)
+void ChannelImpl::SetLastUsed(time_t t)
{
Set(&ChannelType::last_used, t);
}
@@ -116,7 +116,7 @@ time_t ChannelImpl::GetLastTopicTime()
return Get(&ChannelType::last_topic_time);
}
-void ChannelImpl::SetLastTopicTime(const time_t &t)
+void ChannelImpl::SetLastTopicTime(time_t t)
{
Set(&ChannelType::last_topic_time, t);
}
@@ -126,7 +126,7 @@ int16_t ChannelImpl::GetBanType()
return Get(&ChannelType::bantype);
}
-void ChannelImpl::SetBanType(const int16_t &i)
+void ChannelImpl::SetBanType(int16_t i)
{
Set(&ChannelType::bantype, i);
}
@@ -136,19 +136,19 @@ time_t ChannelImpl::GetBanExpire()
return Get(&ChannelType::banexpire);
}
-void ChannelImpl::SetBanExpire(const time_t &t)
+void ChannelImpl::SetBanExpire(time_t t)
{
Set(&ChannelType::banexpire, t);
}
BotInfo *ChannelImpl::GetBI()
{
- return Get(&ChannelType::bi);
+ return Get(&ChannelType::servicebot);
}
void ChannelImpl::SetBI(BotInfo *bi)
{
- Set(&ChannelType::bi, bi);
+ Set(&ChannelType::servicebot, bi);
}
ServiceBot *ChannelImpl::GetBot()
@@ -187,6 +187,166 @@ NickServ::Account *ChannelImpl::GetSuccessor()
return Get(&ChannelType::successor);
}
+bool ChannelImpl::IsGreet()
+{
+ return Get(&ChannelType::greet);
+}
+
+void ChannelImpl::SetGreet(bool greet)
+{
+ Set(&ChannelType::greet, greet);
+}
+
+bool ChannelImpl::IsFantasy()
+{
+ return Get(&ChannelType::fantasy);
+}
+
+void ChannelImpl::SetFantasy(bool fantasy)
+{
+ Set(&ChannelType::fantasy, fantasy);
+}
+
+bool ChannelImpl::IsNoAutoop()
+{
+ return Get(&ChannelType::noautoop);
+}
+
+void ChannelImpl::SetNoAutoop(bool noautoop)
+{
+ Set(&ChannelType::noautoop, noautoop);
+}
+
+bool ChannelImpl::IsPeace()
+{
+ return Get(&ChannelType::peace);
+}
+
+void ChannelImpl::SetPeace(bool peace)
+{
+ Set(&ChannelType::peace, peace);
+}
+
+bool ChannelImpl::IsSecureFounder()
+{
+ return Get(&ChannelType::securefounder);
+}
+
+void ChannelImpl::SetSecureFounder(bool securefounder)
+{
+ Set(&ChannelType::securefounder, securefounder);
+}
+
+bool ChannelImpl::IsRestricted()
+{
+ return Get(&ChannelType::restricted);
+}
+
+void ChannelImpl::SetRestricted(bool restricted)
+{
+ Set(&ChannelType::restricted, restricted);
+}
+
+bool ChannelImpl::IsSecure()
+{
+ return Get(&ChannelType::secure);
+}
+
+void ChannelImpl::SetSecure(bool secure)
+{
+ Set(&ChannelType::secure, secure);
+}
+
+bool ChannelImpl::IsSecureOps()
+{
+ return Get(&ChannelType::secureops);
+}
+
+void ChannelImpl::SetSecureOps(bool secureops)
+{
+ Set(&ChannelType::secureops, secureops);
+}
+
+bool ChannelImpl::IsSignKick()
+{
+ return Get(&ChannelType::signkick);
+}
+
+void ChannelImpl::SetSignKick(bool signkick)
+{
+ Set(&ChannelType::signkick, signkick);
+}
+
+bool ChannelImpl::IsSignKickLevel()
+{
+ return Get(&ChannelType::signkicklevel);
+}
+
+void ChannelImpl::SetSignKickLevel(bool signkicklevel)
+{
+ Set(&ChannelType::signkicklevel, signkicklevel);
+}
+
+bool ChannelImpl::IsNoExpire()
+{
+ return Get(&ChannelType::noexpire);
+}
+
+void ChannelImpl::SetNoExpire(bool noexpire)
+{
+ Set(&ChannelType::noexpire, noexpire);
+}
+
+bool ChannelImpl::IsKeepModes()
+{
+ return Get(&ChannelType::keepmodes);
+}
+
+void ChannelImpl::SetKeepModes(bool keepmodes)
+{
+ Set(&ChannelType::keepmodes, keepmodes);
+}
+
+bool ChannelImpl::IsPersist()
+{
+ return Get(&ChannelType::persist);
+}
+
+void ChannelImpl::SetPersist(bool persist)
+{
+ Set(&ChannelType::persist, persist);
+}
+
+bool ChannelImpl::IsTopicLock()
+{
+ return Get(&ChannelType::topiclock);
+}
+
+void ChannelImpl::SetTopicLock(bool topiclock)
+{
+ Set(&ChannelType::topiclock, topiclock);
+}
+
+bool ChannelImpl::IsKeepTopic()
+{
+ return Get(&ChannelType::keeptopic);
+}
+
+void ChannelImpl::SetKeepTopic(bool keeptopic)
+{
+ Set(&ChannelType::keeptopic, keeptopic);
+}
+
+bool ChannelImpl::IsPrivate()
+{
+ return Get(&ChannelType::_private);
+}
+
+void ChannelImpl::SetPrivate(bool _private)
+{
+ Set(&ChannelType::_private, _private);
+}
+
ChanServ::ChanAccess *ChannelImpl::GetAccess(unsigned index)
{
std::vector<ChanServ::ChanAccess *> a = GetRefs<ChanServ::ChanAccess *>();
@@ -200,8 +360,8 @@ ChanServ::AccessGroup ChannelImpl::AccessFor(const User *u, bool updateLastUsed)
if (u == NULL)
return group;
- const NickServ::Account *nc = u->Account();
- if (nc == NULL && !this->HasFieldS("NS_SECURE") && u->IsRecognized())
+ NickServ::Account *nc = u->Account();
+ if (nc == NULL && !nc->IsSecure() && u->IsRecognized())
{
NickServ::Nick *na = NickServ::FindNick(u->nick);
if (na != NULL)
diff --git a/modules/chanserv/main/channel.h b/modules/chanserv/main/channel.h
index 94f56ddd4..fd9a357eb 100644
--- a/modules/chanserv/main/channel.h
+++ b/modules/chanserv/main/channel.h
@@ -29,6 +29,22 @@ class ChannelImpl : public ChanServ::Channel
int16_t bantype = 0;
time_t banexpire = 0;
BotInfo *bi = nullptr;
+ bool greet = false;
+ bool fantasy = false;
+ bool noautoop = false;
+ bool peace = false;
+ bool securefounder = false;
+ bool restricted = false;
+ bool secure = false;
+ bool secureops = false;
+ bool signkick = false;
+ bool signkicklevel = false;
+ bool noexpire = false;
+ bool keepmodes = false;
+ bool persist = false;
+ bool topiclock = false;
+ bool keeptopic = false;
+ bool _private = false;
public:
ChannelImpl(Serialize::TypeBase *type) : ChanServ::Channel(type) { }
@@ -43,10 +59,10 @@ class ChannelImpl : public ChanServ::Channel
void SetDesc(const Anope::string &) override;
time_t GetTimeRegistered() override;
- void SetTimeRegistered(const time_t &) override;
+ void SetTimeRegistered(time_t) override;
time_t GetLastUsed() override;
- void SetLastUsed(const time_t &) override;
+ void SetLastUsed(time_t) override;
Anope::string GetLastTopic() override;
void SetLastTopic(const Anope::string &) override;
@@ -55,13 +71,13 @@ class ChannelImpl : public ChanServ::Channel
void SetLastTopicSetter(const Anope::string &) override;
time_t GetLastTopicTime() override;
- void SetLastTopicTime(const time_t &) override;
+ void SetLastTopicTime(time_t) override;
int16_t GetBanType() override;
- void SetBanType(const int16_t &) override;
+ void SetBanType(int16_t) override;
time_t GetBanExpire() override;
- void SetBanExpire(const time_t &) override;
+ void SetBanExpire(time_t) override;
BotInfo *GetBI() override;
void SetBI(BotInfo *) override;
@@ -77,11 +93,59 @@ class ChannelImpl : public ChanServ::Channel
void SetSuccessor(NickServ::Account *nc) override;
NickServ::Account *GetSuccessor() override;
+ bool IsGreet() override;
+ void SetGreet(bool) override;
+
+ bool IsFantasy() override;
+ void SetFantasy(bool) override;
+
+ bool IsNoAutoop() override;
+ void SetNoAutoop(bool) override;
+
+ bool IsPeace() override;
+ void SetPeace(bool) override;
+
+ bool IsSecureFounder() override;
+ void SetSecureFounder(bool) override;
+
+ bool IsRestricted() override;
+ void SetRestricted(bool) override;
+
+ bool IsSecure() override;
+ void SetSecure(bool) override;
+
+ bool IsSecureOps() override;
+ void SetSecureOps(bool) override;
+
+ bool IsSignKick() override;
+ void SetSignKick(bool) override;
+
+ bool IsSignKickLevel() override;
+ void SetSignKickLevel(bool) override;
+
+ bool IsNoExpire() override;
+ void SetNoExpire(bool) override;
+
+ bool IsKeepModes() override;
+ void SetKeepModes(bool) override;
+
+ bool IsPersist() override;
+ void SetPersist(bool) override;
+
+ bool IsTopicLock() override;
+ void SetTopicLock(bool) override;
+
+ bool IsKeepTopic() override;
+ void SetKeepTopic(bool) override;
+
+ bool IsPrivate() override;
+ void SetPrivate(bool) override;
+
bool IsFounder(const User *user) override;
- ChanServ::ChanAccess *GetAccess(unsigned index) /*const*/ override;
+ ChanServ::ChanAccess *GetAccess(unsigned index) override;
ChanServ::AccessGroup AccessFor(const User *u, bool = true) override;
ChanServ::AccessGroup AccessFor(NickServ::Account *nc, bool = true) override;
- unsigned GetAccessCount()/* const*/ override;
+ unsigned GetAccessCount() override;
void ClearAccess() override;
AutoKick* AddAkick(const Anope::string &user, NickServ::Account *akicknc, const Anope::string &reason, time_t t = Anope::CurTime, time_t lu = 0) override;
AutoKick* AddAkick(const Anope::string &user, const Anope::string &mask, const Anope::string &reason, time_t t = Anope::CurTime, time_t lu = 0) override;
diff --git a/modules/chanserv/main/channeltype.cpp b/modules/chanserv/main/channeltype.cpp
index 37c290ef1..3f72cbb6b 100644
--- a/modules/chanserv/main/channeltype.cpp
+++ b/modules/chanserv/main/channeltype.cpp
@@ -32,7 +32,23 @@ ChannelType::ChannelType(Module *me) : Serialize::Type<ChannelImpl>(me)
, banexpire(this, "banexpire", &ChannelImpl::banexpire)
, founder(this, "founder", &ChannelImpl::founder)
, successor(this, "successor", &ChannelImpl::successor)
- , bi(this, "bi", &ChannelImpl::bi)
+ , servicebot(this, "servicebot", &ChannelImpl::bi)
+ , greet(this, "greet", &ChannelImpl::greet)
+ , fantasy(this, "fantasy", &ChannelImpl::fantasy)
+ , noautoop(this, "noautoop", &ChannelImpl::noautoop)
+ , peace(this, "peace", &ChannelImpl::peace)
+ , securefounder(this, "securefounder", &ChannelImpl::securefounder)
+ , restricted(this, "restricted", &ChannelImpl::restricted)
+ , secure(this, "secure", &ChannelImpl::secure)
+ , secureops(this, "secureops", &ChannelImpl::secureops)
+ , signkick(this, "signkick", &ChannelImpl::signkick)
+ , signkicklevel(this, "signkicklevel", &ChannelImpl::signkicklevel)
+ , noexpire(this, "noexpire", &ChannelImpl::noexpire)
+ , keepmodes(this, "keepmodes", &ChannelImpl::keepmodes)
+ , persist(this, "persist", &ChannelImpl::persist)
+ , topiclock(this, "topiclock", &ChannelImpl::topiclock)
+ , keeptopic(this, "keeptopic", &ChannelImpl::keeptopic)
+ , _private(this, "private", &ChannelImpl::_private)
{
}
diff --git a/modules/chanserv/main/channeltype.h b/modules/chanserv/main/channeltype.h
index 1f1c92201..4f833c82b 100644
--- a/modules/chanserv/main/channeltype.h
+++ b/modules/chanserv/main/channeltype.h
@@ -45,7 +45,11 @@ class ChannelType : public Serialize::Type<ChannelImpl>
/* Who gets the channel if the founder nick is dropped or expires */
Serialize::ObjectField<ChannelImpl, NickServ::Account *> successor;
- Serialize::ObjectField<ChannelImpl, BotInfo *> bi;
+ Serialize::ObjectField<ChannelImpl, BotInfo *> servicebot;
+
+ Serialize::Field<ChannelImpl, bool> greet, fantasy, noautoop, peace, securefounder,
+ restricted, secure, secureops, signkick, signkicklevel, noexpire, keepmodes,
+ persist, topiclock, keeptopic, _private;
ChannelType(Module *);
diff --git a/modules/chanserv/main/chanserv.cpp b/modules/chanserv/main/chanserv.cpp
index c6b30c2df..b6aedb0dd 100644
--- a/modules/chanserv/main/chanserv.cpp
+++ b/modules/chanserv/main/chanserv.cpp
@@ -249,16 +249,9 @@ class ChanServCore : public Module
spacesepstream(conf->GetModule(this)->Get<Anope::string>("defaults", "greet fantasy")).GetTokens(defaults);
if (defaults.empty())
- {
- defaults.push_back("KEEPTOPIC");
- defaults.push_back("CS_SECURE");
- defaults.push_back("SECUREFOUNDER");
- defaults.push_back("SIGNKICK");
- }
+ defaults = { "keeptopic", "secure", "securefounder", "signkick" };
else if (defaults[0].equals_ci("none"))
- {
defaults.clear();
- }
always_lower = conf->GetModule(this)->Get<bool>("always_lower_ts");
}
@@ -408,7 +401,7 @@ class ChanServCore : public Module
void OnChannelSync(Channel *c) override
{
- bool perm = c->HasMode("PERM") || (c->ci && c->ci->HasFieldS("PERSIST"));
+ bool perm = c->HasMode("PERM") || (c->ci && c->ci->IsPersist());
if (!perm && !c->botchannel && (c->users.empty() || (c->users.size() == 1 && c->users.begin()->second->user->server == Me)))
{
this->Hold(c);
@@ -470,7 +463,7 @@ class ChanServCore : public Module
/* Find all persistent channels and create them, as we are about to finish burst to our uplink */
for (ChanServ::Channel *ci : Serialize::GetObjects<ChanServ::Channel *>())
{
- if (ci->HasFieldS("PERSIST"))
+ if (ci->IsPersist())
{
bool c;
ci->c = Channel::FindOrCreate(ci->GetName(), c, ci->GetTimeRegistered());
@@ -508,9 +501,9 @@ class ChanServCore : public Module
return;
/* Mark the channel as persistent */
if (ci->c->HasMode("PERM"))
- ci->SetS("PERSIST", true);
+ ci->SetPersist(true);
/* Persist may be in def cflags, set it here */
- else if (ci->HasFieldS("PERSIST"))
+ else if (ci->IsPersist())
ci->c->SetMode(NULL, "PERM");
}
@@ -550,7 +543,7 @@ class ChanServCore : public Module
return;
time_t chanserv_expire = Config->GetModule(this)->Get<time_t>("expire", "14d");
- if (!ci->HasFieldS("CS_NO_EXPIRE") && chanserv_expire && !Anope::NoExpire && ci->GetLastUsed() != Anope::CurTime)
+ if (!ci->IsNoExpire() && chanserv_expire && !Anope::NoExpire && ci->GetLastUsed() != Anope::CurTime)
info[_("Expires")] = Anope::strftime(ci->GetLastUsed() + chanserv_expire, source.GetAccount());
}