summaryrefslogtreecommitdiff
path: root/modules/database/flatfile.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2016-07-28 21:29:35 -0400
committerAdam <Adam@anope.org>2016-07-28 21:29:35 -0400
commit0e758a2ac23dc4a001e8e126cec14588da9a9769 (patch)
tree45df813323e023c5c89db7279426c4ad0943b4a9 /modules/database/flatfile.cpp
parenta3c8afae00c54d5b95c620248b51f90679d7d53f (diff)
Allow serializable fields to use storage in the respective objects.
Split service management code nito a proper servicemanager. Make service references managed instead of lazy lookup. Also made events and serializable use service manager instead of their respective systems for management
Diffstat (limited to 'modules/database/flatfile.cpp')
-rw-r--r--modules/database/flatfile.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/modules/database/flatfile.cpp b/modules/database/flatfile.cpp
index 122134960..b250be294 100644
--- a/modules/database/flatfile.cpp
+++ b/modules/database/flatfile.cpp
@@ -80,6 +80,8 @@ class DBFlatFile : public Module
public:
DBFlatFile(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, DATABASE | VENDOR)
+ , EventHook<Event::LoadDatabase>(this)
+ , EventHook<Event::SaveDatabase>(this)
, last_day(0)
, loaded(false)
{
@@ -182,8 +184,9 @@ class DBFlatFile : public Module
f << "OBJECT " << s_type->GetName() << "\n";
f << "ID " << object->id << "\n";
- for (Serialize::FieldBase *field : s_type->fields)
- f << "DATA " << field->GetName() << " " << field->SerializeToString(object) << "\n";
+ for (Serialize::FieldBase *field : s_type->GetFields())
+ if (field->HasFieldS(object)) // for ext
+ f << "DATA " << field->serialize_name << " " << field->SerializeToString(object) << "\n";
f << "END\n";
}
}