forked from Mirrorlandia_minetest/minetest
Server configuration is now written when "/#setting whatever = whatever" is issued.
This commit is contained in:
parent
9b294ffa7a
commit
cdadbdbd17
@ -715,7 +715,8 @@ void the_game(
|
||||
std::string password,
|
||||
std::string address,
|
||||
u16 port,
|
||||
std::wstring &error_message
|
||||
std::wstring &error_message,
|
||||
std::string configpath
|
||||
)
|
||||
{
|
||||
video::IVideoDriver* driver = device->getVideoDriver();
|
||||
@ -755,7 +756,7 @@ void the_game(
|
||||
if(address == ""){
|
||||
draw_load_screen(L"Creating server...", driver, font);
|
||||
std::cout<<DTIME<<"Creating server"<<std::endl;
|
||||
server = new Server(map_dir);
|
||||
server = new Server(map_dir, configpath);
|
||||
server->start(port);
|
||||
}
|
||||
|
||||
|
@ -70,7 +70,8 @@ void the_game(
|
||||
std::string password,
|
||||
std::string address,
|
||||
u16 port,
|
||||
std::wstring &error_message
|
||||
std::wstring &error_message,
|
||||
std::string configpath
|
||||
);
|
||||
|
||||
#endif
|
||||
|
@ -1302,7 +1302,7 @@ int main(int argc, char *argv[])
|
||||
g_timegetter = new SimpleTimeGetter();
|
||||
|
||||
// Create server
|
||||
Server server(map_dir.c_str());
|
||||
Server server(map_dir.c_str(), configpath);
|
||||
server.start(port);
|
||||
|
||||
// Run server
|
||||
@ -1641,7 +1641,8 @@ int main(int argc, char *argv[])
|
||||
password,
|
||||
address,
|
||||
port,
|
||||
error_message
|
||||
error_message,
|
||||
configpath
|
||||
);
|
||||
|
||||
} //try
|
||||
|
@ -1058,7 +1058,8 @@ u32 PIChecksum(core::list<PlayerInfo> &l)
|
||||
*/
|
||||
|
||||
Server::Server(
|
||||
std::string mapsavedir
|
||||
std::string mapsavedir,
|
||||
std::string configpath
|
||||
):
|
||||
m_env(new ServerMap(mapsavedir), this),
|
||||
m_con(PROTOCOL_ID, 512, CONNECTION_TIMEOUT, this),
|
||||
@ -1069,6 +1070,7 @@ Server::Server(
|
||||
m_time_of_day_send_timer(0),
|
||||
m_uptime(0),
|
||||
m_mapsavedir(mapsavedir),
|
||||
m_configpath(configpath),
|
||||
m_shutdown_requested(false),
|
||||
m_ignore_map_edit_events(false),
|
||||
m_ignore_map_edit_events_peer_id(0)
|
||||
@ -3198,7 +3200,7 @@ void Server::ProcessData(u8 *data, u32 datasize, u16 peer_id)
|
||||
message = message.substr(commandprefix.size());
|
||||
|
||||
WStrfnd f1(message);
|
||||
f1.next(L" ");
|
||||
f1.next(L" "); // Skip over /#whatever
|
||||
std::wstring paramstring = f1.next(L"");
|
||||
|
||||
ServerCommandContext *ctx = new ServerCommandContext(
|
||||
@ -4023,9 +4025,9 @@ std::wstring Server::getStatusString()
|
||||
}
|
||||
os<<L"}";
|
||||
if(((ServerMap*)(&m_env.getMap()))->isSavingEnabled() == false)
|
||||
os<<std::endl<<" WARNING: Map saving is disabled.";
|
||||
os<<std::endl<<L"# Server: "<<" WARNING: Map saving is disabled.";
|
||||
if(g_settings.get("motd") != "")
|
||||
os<<std::endl<<narrow_to_wide(g_settings.get("motd"));
|
||||
os<<std::endl<<L"# Server: "<<narrow_to_wide(g_settings.get("motd"));
|
||||
return os.str();
|
||||
}
|
||||
|
||||
|
13
src/server.h
13
src/server.h
@ -364,7 +364,8 @@ public:
|
||||
*/
|
||||
|
||||
Server(
|
||||
std::string mapsavedir
|
||||
std::string mapsavedir,
|
||||
std::string configpath
|
||||
);
|
||||
~Server();
|
||||
void start(unsigned short port);
|
||||
@ -443,6 +444,13 @@ public:
|
||||
dstream<<"WARNING: Auth not found for "<<name<<std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
// Saves g_settings to configpath given at initialization
|
||||
void saveConfig()
|
||||
{
|
||||
if(m_configpath != "")
|
||||
g_settings.updateConfigFile(m_configpath.c_str());
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@ -606,6 +614,9 @@ private:
|
||||
// Map directory
|
||||
std::string m_mapsavedir;
|
||||
|
||||
// Configuration path ("" = no configuration file)
|
||||
std::string m_configpath;
|
||||
|
||||
bool m_shutdown_requested;
|
||||
|
||||
/*
|
||||
|
@ -142,10 +142,16 @@ void cmd_setting(std::wostringstream &os,
|
||||
return;
|
||||
}
|
||||
|
||||
std::string confline = wide_to_narrow(
|
||||
ctx->parms[1] + L" = " + ctx->paramstring);
|
||||
/*std::string confline = wide_to_narrow(
|
||||
ctx->parms[1] + L" = " + ctx->params[2]);*/
|
||||
|
||||
std::string confline = wide_to_narrow(ctx->paramstring);
|
||||
|
||||
g_settings.parseConfigLine(confline);
|
||||
os<< L"-!- Setting changed.";
|
||||
|
||||
ctx->server->saveConfig();
|
||||
|
||||
os<< L"-!- Setting changed and configuration saved.";
|
||||
}
|
||||
|
||||
void cmd_teleport(std::wostringstream &os,
|
||||
|
@ -323,7 +323,7 @@ int main(int argc, char *argv[])
|
||||
map_dir = g_settings.get("map-dir");
|
||||
|
||||
// Create server
|
||||
Server server(map_dir.c_str());
|
||||
Server server(map_dir.c_str(), configpath);
|
||||
server.start(port);
|
||||
|
||||
// Run server
|
||||
|
Loading…
Reference in New Issue
Block a user