Clean up log messages everywhere
authorPerttu Ahola <celeron55@gmail.com>
Sun, 11 Mar 2012 02:15:45 +0000 (04:15 +0200)
committerPerttu Ahola <celeron55@gmail.com>
Sun, 11 Mar 2012 02:15:45 +0000 (04:15 +0200)
17 files changed:
share/server/games/mesetint/mods/experimental/init.lua
src/clouds.cpp
src/content_sao.cpp
src/craftdef.cpp
src/debug.cpp
src/environment.cpp
src/gettext.h
src/itemdef.cpp
src/main.cpp
src/map.cpp
src/nodedef.cpp
src/porting.cpp
src/script.cpp
src/scriptapi.cpp
src/server.cpp
src/server.h
src/settings.h

index 1ee3fdc2ed79eb77e8f95e2e622470c1885869f9..364eeb10c12f93379f1ef479e1453669fc4a1f33 100644 (file)
@@ -609,8 +609,8 @@ minetest.register_abm({
     end,
 })--]]
 
-print("experimental modname="..dump(minetest.get_current_modname()))
-print("experimental modpath="..dump(minetest.get_modpath("experimental")))
-print("experimental worldpath="..dump(minetest.get_worldpath()))
+minetest.log("experimental modname="..dump(minetest.get_current_modname()))
+minetest.log("experimental modpath="..dump(minetest.get_modpath("experimental")))
+minetest.log("experimental worldpath="..dump(minetest.get_worldpath()))
 
 -- END
index 23243659707bb8c56ddc2a9ce72f920d57d5e4f9..784d611f2a81469779346e05ff4dcd0013422e3d 100644 (file)
@@ -38,8 +38,6 @@ Clouds::Clouds(
        m_camera_pos(0,0),
        m_time(0)
 {
-       dstream<<__FUNCTION_NAME<<std::endl;
-
        m_material.setFlag(video::EMF_LIGHTING, false);
        m_material.setFlag(video::EMF_BACK_FACE_CULLING, false);
        m_material.setFlag(video::EMF_BILINEAR_FILTER, false);
@@ -54,7 +52,6 @@ Clouds::Clouds(
 
 Clouds::~Clouds()
 {
-       dstream<<__FUNCTION_NAME<<std::endl;
 }
 
 void Clouds::OnRegisterSceneNode()
index b04f03f267eab63e9fe5a0171a81954bbb495a46..85340981db7c64be614e1cbfdbd709d118e857a5 100644 (file)
@@ -517,7 +517,7 @@ std::string LuaEntitySAO::getClientInitializationData()
 
 std::string LuaEntitySAO::getStaticData()
 {
-       infostream<<__FUNCTION_NAME<<std::endl;
+       verbosestream<<__FUNCTION_NAME<<std::endl;
        std::ostringstream os(std::ios::binary);
        // version
        writeU8(os, 1);
@@ -641,7 +641,7 @@ std::string LuaEntitySAO::getDescription()
        os<<(m_base_position.Y/BS)<<",";
        os<<(m_base_position.Z/BS);
        os<<")";
-       return std::string("LuaEntitySAO");
+       return os.str();
 }
 
 void LuaEntitySAO::setVelocity(v3f velocity)
index 5bcbf6f941fdb5b4241d9a1655075183a3e1a2d0..d21a1b5e7cb4edf9795d6f71674998b7aba3aa12 100644 (file)
@@ -827,7 +827,7 @@ public:
        }
        virtual void registerCraft(CraftDefinition *def)
        {
-               infostream<<"registerCraft: registering craft definition: "
+               verbosestream<<"registerCraft: registering craft definition: "
                                <<def->dump()<<std::endl;
                m_craft_definitions.push_back(def);
        }
index ad02c5110583c1c979e1773694a22d8acd6ab042..fb04ba9523510b0ef5b5f0196eb13d88965338dc 100644 (file)
@@ -45,8 +45,8 @@ void debugstreams_init(bool disable_stderr, const char *filename)
                fprintf(g_debugstreams[1],     "-------------\n\n");
        }
        
-       DEBUGPRINT("Debug streams initialized, disable_stderr=%d\n",
-                       disable_stderr);
+       DEBUGPRINT("Debug streams initialized, %s\n",
+                       disable_stderr?"not printing on stderr":"using stderr");
 }
 
 void debugstreams_deinit()
index 6a8943d12a06a887f6c055ddadeb18e642995019..cfe82fb8b537a7a82f5719060e40bc3fa72a0292 100644 (file)
@@ -454,7 +454,7 @@ void ServerEnvironment::deSerializePlayers(const std::string &savedir)
                // Full path to this file
                std::string path = players_path + "/" + player_files[i].name;
 
-               infostream<<"Checking player file "<<path<<std::endl;
+               //infostream<<"Checking player file "<<path<<std::endl;
 
                // Load player to see what is its name
                ServerRemotePlayer testplayer(this);
@@ -475,8 +475,8 @@ void ServerEnvironment::deSerializePlayers(const std::string &savedir)
                                        <<testplayer.getName()<<std::endl;
                }
 
-               infostream<<"Loaded test player with name "<<testplayer.getName()
-                               <<std::endl;
+               /*infostream<<"Loaded test player with name "<<testplayer.getName()
+                               <<std::endl;*/
                
                // Search for the player
                std::string playername = testplayer.getName();
@@ -484,7 +484,7 @@ void ServerEnvironment::deSerializePlayers(const std::string &savedir)
                bool newplayer = false;
                if(player == NULL)
                {
-                       infostream<<"Is a new player"<<std::endl;
+                       //infostream<<"Is a new player"<<std::endl;
                        player = new ServerRemotePlayer(this);
                        newplayer = true;
                }
