Пример #1
0
void DataKeeper::CreateModeList(ModeType modetype)
{
	const ModeParser::ModeHandlerMap& modes = ServerInstance->Modes->GetModes(modetype);
	for (ModeParser::ModeHandlerMap::const_iterator i = modes.begin(); i != modes.end(); ++i)
	{
		ModeHandler* mh = i->second;
		if (mh->creator == mod)
			handledmodes[modetype].push_back(ProviderInfo(mh));
	}
}
Пример #2
0
size_t DataKeeper::GetSerializerIndex(ClientProtocol::Serializer* serializer)
{
	for (size_t i = 0; i < handledserializers.size(); i++)
	{
		if (handledserializers[i].serializer == serializer)
			return i;
	}

	handledserializers.push_back(ProviderInfo(serializer));
	return handledserializers.size()-1;
}
Пример #3
0
void DataKeeper::Save(Module* currmod)
{
	this->mod = currmod;

	const ExtensionManager::ExtMap& allexts = ServerInstance->Extensions.GetExts();
	for (ExtensionManager::ExtMap::const_iterator i = allexts.begin(); i != allexts.end(); ++i)
	{
		ExtensionItem* ext = i->second;
		if (ext->creator == mod)
			handledexts.push_back(ProviderInfo(ext));
	}

	CreateModeList(MODETYPE_USER);
	DoSaveUsers();

	CreateModeList(MODETYPE_CHANNEL);
	DoSaveChans();

	FOREACH_MOD_CUSTOM(*reloadevprov, ReloadModule::EventListener, OnReloadModuleSave, (mod, this->moddata));

	ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Saved data about %lu users %lu chans %lu modules", (unsigned long)userdatalist.size(), (unsigned long)chandatalist.size(), (unsigned long)moddata.list.size());
}