summaryrefslogtreecommitdiff
path: root/modules/nickserv/main
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nickserv/main')
-rw-r--r--modules/nickserv/main/account.cpp5
-rw-r--r--modules/nickserv/main/account.h30
-rw-r--r--modules/nickserv/main/mode.h7
-rw-r--r--modules/nickserv/main/nick.h11
4 files changed, 29 insertions, 24 deletions
diff --git a/modules/nickserv/main/account.cpp b/modules/nickserv/main/account.cpp
index fa6de8455..a6fa19adf 100644
--- a/modules/nickserv/main/account.cpp
+++ b/modules/nickserv/main/account.cpp
@@ -37,6 +37,11 @@ void AccountImpl::Delete()
return Serialize::Object::Delete();
}
+bool AccountImpl::CanGC()
+{
+ return users.empty();
+}
+
Anope::string AccountImpl::GetDisplay()
{
return Get<Anope::string>(&AccountType::display);
diff --git a/modules/nickserv/main/account.h b/modules/nickserv/main/account.h
index 928213666..ba07a2a13 100644
--- a/modules/nickserv/main/account.h
+++ b/modules/nickserv/main/account.h
@@ -23,26 +23,28 @@ class AccountImpl : public NickServ::Account
{
friend class AccountType;
- Anope::string display, password, email, language;
- Oper *oper = nullptr;
- Anope::string greet;
- bool unconfirmed = false;
- bool _private = false;
- bool autoop = false;
- bool keepmodes = false;
- bool killprotect = false;
- bool killquick = false;
- bool killimmed = false;
- bool msg = false;
- bool secure = false;
- bool memosignon = false, memoreceive = false, memomail = false;
- bool hideemail = false, hidemask = false, hidestatus = false, hidequit = false;
+ Serialize::Storage<Anope::string> display, password, email, language;
+ Serialize::Storage<Oper *> oper;
+ Serialize::Storage<Anope::string> greet;
+ Serialize::Storage<bool> unconfirmed;
+ Serialize::Storage<bool> _private;
+ Serialize::Storage<bool> autoop;
+ Serialize::Storage<bool> keepmodes;
+ Serialize::Storage<bool> killprotect;
+ Serialize::Storage<bool> killquick;
+ Serialize::Storage<bool> killimmed;
+ Serialize::Storage<bool> msg;
+ Serialize::Storage<bool> secure;
+ Serialize::Storage<bool> memosignon, memoreceive, memomail;
+ Serialize::Storage<bool> hideemail, hidemask, hidestatus, hidequit;
public:
using NickServ::Account::Account;
~AccountImpl();
void Delete() override;
+ bool CanGC() override;
+
Anope::string GetDisplay() override;
void SetDisplay(const Anope::string &) override;
diff --git a/modules/nickserv/main/mode.h b/modules/nickserv/main/mode.h
index a8db73b7e..d4246809c 100644
--- a/modules/nickserv/main/mode.h
+++ b/modules/nickserv/main/mode.h
@@ -21,12 +21,11 @@ class ModeImpl : public NickServ::Mode
{
friend class NSModeType;
- NickServ::Account *account = nullptr;
- Anope::string mode;
+ Serialize::Storage<NickServ::Account *> account;
+ Serialize::Storage<Anope::string> mode;
public:
- ModeImpl(Serialize::TypeBase *type) : NickServ::Mode(type) { }
- ModeImpl(Serialize::TypeBase *type, Serialize::ID id) : NickServ::Mode(type, id) { }
+ using NickServ::Mode::Mode;
NickServ::Account *GetAccount() override;
void SetAccount(NickServ::Account *) override;
diff --git a/modules/nickserv/main/nick.h b/modules/nickserv/main/nick.h
index 9df205fb9..df0577d94 100644
--- a/modules/nickserv/main/nick.h
+++ b/modules/nickserv/main/nick.h
@@ -21,14 +21,13 @@ class NickImpl : public NickServ::Nick
{
friend class NickType;
- NickServ::Account *account = nullptr;
- Anope::string nick, last_quit, last_realname, last_usermask, last_realhost;
- time_t time_registered = 0, last_seen = 0;
- bool noexpire = false;
+ Serialize::Storage<NickServ::Account *> account;
+ Serialize::Storage<Anope::string> nick, last_quit, last_realname, last_usermask, last_realhost;
+ Serialize::Storage<time_t> time_registered, last_seen;
+ Serialize::Storage<bool> noexpire;
public:
- NickImpl(Serialize::TypeBase *type) : NickServ::Nick(type) { }
- NickImpl(Serialize::TypeBase *type, Serialize::ID id) : NickServ::Nick(type, id) { }
+ using NickServ::Nick::Nick;
~NickImpl();
void Delete() override;