@@ -493,7 +493,7 @@ void ServerEnvironment::deSerializePlayers(const std::string &savedir)
 
                // Load player
                {
-                       infostream<<"Reading player "<<testplayer.getName()<<" from "
+                       verbosestream<<"Reading player "<<testplayer.getName()<<" from "
                                        <<path<<std::endl;
                        // Open file and deserialize
                        std::ifstream is(path.c_str(), std::ios_base::binary);
@@ -2254,7 +2254,7 @@ void ClientEnvironment::addActiveObject(u16 id, u8 type,
 
 void ClientEnvironment::removeActiveObject(u16 id)
 {
-       infostream<<"ClientEnvironment::removeActiveObject(): "
+       verbosestream<<"ClientEnvironment::removeActiveObject(): "
                        <<"id="<<id<<std::endl;
        ClientActiveObject* obj = getActiveObject(id);
        if(obj == NULL)
index 0e6ee0fd5f779965a1dc7d10caeb3f214c880284..54470cb0d863fc03ea25f04e2c5e9ca3bfd82649 100644 (file)
@@ -1,6 +1,6 @@
 #ifndef GETTEXT_HEADER
 #include "config.h" // for USE_GETTEXT
-#include <iostream>
+#include "log.h"
 
 #if USE_GETTEXT
 #include <libintl.h>
@@ -41,9 +41,9 @@ inline void changeCtype(const char *l)
        char *ret = NULL;
        ret = setlocale(LC_CTYPE, l);
        if(ret == NULL)
-               std::cout<<"locale could not be set"<<std::endl;
+               infostream<<"locale could not be set"<<std::endl;
        else
-               std::cout<<"locale has been set to:"<<ret<<std::endl;
+               infostream<<"locale has been set to:"<<ret<<std::endl;
 }
 #define GETTEXT_HEADER
 #endif
index 98232c6d522368bd61d796d0997d9cd0beff054c..ace9c253fbcfd3ab942243c2776461f909cf613b 100644 (file)
@@ -286,7 +286,7 @@ public:
        }
        virtual void registerItem(const ItemDefinition &def)
        {
-               infostream<<"ItemDefManager: registering \""<<def.name<<"\""<<std::endl;
+               verbosestream<<"ItemDefManager: registering \""<<def.name<<"\""<<std::endl;
                // Ensure that the "" item (the hand) always has ToolCapabilities
                if(def.name == "")
                        assert(def.tool_capabilities != NULL);
@@ -304,7 +304,7 @@ public:
        {
                if(m_item_definitions.find(name) == m_item_definitions.end())
                {
-                       infostream<<"ItemDefManager: setting alias "<<name
+                       verbosestream<<"ItemDefManager: setting alias "<<name
                                <<" -> "<<convert_to<<std::endl;
                        m_aliases[name] = convert_to;
                }
index 83bca7c44626f88fd459247ecfd75f4625a8c6a6..3f75391d8cd4effbd009d242247d448f3536e48b 100644 (file)
@@ -1188,8 +1188,8 @@ int main(int argc, char *argv[])
 
        DSTACK(__FUNCTION_NAME);
 
-       // Init material properties table
-       //initializeMaterialProperties();
+       dstream<<"path_share = "<<porting::path_share<<std::endl;
+       dstream<<"path_user  = "<<porting::path_user<<std::endl;
 
        // Debug handler
        BEGIN_DEBUG_EXCEPTION_HANDLER
@@ -1323,16 +1323,6 @@ int main(int argc, char *argv[])
                Server server(map_dir, configpath, "mesetint");
                server.start(port);
                
-               // ASCII art for the win!
-               actionstream
-               <<"        .__               __                   __   "<<std::endl
-               <<"  _____ |__| ____   _____/  |_  ____   _______/  |_ "<<std::endl
-               <<" /     \\|  |/    \\_/ __ \\   __\\/ __ \\ /  ___/\\   __\\"<<std::endl
-               <<"|  Y Y  \\  |   |  \\  ___/|  | \\  ___/ \\___ \\  |  |  "<<std::endl
-               <<"|__|_|  /__|___|  /\\___  >__|  \\___  >____  > |__|  "<<std::endl
-               <<"      \\/        \\/     \\/          \\/     \\/        "<<std::endl;
-               actionstream<<"Listening at port "<<port<<"."<<std::endl;
-       
                // Run server
                dedicated_server_loop(server, kill);
 
index c245242e8ec1358389a1e5da9b731bb4e1caf19c..e0175a4ab31dc0f4d7a3bfe5dfe25e406a3fec48 100644 (file)
@@ -1916,7 +1916,7 @@ ServerMap::ServerMap(std::string savedir, IGameDef *gamedef):
        m_database_read(NULL),
        m_database_write(NULL)
 {
-       infostream<<__FUNCTION_NAME<<std::endl;
+       verbosestream<<__FUNCTION_NAME<<std::endl;
 
        //m_chunksize = 8; // Takes a few seconds
 
@@ -1954,7 +1954,7 @@ ServerMap::ServerMap(std::string savedir, IGameDef *gamedef):
                        // If directory is empty, it is safe to save into it.
                        if(fs::GetDirListing(m_savedir).size() == 0)
                        {
-                               infostream<<"Server: Empty save directory is valid."
+                               infostream<<"ServerMap: Empty save directory is valid."
                                                <<std::endl;
                                m_map_saving_enabled = true;
                        }
@@ -1971,25 +1971,10 @@ ServerMap::ServerMap(std::string savedir, IGameDef *gamedef):
                                        //m_chunksize = 0;
                                }
 
-                               /*try{
-                                       // Load chunk metadata
-                                       loadChunkMeta();
-                               }
-                               catch(FileNotGoodException &e){
-                                       infostream<<"WARNING: Could not load chunk metadata."
-                                                       <<" Disabling chunk-based generator."
-                                                       <<std::endl;
-                                       m_chunksize = 0;
-                               }*/
-
-                               /*infostream<<"Server: Successfully loaded chunk "
-                                               "metadata and sector (0,0) from "<<savedir<<
-                                               ", assuming valid save directory."
-                                               <<std::endl;*/
-
-                               infostream<<"Server: Successfully loaded map "
-                                               <<"and chunk metadata from "<<savedir
+                               infostream<<"ServerMap: Successfully loaded map "
+                                               <<"metadata from "<<savedir
                                                <<", assuming valid save directory."
+                                               <<" seed="<<m_seed<<"."
                                                <<std::endl;
 
                                m_map_saving_enabled = true;
@@ -2004,7 +1989,7 @@ ServerMap::ServerMap(std::string savedir, IGameDef *gamedef):
        }
        catch(std::exception &e)
        {
-               infostream<<"WARNING: Server: Failed to load map from "<<savedir
+               infostream<<"WARNING: ServerMap: Failed to load map from "<<savedir
                                <<", exception: "<<e.what()<<std::endl;
                infostream<<"Please remove the map or fix it."<<std::endl;
                infostream<<"WARNING: Map saving will be disabled."<<std::endl;
@@ -2021,7 +2006,7 @@ ServerMap::ServerMap(std::string savedir, IGameDef *gamedef):
 
 ServerMap::~ServerMap()
 {
-       infostream<<__FUNCTION_NAME<<std::endl;
+       verbosestream<<__FUNCTION_NAME<<std::endl;
 
        try
        {
@@ -2029,16 +2014,16 @@ ServerMap::~ServerMap()
                {
                        // Save only changed parts
                        save(MOD_STATE_WRITE_AT_UNLOAD);
-                       infostream<<"Server: saved map to "<<m_savedir<<std::endl;
+                       infostream<<"ServerMap: Saved map to "<<m_savedir<<std::endl;
                }
                else
                {
-                       infostream<<"Server: map not saved"<<std::endl;
+                       infostream<<"ServerMap: Map not saved"<<std::endl;
                }
        }
        catch(std::exception &e)
        {
-               infostream<<"Server: Failed to save map to "<<m_savedir
+               infostream<<"ServerMap: Failed to save map to "<<m_savedir
                                <<", exception: "<<e.what()<<std::endl;
        }
 
@@ -2693,7 +2678,7 @@ void ServerMap::createDatabase() {
        if(e == SQLITE_ABORT)
                throw FileNotGoodException("Could not create database structure");
        else
-               infostream<<"Server: Database structure was created";
+               infostream<<"ServerMap: Database structure was created";
 }
 
 void ServerMap::verifyDatabase() {
@@ -2741,7 +2726,7 @@ void ServerMap::verifyDatabase() {
                        throw FileNotGoodException("Cannot prepare read statement");
                }
                
-               infostream<<"Server: Database opened"<<std::endl;
+               infostream<<"ServerMap: Database opened"<<std::endl;
        }
 }
 
@@ -2977,9 +2962,9 @@ void ServerMap::saveMapMeta()
 {
        DSTACK(__FUNCTION_NAME);
        
-       infostream<<"ServerMap::saveMapMeta(): "
+       /*infostream<<"ServerMap::saveMapMeta(): "
                        <<"seed="<<m_seed
-                       <<std::endl;
+                       <<std::endl;*/
 
        createDirs(m_savedir);
        
@@ -3006,8 +2991,8 @@ void ServerMap::loadMapMeta()
 {
        DSTACK(__FUNCTION_NAME);
        
-       infostream<<"ServerMap::loadMapMeta(): Loading map metadata"
-                       <<std::endl;
+       /*infostream<<"ServerMap::loadMapMeta(): Loading map metadata"
+                       <<std::endl;*/
 
        std::string fullpath = m_savedir + DIR_DELIM + "map_meta.txt";
        std::ifstream is(fullpath.c_str(), std::ios_base::binary);
@@ -3035,7 +3020,7 @@ void ServerMap::loadMapMeta()
 
        m_seed = params.getU64("seed");
 
-       infostream<<"ServerMap::loadMapMeta(): "<<"seed="<<m_seed<<std::endl;
+       verbosestream<<"ServerMap::loadMapMeta(): "<<"seed="<<m_seed<<std::endl;
 }
 
 void ServerMap::saveSectorMeta(ServerMapSector *sector)
index cc8009ab77b142ac86cab8b4416e8e2934d5a251..f24497dd820def43d55ee1e8286813c0cf0bd1a3 100644 (file)
@@ -368,7 +368,7 @@ public:
        // IWritableNodeDefManager
        virtual void set(content_t c, const ContentFeatures &def)
        {
-               infostream<<"registerNode: registering content id \""<<c
+               verbosestream<<"registerNode: registering content id \""<<c
                                <<"\": name=\""<<def.name<<"\""<<std::endl;
                assert(c <= MAX_CONTENT);
                // Don't allow redefining CONTENT_IGNORE (but allow air)
index edf950635c25d3589f7075024f1c7456be18d895..57da69e8292090c147c4d36cb8e7f7fd0de47192 100644 (file)
@@ -71,7 +71,6 @@ void sigint_handler(int sig)
 
 void signal_handler_init(void)
 {
-       dstream<<"signal_handler_init()"<<std::endl;
        (void)signal(SIGINT, sigint_handler);
 }
 
@@ -114,7 +113,6 @@ void signal_handler_init(void)
        
 void signal_handler_init(void)
 {
-       dstream<<"signal_handler_init()"<<std::endl;
        SetConsoleCtrlHandler( (PHANDLER_ROUTINE)event_handler,TRUE);
 }
 
@@ -288,9 +286,6 @@ void initializePaths()
        #endif
 
 #endif // RUN_IN_PLACE
-
-       dstream<<"path_share = "<<path_share<<std::endl;
-       dstream<<"path_user = "<<path_user<<std::endl;
 }
 
 } //namespace porting
index f91b228960c27ef17420cb1f7c737392fc9e892b..1925ea701554ffdcc0f5ed86fc2de8ad2af3d767 100644 (file)
@@ -89,7 +89,7 @@ int luaErrorHandler(lua_State *L) {
 
 bool script_load(lua_State *L, const char *path)
 {
-       infostream<<"Loading and running script from "<<path<<std::endl;
+       verbosestream<<"Loading and running script from "<<path<<std::endl;
 
        lua_pushcfunction(L, luaErrorHandler);
        int errorhandler = lua_gettop(L);
index 7bdf7a9f4ca9b248231ea85150674ff51ac4b432..99c3767ae86f077b76c8154f1b45bc8dd58ea3a3 100644 (file)
@@ -2240,7 +2240,7 @@ private:
                ObjectRef *ref = checkobject(L, 1);
                ServerActiveObject *co = getobject(ref);
                if(co == NULL) return 0;
-               infostream<<"ObjectRef::l_remove(): id="<<co->getId()<<std::endl;
+               verbosestream<<"ObjectRef::l_remove(): id="<<co->getId()<<std::endl;
                co->m_removed = true;
                return 0;
        }
@@ -2340,8 +2340,8 @@ private:
                ServerActiveObject *co = getobject(ref);
                if(co == NULL) return 0;
                int hp = lua_tonumber(L, 2);
-               infostream<<"ObjectRef::l_set_hp(): id="<<co->getId()
-                               <<" hp="<<hp<<std::endl;
+               /*infostream<<"ObjectRef::l_set_hp(): id="<<co->getId()
+                               <<" hp="<<hp<<std::endl;*/
                // Do it
                co->setHP(hp);
                // Return
@@ -2357,8 +2357,8 @@ private:
                ServerActiveObject *co = getobject(ref);
                if(co == NULL) return 0;
                int hp = co->getHP();
-               infostream<<"ObjectRef::l_get_hp(): id="<<co->getId()
-                               <<" hp="<<hp<<std::endl;
+               /*infostream<<"ObjectRef::l_get_hp(): id="<<co->getId()
+                               <<" hp="<<hp<<std::endl;*/
                // Return
                lua_pushnumber(L, hp);
                return 1;
@@ -3029,12 +3029,12 @@ public:
        EnvRef(ServerEnvironment *env):
                m_env(env)
        {
-               infostream<<"EnvRef created"<<std::endl;
+               //infostream<<"EnvRef created"<<std::endl;
        }
 
        ~EnvRef()
        {
-               infostream<<"EnvRef destructing"<<std::endl;
+               //infostream<<"EnvRef destructing"<<std::endl;
        }
 
        // Creates an EnvRef and leaves it on top of stack
@@ -3230,7 +3230,7 @@ static int l_register_item_raw(lua_State *L)
        lua_getfield(L, table, "name");
        if(lua_isstring(L, -1)){
                std::string name = lua_tostring(L, -1);
-               infostream<<"register_item_raw: "<<name<<std::endl;
+               verbosestream<<"register_item_raw: "<<name<<std::endl;
        } else {
                throw LuaError(L, "register_item_raw: name is not defined or not a string");
        }
@@ -3672,7 +3672,7 @@ void scriptapi_export(lua_State *L, Server *server)
 {
        realitycheck(L);
        assert(lua_checkstack(L, 20));
-       infostream<<"scriptapi_export"<<std::endl;
+       verbosestream<<"scriptapi_export()"<<std::endl;
        StackUnroller stack_unroller(L);
 
        // Store server as light userdata in registry
@@ -3732,7 +3732,7 @@ void scriptapi_add_environment(lua_State *L, ServerEnvironment *env)
 {
        realitycheck(L);
        assert(lua_checkstack(L, 20));
-       infostream<<"scriptapi_add_environment"<<std::endl;
+       verbosestream<<"scriptapi_add_environment"<<std::endl;
        StackUnroller stack_unroller(L);
 
        // Create EnvRef on stack
@@ -4230,7 +4230,7 @@ bool scriptapi_luaentity_add(lua_State *L, u16 id, const char *name)
 {
        realitycheck(L);
        assert(lua_checkstack(L, 20));
-       infostream<<"scriptapi_luaentity_add: id="<<id<<" name=\""
+       verbosestream<<"scriptapi_luaentity_add: id="<<id<<" name=\""
                        <<name<<"\""<<std::endl;
        StackUnroller stack_unroller(L);
        
@@ -4281,7 +4281,7 @@ void scriptapi_luaentity_activate(lua_State *L, u16 id,
 {
        realitycheck(L);
        assert(lua_checkstack(L, 20));
-       infostream<<"scriptapi_luaentity_activate: id="<<id<<std::endl;
+       verbosestream<<"scriptapi_luaentity_activate: id="<<id<<std::endl;
        StackUnroller stack_unroller(L);
        
        // Get minetest.luaentities[id]
@@ -4306,7 +4306,7 @@ void scriptapi_luaentity_rm(lua_State *L, u16 id)
 {
        realitycheck(L);
        assert(lua_checkstack(L, 20));
-       infostream<<"scriptapi_luaentity_rm: id="<<id<<std::endl;
+       verbosestream<<"scriptapi_luaentity_rm: id="<<id<<std::endl;
 
        // Get minetest.luaentities table
        lua_getglobal(L, "minetest");
@@ -4326,7 +4326,7 @@ std::string scriptapi_luaentity_get_staticdata(lua_State *L, u16 id)
 {
        realitycheck(L);
        assert(lua_checkstack(L, 20));
-       infostream<<"scriptapi_luaentity_get_staticdata: id="<<id<<std::endl;
+       //infostream<<"scriptapi_luaentity_get_staticdata: id="<<id<<std::endl;
        StackUnroller stack_unroller(L);
 
        // Get minetest.luaentities[id]
@@ -4356,7 +4356,7 @@ void scriptapi_luaentity_get_properties(lua_State *L, u16 id,
 {
        realitycheck(L);
        assert(lua_checkstack(L, 20));
-       infostream<<"scriptapi_luaentity_get_properties: id="<<id<<std::endl;
+       //infostream<<"scriptapi_luaentity_get_properties: id="<<id<<std::endl;
        StackUnroller stack_unroller(L);
 
        // Get minetest.luaentities[id]
index ad45249012d5cf8593fd3c53722b4f98ba1ce444..1eb618f7c9d578fa3d7195aa434797372f9dbf1e 100644 (file)
@@ -824,18 +824,11 @@ void PlayerInfo::PrintLine(std::ostream *s)
        (*s)<<std::endl;
 }
 
-u32 PIChecksum(core::list<PlayerInfo> &l)
+static std::string padStringRight(std::string s, size_t len)
 {
-       core::list<PlayerInfo>::Iterator i;
-       u32 checksum = 1;
-       u32 a = 10;
-       for(i=l.begin(); i!=l.end(); i++)
-       {
-               checksum += a * (i->id+1);
-               checksum ^= 0x435aafcd;
-               a *= 10;
-       }
-       return checksum;
+       if(len > s.size())
+               s.insert(s.end(), len - s.size(), ' ');
+       return s;
 }
 
 /*
@@ -867,11 +860,6 @@ Server::Server(
        m_ignore_map_edit_events(false),
        m_ignore_map_edit_events_peer_id(0)
 {
-       infostream<<"Server created."<<std::endl;
-       infostream<<"- path_world  = "<<path_world<<std::endl;
-       infostream<<"- path_config = "<<path_config<<std::endl;
-       infostream<<"- gamename    = "<<gamename<<std::endl;
-
        m_liquid_transform_timer = 0.0;
        m_print_info_timer = 0.0;
        m_objectdata_timer = 0.0;
@@ -884,13 +872,36 @@ Server::Server(
        m_step_dtime = 0.0;
 
        // Figure out some paths
+       // share/server
        m_path_share = porting::path_share + DIR_DELIM + "server";
-       m_path_game = m_path_share + DIR_DELIM + "games" + DIR_DELIM + m_gamename;
-       m_path_addons.insert(m_path_share + DIR_DELIM + "addons"
-                       + DIR_DELIM + m_gamename);
+       // game
+       m_path_game = porting::path_user + DIR_DELIM + "server" + DIR_DELIM
+                       + "games" + DIR_DELIM + m_gamename;
+       bool user_game = true; // Game is in user's directory
+       if(!fs::PathExists(m_path_game)){
+               m_path_game = m_path_share + DIR_DELIM + "games" + DIR_DELIM
+                               + m_gamename;
+               user_game = false;
+       }
+       if(!fs::PathExists(m_path_game)){
+               throw ServerError("Could not find game files for game \""
+                               +gamename+"\"");
+       }
+       // addons
+       if(!user_game)
+               m_path_addons.insert(m_path_share + DIR_DELIM + "addons"
+                               + DIR_DELIM + m_gamename);
        m_path_addons.insert(porting::path_user + DIR_DELIM + "server"
                        + DIR_DELIM + "addons" + DIR_DELIM + m_gamename);
 
+       infostream<<"Server created for gamename=\""<<gamename<<"\""<<std::endl;
+       infostream<<"- path_world  = "<<m_path_world<<std::endl;
+       infostream<<"- path_config = "<<m_path_config<<std::endl;
+       infostream<<"- path_game   = "<<m_path_game<<std::endl;
+       for(std::set<std::string>::const_iterator i = m_path_addons.begin();
+                       i != m_path_addons.end(); i++)
+               infostream<<"- path_addons+= "<<(*i)<<std::endl;
+
        // Path to builtin.lua
        std::string builtinpath = m_path_share + DIR_DELIM + "builtin.lua";
 
@@ -903,13 +914,12 @@ Server::Server(
                        i != m_path_addons.end(); i++){
                m_modspaths.push_front((*i) + DIR_DELIM + "mods");
        }
-       
+
        // Print out mod search paths
-       infostream<<"- mod search paths:"<<std::endl;
        for(core::list<std::string>::Iterator i = m_modspaths.begin();
                        i != m_modspaths.end(); i++){
                std::string modspath = *i;
-               infostream<<"    "<<modspath<<std::endl;
+               infostream<<"- modspath   += "<<modspath<<std::endl;
        }
        
        // Lock environment
@@ -918,27 +928,37 @@ Server::Server(
 
        // Initialize scripting
        
-       infostream<<"Server: Initializing scripting"<<std::endl;
+       infostream<<"Server: Initializing Lua"<<std::endl;
        m_lua = script_init();
        assert(m_lua);
        // Export API
        scriptapi_export(m_lua, this);
        // Load and run builtin.lua
-       infostream<<"Server: Loading builtin Lua stuff from \""<<builtinpath
-                       <<"\""<<std::endl;
+       infostream<<"Server: Loading builtin.lua [\""
+                       <<builtinpath<<"\"]"<<std::endl;
        bool success = scriptapi_loadmod(m_lua, builtinpath, "__builtin");
        if(!success){
                errorstream<<"Server: Failed to load and run "
                                <<builtinpath<<std::endl;
                throw ModError("Failed to load and run "+builtinpath);
        }
-       // Load and run "mod" scripts
+       // Find mods in mod search paths
        m_mods = getMods(m_modspaths);
+       // Print 'em
+       infostream<<"Server: Loading mods: ";
+       for(core::list<ModSpec>::Iterator i = m_mods.begin();
+                       i != m_mods.end(); i++){
+               const ModSpec &mod = *i;
+               infostream<<mod.name<<" ";
+       }
+       infostream<<std::endl;
+       // Load and run "mod" scripts
        for(core::list<ModSpec>::Iterator i = m_mods.begin();
                        i != m_mods.end(); i++){
                const ModSpec &mod = *i;
-               infostream<<"Server: Loading mod \""<<mod.name<<"\""<<std::endl;
                std::string scriptpath = mod.path + DIR_DELIM + "init.lua";
+               infostream<<"  ["<<padStringRight(mod.name, 12)<<"] [\""
+                               <<scriptpath<<"\"]"<<std::endl;
                bool success = scriptapi_loadmod(m_lua, scriptpath, mod.name);
                if(!success){
                        errorstream<<"Server: Failed to load and run "
@@ -983,7 +1003,7 @@ Server::Server(
 
 Server::~Server()
 {
-       infostream<<"Server::~Server()"<<std::endl;
+       infostream<<"Server destructing"<<std::endl;
 
        /*
                Send shutdown message
@@ -1084,7 +1104,15 @@ void Server::start(unsigned short port)
        m_thread.setRun(true);
        m_thread.Start();
        
-       infostream<<"Server started on port "<<port<<"."<<std::endl;
+       // ASCII art for the win!
+       actionstream
+       <<"        .__               __                   __   "<<std::endl
+       <<"  _____ |__| ____   _____/  |_  ____   _______/  |_ "<<std::endl
+       <<" /     \\|  |/    \\_/ __ \\   __\\/ __ \\ /  ___/\\   __\\"<<std::endl
+       <<"|  Y Y  \\  |   |  \\  ___/|  | \\  ___/ \\___ \\  |  |  "<<std::endl
+       <<"|__|_|  /__|___|  /\\___  >__|  \\___  >____  > |__|  "<<std::endl
+       <<"      \\/        \\/     \\/          \\/     \\/        "<<std::endl;
+       actionstream<<"Server listening on port "<<port<<"."<<std::endl;
 }
 
 void Server::stop()
@@ -1514,7 +1542,7 @@ void Server::AsyncRunStep()
                        // Send as reliable
                        m_con.Send(client->peer_id, 0, reply, true);
 
-                       infostream<<"Server: Sent object remove/add: "
+                       verbosestream<<"Server: Sent object remove/add: "
                                        <<removed_objects.size()<<" removed, "
                                        <<added_objects.size()<<" added, "
                                        <<"packet size is "<<reply.getSize()<<std::endl;
@@ -1677,15 +1705,13 @@ void Server::AsyncRunStep()
                if(m_unsent_map_edit_queue.size() >= 4)
                        disable_single_change_sending = true;
 
-               bool got_any_events = false;
+               int event_count = m_unsent_map_edit_queue.size();
 
                // We'll log the amount of each
                Profiler prof;
 
                while(m_unsent_map_edit_queue.size() != 0)
                {
-                       got_any_events = true;
-
                        MapEditEvent* event = m_unsent_map_edit_queue.pop_front();
                        
                        // Players far away from the change are stored here.
@@ -1776,10 +1802,12 @@ void Server::AsyncRunStep()
                                break;*/
                }
 
-               if(got_any_events)
-               {
+               if(event_count >= 5){
                        infostream<<"Server: MapEditEvents:"<<std::endl;
                        prof.print(infostream);
+               } else if(event_count != 0){
+                       verbosestream<<"Server: MapEditEvents:"<<std::endl;
+                       prof.print(verbosestream);
                }
                
        }
@@ -1899,6 +1927,8 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                                <<peer_id<<" not found"<<std::endl;
                return;
        }
+       
+       std::string addr_s = m_con.GetPeerAddress(peer_id).serializeString();
 
        u8 peer_ser_ver = getClient(peer_id)->serialization_version;
 
@@ -1920,7 +1950,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                if(datasize < 2+1+PLAYERNAME_SIZE)
                        return;
 
-               infostream<<"Server: Got TOSERVER_INIT from "
+               verbosestream<<"Server: Got TOSERVER_INIT from "
                                <<peer_id<<std::endl;
 
                // First byte after command is maximum supported
@@ -1938,8 +1968,8 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                
                if(deployed == SER_FMT_VER_INVALID)
                {
-                       actionstream<<"Server: A mismatched client tried to connect."
-                                       <<std::endl;
+                       actionstream<<"Server: A mismatched client tried to connect from "
+                                       <<addr_s<<std::endl;
                        infostream<<"Server: Cannot negotiate "
                                        "serialization version with peer "
                                        <<peer_id<<std::endl;
@@ -1965,7 +1995,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
 
                if(net_proto_version == 0)
                {
-                       actionstream<<"Server: An old tried to connect."
+                       actionstream<<"Server: An old tried to connect from "<<addr_s
                                        <<std::endl;
                        SendAccessDenied(m_con, peer_id, std::wstring(
                                        L"Your client's version is not supported.\n"
@@ -1979,8 +2009,8 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                {
                        if(net_proto_version != PROTOCOL_VERSION)
                        {
-                               actionstream<<"Server: A mismatched client tried to connect."
-                                               <<std::endl;
+                               actionstream<<"Server: A mismatched client tried to connect"
+                                               <<" from "<<addr_s<<std::endl;
                                SendAccessDenied(m_con, peer_id, std::wstring(
                                                L"Your client's version is not supported.\n"
                                                L"Server version is ")
@@ -2009,7 +2039,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                if(playername[0]=='\0')
                {
                        actionstream<<"Server: Player with an empty name "
-                                       <<"tried to connect."<<std::endl;
+                                       <<"tried to connect from "<<addr_s<<std::endl;
                        SendAccessDenied(m_con, peer_id,
                                        L"Empty name");
                        return;
@@ -2018,12 +2048,15 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                if(string_allowed(playername, PLAYERNAME_ALLOWED_CHARS)==false)
                {
                        actionstream<<"Server: Player with an invalid name "
-                                       <<"tried to connect."<<std::endl;
+                                       <<"tried to connect from "<<addr_s<<std::endl;
                        SendAccessDenied(m_con, peer_id,
                                        L"Name contains unallowed characters");
                        return;
                }
 
+               infostream<<"Server: New connection: \""<<playername<<"\" from "
+                               <<m_con.GetPeerAddress(peer_id).serializeString()<<std::endl;
+
                // Get password
                char password[PASSWORD_SIZE];
                if(datasize < 2+1+PLAYERNAME_SIZE+PASSWORD_SIZE)
@@ -2124,7 +2157,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
 
        if(command == TOSERVER_INIT2)
        {
-               infostream<<"Server: Got TOSERVER_INIT2 from "
+               verbosestream<<"Server: Got TOSERVER_INIT2 from "
                                <<peer_id<<std::endl;
 
 
@@ -2135,6 +2168,9 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                        Send some initialization data
                */
 
+               infostream<<"Server: Sending content to "
+                               <<getPlayerName(peer_id)<<std::endl;
+
                // Send item definitions
                SendItemDef(m_con, peer_id, m_itemdef);
                
@@ -2389,7 +2425,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
        {
                // Strip command and create a stream
                std::string datastring((char*)&data[2], datasize-2);
-               infostream<<"TOSERVER_INVENTORY_ACTION: data="<<datastring<<std::endl;
+               verbosestream<<"TOSERVER_INVENTORY_ACTION: data="<<datastring<<std::endl;
                std::istringstream is(datastring, std::ios_base::binary);
                // Create an action
                InventoryAction *a = InventoryAction::deSerialize(is);
@@ -2800,19 +2836,20 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
        else if(command == TOSERVER_REQUEST_TEXTURES) {
                std::string datastring((char*)&data[2], datasize-2);
                std::istringstream is(datastring, std::ios_base::binary);
-
-               infostream<<"TOSERVER_REQUEST_TEXTURES: "<<std::endl;
-
+               
+               
                core::list<TextureRequest> tosend;
-
                u16 numtextures = readU16(is);
 
-               for(int i = 0; i < numtextures; i++) {
+               infostream<<"Sending "<<numtextures<<" textures to "
+                               <<getPlayerName(peer_id)<<std::endl;
+               verbosestream<<"TOSERVER_REQUEST_TEXTURES: "<<std::endl;
 
+               for(int i = 0; i < numtextures; i++) {
                        std::string name = deSerializeString(is);
-
                        tosend.push_back(TextureRequest(name));
-                       infostream<<"TOSERVER_REQUEST_TEXTURES: requested texture " << name <<std::endl;
+                       verbosestream<<"TOSERVER_REQUEST_TEXTURES: requested texture "
+                                       <<name<<std::endl;
                }
 
                SendTexturesRequested(peer_id, tosend);
@@ -2845,11 +2882,12 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                PointedThing pointed;
                pointed.deSerialize(tmp_is);
 
-               infostream<<"TOSERVER_INTERACT: action="<<(int)action<<", item="<<item_i<<", pointed="<<pointed.dump()<<std::endl;
+               verbosestream<<"TOSERVER_INTERACT: action="<<(int)action<<", item="
+                               <<item_i<<", pointed="<<pointed.dump()<<std::endl;
 
                if(player->hp == 0)
                {
-                       infostream<<"TOSERVER_INTERACT: "<<srp->getName()
+                       verbosestream<<"TOSERVER_INTERACT: "<<srp->getName()
                                <<" tried to interact, but is dead!"<<std::endl;
                        return;
                }
@@ -2874,7 +2912,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                        pointed_object = m_env->getActiveObject(pointed.object_id);
                        if(pointed_object == NULL)
                        {
-                               infostream<<"TOSERVER_INTERACT: "
+                               verbosestream<<"TOSERVER_INTERACT: "
                                        "pointed object is NULL"<<std::endl;
                                return;
                        }
@@ -2962,7 +3000,8 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                                        return;
 
                                actionstream<<player->getName()<<" punches object "
-                                       <<pointed.object_id<<std::endl;
+                                               <<pointed.object_id<<": "
+                                               <<pointed_object->getDescription()<<std::endl;
 
                                ItemStack punchitem = srp->getWieldedItem();
                                ToolCapabilities toolcap =
@@ -3031,7 +3070,8 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
                                        return;
 
                                actionstream<<player->getName()<<" right-clicks object "
-                                       <<pointed.object_id<<std::endl;
+                                               <<pointed.object_id<<": "
+                                               <<pointed_object->getDescription()<<std::endl;
 
                                // Do stuff
                                pointed_object->rightClick(srp);
@@ -3238,7 +3278,7 @@ core::list<PlayerInfo> Server::getPlayerInfo()
 void Server::peerAdded(con::Peer *peer)
 {
        DSTACK(__FUNCTION_NAME);
-       infostream<<"Server::peerAdded(): peer->id="
+       verbosestream<<"Server::peerAdded(): peer->id="
                        <<peer->id<<std::endl;
        
        PeerChange c;
@@ -3251,7 +3291,7 @@ void Server::peerAdded(con::Peer *peer)
 void Server::deletingPeer(con::Peer *peer, bool timeout)
 {
        DSTACK(__FUNCTION_NAME);
-       infostream<<"Server::deletingPeer(): peer->id="
+       verbosestream<<"Server::deletingPeer(): peer->id="
                        <<peer->id<<", timeout="<<timeout<<std::endl;
        
        PeerChange c;
@@ -3333,8 +3373,8 @@ void Server::SendItemDef(con::Connection &con, u16 peer_id,
 
        // Make data buffer
        std::string s = os.str();
-       infostream<<"Server::SendItemDef(): Sending item definitions: size="
-                       <<s.size()<<std::endl;
+       verbosestream<<"Server: Sending item definitions to id("<<peer_id
+                       <<"): size="<<s.size()<<std::endl;
        SharedBuffer<u8> data((u8*)s.c_str(), s.size());
        // Send as reliable
        con.Send(peer_id, 0, data, true);
@@ -3360,8 +3400,8 @@ void Server::SendNodeDef(con::Connection &con, u16 peer_id,
 
        // Make data buffer
        std::string s = os.str();
-       infostream<<"Server::SendNodeDef(): Sending node definitions: size="
-                       <<s.size()<<std::endl;
+       verbosestream<<"Server: Sending node definitions to id("<<peer_id
+                       <<"): size="<<s.size()<<std::endl;
        SharedBuffer<u8> data((u8*)s.c_str(), s.size());
        // Send as reliable
        con.Send(peer_id, 0, data, true);
@@ -3512,7 +3552,7 @@ void Server::SendMovePlayer(Player *player)
                v3f pos = player->getPosition();
                f32 pitch = player->getPitch();
                f32 yaw = player->getYaw();
-               infostream<<"Server sending TOCLIENT_MOVE_PLAYER"
+               verbosestream<<"Server: Sending TOCLIENT_MOVE_PLAYER"
                                <<" pos=("<<pos.X<<","<<pos.Y<<","<<pos.Z<<")"
                                <<" pitch="<<pitch
                                <<" yaw="<<yaw
@@ -3760,71 +3800,72 @@ void Server::SendBlocks(float dtime)
        }
 }
 
-void Server::PrepareTextures() {
+void Server::PrepareTextures()
+{
        DSTACK(__FUNCTION_NAME);
 
-       infostream<<"Server::PrepareTextures(): Calculate sha1 sums of textures"<<std::endl;
+       infostream<<"Server: Calculating texture checksums"<<std::endl;
 
        for(core::list<ModSpec>::Iterator i = m_mods.begin();
-                                       i != m_mods.end(); i++){
-                       const ModSpec &mod = *i;
-                       std::string texturepath = mod.path + DIR_DELIM + "textures";
-                       std::vector<fs::DirListNode> dirlist = fs::GetDirListing(texturepath);
-                       for(u32 j=0; j<dirlist.size(); j++){
-                               if(dirlist[j].dir) // Ignode dirs
-                                       continue;
-                               std::string tname = dirlist[j].name;
-                               // if name contains illegal characters, ignore the texture
-                               if(!string_allowed(tname, TEXTURENAME_ALLOWED_CHARS)){
-                                       errorstream<<"Server: ignoring illegal texture name: \""
-                                                       <<tname<<"\""<<std::endl;
-                                       continue;
-                               }
-                               std::string tpath = texturepath + DIR_DELIM + tname;
-                               // Read data
-                               std::ifstream fis(tpath.c_str(), std::ios_base::binary);
-                               if(fis.good() == false){
-                                       errorstream<<"Server::PrepareTextures(): Could not open \""
-                                                       <<tname<<"\" for reading"<<std::endl;
-                                       continue;
-                               }
-                               std::ostringstream tmp_os(std::ios_base::binary);
-                               bool bad = false;
-                               for(;;){
-                                       char buf[1024];
-                                       fis.read(buf, 1024);
-                                       std::streamsize len = fis.gcount();
-                                       tmp_os.write(buf, len);
-                                       if(fis.eof())
-                                               break;
-                                       if(!fis.good()){
-                                               bad = true;
-                                               break;
-                                       }
-                               }
-                               if(bad){
-                                       errorstream<<"Server::PrepareTextures(): Failed to read \""
-                                                       <<tname<<"\""<<std::endl;
-                                       continue;
-                               }
-                               if(tmp_os.str().length() == 0){
-                                       errorstream<<"Server::PrepareTextures(): Empty file \""
-                                                       <<tpath<<"\""<<std::endl;
-                                       continue;
+                       i != m_mods.end(); i++){
+               const ModSpec &mod = *i;
+               std::string texturepath = mod.path + DIR_DELIM + "textures";
+               std::vector<fs::DirListNode> dirlist = fs::GetDirListing(texturepath);
+               for(u32 j=0; j<dirlist.size(); j++){
+                       if(dirlist[j].dir) // Ignode dirs
+                               continue;
+                       std::string tname = dirlist[j].name;
+                       // if name contains illegal characters, ignore the texture
+                       if(!string_allowed(tname, TEXTURENAME_ALLOWED_CHARS)){
+                               errorstream<<"Server: ignoring illegal texture name: \""
+                                               <<tname<<"\""<<std::endl;
+                               continue;
+                       }
+                       std::string tpath = texturepath + DIR_DELIM + tname;
+                       // Read data
+                       std::ifstream fis(tpath.c_str(), std::ios_base::binary);
+                       if(fis.good() == false){
+                               errorstream<<"Server::PrepareTextures(): Could not open \""
+                                               <<tname<<"\" for reading"<<std::endl;
+                               continue;
+                       }
+                       std::ostringstream tmp_os(std::ios_base::binary);
+                       bool bad = false;
+                       for(;;){
+                               char buf[1024];
+                               fis.read(buf, 1024);
+                               std::streamsize len = fis.gcount();
+                               tmp_os.write(buf, len);
+                               if(fis.eof())
+                                       break;
+                               if(!fis.good()){
+                                       bad = true;
+                                       break;
                                }
+                       }
+                       if(bad){
+                               errorstream<<"Server::PrepareTextures(): Failed to read \""
+                                               <<tname<<"\""<<std::endl;
+                               continue;
+                       }
+                       if(tmp_os.str().length() == 0){
+                               errorstream<<"Server::PrepareTextures(): Empty file \""
+                                               <<tpath<<"\""<<std::endl;
+                               continue;
+                       }
 
-                               SHA1 sha1;
-                               sha1.addBytes(tmp_os.str().c_str(), tmp_os.str().length());
+                       SHA1 sha1;
+                       sha1.addBytes(tmp_os.str().c_str(), tmp_os.str().length());
 
-                               unsigned char *digest = sha1.getDigest();
-                               std::string digest_string = base64_encode(digest, 20);
+                       unsigned char *digest = sha1.getDigest();
+                       std::string digest_string = base64_encode(digest, 20);
 
-                               free(digest);
+                       free(digest);
 
-                               // Put in list
-                               this->m_Textures[tname] = TextureInformation(tpath,digest_string);
-                               infostream<<"Server::PrepareTextures(): added sha1 for "<< tname <<std::endl;
-                       }
+                       // Put in list
+                       this->m_Textures[tname] = TextureInformation(tpath,digest_string);
+                       verbosestream<<"Server: sha1 for "<<tname<<"\tis "<<std::endl;
+               }
        }
 }
 
@@ -3844,7 +3885,8 @@ struct SendableTextureAnnouncement
 void Server::SendTextureAnnouncement(u16 peer_id){
        DSTACK(__FUNCTION_NAME);
 
-       infostream<<"Server::SendTextureAnnouncement()"<<std::endl;
+       verbosestream<<"Server: Announcing textures to id("<<peer_id<<")"
+                       <<std::endl;
 
        core::list<SendableTextureAnnouncement> texture_announcements;
 
@@ -3881,7 +3923,6 @@ void Server::SendTextureAnnouncement(u16 peer_id){
 
        // Make data buffer
        std::string s = os.str();
-       infostream<<"Server::SendTextureAnnouncement(): Send to client"<<std::endl;
        SharedBuffer<u8> data((u8*)s.c_str(), s.size());
 
        // Send as reliable
@@ -3906,7 +3947,8 @@ struct SendableTexture
 void Server::SendTexturesRequested(u16 peer_id,core::list<TextureRequest> tosend) {
        DSTACK(__FUNCTION_NAME);
 
-       infostream<<"Server::SendTexturesRequested(): Sending textures to client"<<std::endl;
+       verbosestream<<"Server::SendTexturesRequested(): "
+                       <<"Sending textures to client"<<std::endl;
 
        /* Read textures */
 
@@ -4002,7 +4044,8 @@ void Server::SendTexturesRequested(u16 peer_id,core::list<TextureRequest> tosend
 
                        // Make data buffer
                        std::string s = os.str();
-                       infostream<<"Server::SendTexturesRequested(): bunch "<<i<<"/"<<num_bunches
+                       verbosestream<<"Server::SendTexturesRequested(): bunch "
+                                       <<i<<"/"<<num_bunches
                                        <<" textures="<<texture_bunches[i].size()
                                        <<" size=" <<s.size()<<std::endl;
                        SharedBuffer<u8> data((u8*)s.c_str(), s.size());
@@ -4496,7 +4539,7 @@ void Server::handlePeerChanges()
        {
                PeerChange c = m_peer_change_queue.pop_front();
 
-               infostream<<"Server: Handling peer change: "
+               verbosestream<<"Server: Handling peer change: "
                                <<"id="<<c.peer_id<<", timeout="<<c.timeout
                                <<std::endl;
 
@@ -4525,7 +4568,7 @@ void dedicated_server_loop(Server &server, bool &kill)
 {
        DSTACK(__FUNCTION_NAME);
        
-       infostream<<"dedicated_server_loop()"<<std::endl;
+       verbosestream<<"dedicated_server_loop()"<<std::endl;
 
        IntervalLimiter m_profiler_interval;
 
@@ -4542,7 +4585,7 @@ void dedicated_server_loop(Server &server, bool &kill)
 
                if(server.getShutdownRequested() || kill)
                {
-                       infostream<<DTIME<<" dedicated_server_loop(): Quitting."<<std::endl;
+                       infostream<<"Dedicated server quitting"<<std::endl;
                        break;
                }
 
@@ -4560,30 +4603,6 @@ void dedicated_server_loop(Server &server, bool &kill)
                                g_profiler->clear();
                        }
                }
-               
-               /*
-                       Player info
-               */
-               static int counter = 0;
-               counter--;
-               if(counter <= 0)
-               {
-                       counter = 10;
-
-                       core::list<PlayerInfo> list = server.getPlayerInfo();
-                       core::list<PlayerInfo>::Iterator i;
-                       static u32 sum_old = 0;
-                       u32 sum = PIChecksum(list);
-                       if(sum != sum_old)
-                       {
-                               infostream<<DTIME<<"Player info:"<<std::endl;
-                               for(i=list.begin(); i!=list.end(); i++)
-                               {
-                                       i->PrintLine(&infostream);
-                               }
-                       }
-                       sum_old = sum;
-               }
        }
 }
 
index 50cd5b285d790cd1c0d319ea9685f23f3238dabc..a1d7e5df73b6c0e119f753eadb3e2322f86e5bf2 100644 (file)
@@ -40,6 +40,23 @@ class IWritableItemDefManager;
 class IWritableNodeDefManager;
 class IWritableCraftDefManager;
 
+class ServerError : public std::exception
+{
+public:
+       ServerError(const std::string &s)
+       {
+               m_s = "ServerError: ";
+               m_s += s;
+       }
+       virtual ~ServerError() throw()
+       {}
+       virtual const char * what() const throw()
+       {
+               return m_s.c_str();
+       }
+       std::string m_s;
+};
+
 /*
        Some random functions
 */
@@ -211,8 +228,6 @@ struct PlayerInfo
        void PrintLine(std::ostream *s);
 };
 
-u32 PIChecksum(core::list<PlayerInfo> &l);
-
 /*
        Used for queueing and sorting block transfers in containers
        
@@ -608,7 +623,7 @@ private:
        {
                Player *player = m_env->getPlayer(peer_id);
                if(player == NULL)
-                       return "[id="+itos(peer_id);
+                       return "[id="+itos(peer_id)+"]";
                return player->getName();
        }
 
index 9eb2254f06423c742da95fd76a54028ac4736f84..0b828e2a5a09356e1501758ca9444e24818965ec 100644 (file)
@@ -425,8 +425,6 @@ public:
                        n = m_defaults.find(name);
                        if(n == NULL)
                        {
-                               infostream<<"Settings: Setting not found: \""
-                                               <<name<<"\""<<std::endl;
                                throw SettingNotFoundException("Setting not found");
                        }
                }