1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Add ModMetadata API (#5131)

* mod can create a ModMetadata object where store its values and retrieve it.
* Modmetadata object can only be fetched at mod loading
* Save when modified using same time as map interval or at server stop
* add helper function to get mod storage path
* ModMetadata has exactly same calls than all every other Metadata
This commit is contained in:
Loïc Blot 2017-02-08 00:15:55 +01:00 committed by GitHub
parent 0680c47d6c
commit ef6feca501
12 changed files with 384 additions and 12 deletions

View file

@ -299,7 +299,8 @@ public:
const ModSpec* getModSpec(const std::string &modname) const;
void getModNames(std::vector<std::string> &modlist);
std::string getBuiltinLuaPath();
inline std::string getWorldPath() const { return m_path_world; }
inline const std::string &getWorldPath() const { return m_path_world; }
std::string getModStoragePath() const;
inline bool isSingleplayer()
{ return m_simple_singleplayer_mode; }
@ -360,6 +361,9 @@ public:
void SendInventory(PlayerSAO* playerSAO);
void SendMovePlayer(u16 peer_id);
bool registerModStorage(ModMetadata *storage);
void unregisterModStorage(const std::string &name);
// Bind address
Address m_bind_addr;
@ -650,6 +654,9 @@ private:
// value = "" (visible to all players) or player name
std::map<std::string, std::string> m_detached_inventories_player;
UNORDERED_MAP<std::string, ModMetadata *> m_mod_storages;
float m_mod_storage_save_timer;
DISABLE_CLASS_COPY(Server);
};