diff --git a/src/client/client.cpp b/src/client/client.cpp index 31bbf24635d8a..18a18d9ef6b5a 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -1989,26 +1989,6 @@ const std::string* Client::getModFile(std::string filename) return &it->second; } -bool Client::registerModStorage(ModMetadata *storage) -{ - if (m_mod_storages.find(storage->getModName()) != m_mod_storages.end()) { - errorstream << "Unable to register same mod storage twice. Storage name: " - << storage->getModName() << std::endl; - return false; - } - - m_mod_storages[storage->getModName()] = storage; - return true; -} - -void Client::unregisterModStorage(const std::string &name) -{ - std::unordered_map::const_iterator it = - m_mod_storages.find(name); - if (it != m_mod_storages.end()) - m_mod_storages.erase(name); -} - /* * Mod channels */ diff --git a/src/client/client.h b/src/client/client.h index bdcc2a3dda0bc..4342a0087462e 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -383,9 +383,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef const std::string* getModFile(std::string filename); ModMetadataDatabase *getModStorageDatabase() override { return m_mod_storage_database; } - bool registerModStorage(ModMetadata *meta) override; - void unregisterModStorage(const std::string &name) override; - // Migrates away old files-based mod storage if necessary void migrateModStorage(); @@ -593,7 +590,6 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef // Client modding ClientScripting *m_script = nullptr; - std::unordered_map m_mod_storages; ModMetadataDatabase *m_mod_storage_database = nullptr; float m_mod_storage_save_timer = 10.0f; std::vector m_mods; diff --git a/src/gamedef.h b/src/gamedef.h index 45b9c475011d4..690ff12573a3c 100644 --- a/src/gamedef.h +++ b/src/gamedef.h @@ -73,8 +73,6 @@ class IGameDef virtual const std::vector &getMods() const = 0; virtual const ModSpec* getModSpec(const std::string &modname) const = 0; virtual std::string getWorldPath() const { return ""; } - virtual bool registerModStorage(ModMetadata *storage) = 0; - virtual void unregisterModStorage(const std::string &name) = 0; virtual ModMetadataDatabase *getModStorageDatabase() = 0; virtual bool joinModChannel(const std::string &channel) = 0; diff --git a/src/script/lua_api/l_storage.cpp b/src/script/lua_api/l_storage.cpp index 923e6c2963d22..ee5ca18a92707 100644 --- a/src/script/lua_api/l_storage.cpp +++ b/src/script/lua_api/l_storage.cpp @@ -28,23 +28,12 @@ int ModApiStorage::l_get_mod_storage(lua_State *L) // Note that this is wrapped in Lua, see builtin/common/mod_storage.lua std::string mod_name = readParam(L, 1); - ModMetadata *store = nullptr; - - if (IGameDef *gamedef = getGameDef(L)) { - store = new ModMetadata(mod_name, gamedef->getModStorageDatabase()); - if (gamedef->registerModStorage(store)) { - StorageRef::create(L, store); - int object = lua_gettop(L); - lua_pushvalue(L, object); - return 1; - } - } else { + if (IGameDef *gamedef = getGameDef(L)) + StorageRef::create(L, new ModMetadata(mod_name, gamedef->getModStorageDatabase())); + else { assert(false); // this should not happen + lua_pushnil(L); } - - delete store; - - lua_pushnil(L); return 1; } @@ -74,9 +63,6 @@ void StorageRef::create(lua_State *L, ModMetadata *object) int StorageRef::gc_object(lua_State *L) { StorageRef *o = *(StorageRef **)(lua_touserdata(L, 1)); - // Server side - if (IGameDef *gamedef = getGameDef(L)) - gamedef->unregisterModStorage(getobject(o)->getModName()); delete o; return 0; } diff --git a/src/server.cpp b/src/server.cpp index 93767da9d1ff1..178d1c7ae32c9 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -3888,25 +3888,6 @@ PlayerSAO* Server::emergePlayer(const char *name, session_t peer_id, u16 proto_v return playersao; } -bool Server::registerModStorage(ModMetadata *storage) -{ - if (m_mod_storages.find(storage->getModName()) != m_mod_storages.end()) { - errorstream << "Unable to register same mod storage twice. Storage name: " - << storage->getModName() << std::endl; - return false; - } - - m_mod_storages[storage->getModName()] = storage; - return true; -} - -void Server::unregisterModStorage(const std::string &name) -{ - std::unordered_map::const_iterator it = m_mod_storages.find(name); - if (it != m_mod_storages.end()) - m_mod_storages.erase(name); -} - void dedicated_server_loop(Server &server, bool &kill) { verbosestream<<"dedicated_server_loop()"< m_mod_storages; ModMetadataDatabase *m_mod_storage_database = nullptr; float m_mod_storage_save_timer = 10.0f; diff --git a/src/unittest/test.cpp b/src/unittest/test.cpp index af30c209dba10..1867f9d64d125 100644 --- a/src/unittest/test.cpp +++ b/src/unittest/test.cpp @@ -70,8 +70,6 @@ class TestGameDef : public IGameDef { return testmodspec; } virtual const ModSpec* getModSpec(const std::string &modname) const { return NULL; } - virtual bool registerModStorage(ModMetadata *meta) { return true; } - virtual void unregisterModStorage(const std::string &name) {} bool joinModChannel(const std::string &channel); bool leaveModChannel(const std::string &channel); bool sendModChannelMessage(const std::string &channel, const std::string &message);