+ std::string getBanDescription(const std::string &ip_or_name)
+ {
+ return m_banmanager.getBanDescription(ip_or_name);
+ }
+
+ Address getPeerAddress(u16 peer_id)
+ {
+ return m_con.GetPeerAddress(peer_id);
+ }
+
+ // Envlock and conlock should be locked when calling this
+ void notifyPlayer(const char *name, const std::wstring msg);
+ void notifyPlayers(const std::wstring msg);
+
+ void queueBlockEmerge(v3s16 blockpos, bool allow_generate);
+
+ // Creates or resets inventory
+ Inventory* createDetachedInventory(const std::string &name);
+
+ // Envlock and conlock should be locked when using Lua
+ lua_State *getLua(){ return m_lua; }
+
+ // Envlock should be locked when using the rollback manager
+ IRollbackManager *getRollbackManager(){ return m_rollback; }
+
+ //TODO: determine what should be locked when accessing the emerge manager
+ EmergeManager *getEmergeManager(){ return m_emerge; }
+
+ BiomeDefManager *getBiomeDef(){ return m_biomedef; }
+
+ // actions: time-reversed list
+ // Return value: success/failure
+ bool rollbackRevertActions(const std::list<RollbackAction> &actions,
+ std::list<std::string> *log);
+
+ // IGameDef interface
+ // Under envlock
+ virtual IItemDefManager* getItemDefManager();
+ virtual INodeDefManager* getNodeDefManager();
+ virtual ICraftDefManager* getCraftDefManager();
+ virtual ITextureSource* getTextureSource();
+ virtual IShaderSource* getShaderSource();
+ virtual u16 allocateUnknownNodeId(const std::string &name);
+ virtual ISoundManager* getSoundManager();
+ virtual MtEventManager* getEventManager();
+ virtual IRollbackReportSink* getRollbackReportSink();
+
+ IWritableItemDefManager* getWritableItemDefManager();
+ IWritableNodeDefManager* getWritableNodeDefManager();
+ IWritableCraftDefManager* getWritableCraftDefManager();
+
+ const ModSpec* getModSpec(const std::string &modname);
+ void getModNames(core::list<std::string> &modlist);
+ std::string getBuiltinLuaPath();
+
+ std::string getWorldPath(){ return m_path_world; }
+
+ bool isSingleplayer(){ return m_simple_singleplayer_mode; }
+
+ void setAsyncFatalError(const std::string &error)
+ {
+ m_async_fatal_error.set(error);
+ }
+
+ bool showFormspec(const char *name, const std::string &formspec, const std::string &formname);