From: Dave B. <dbr...@us...> - 2003-10-01 03:51:36
|
Update of /cvsroot/bzflag/bzflag/src/bzfs In directory sc8-pr-cvs1:/tmp/cvs-serv5742/bzflag/src/bzfs Modified Files: bzfs.cxx Log Message: add /reset var server cmd Index: bzfs.cxx =================================================================== RCS file: /cvsroot/bzflag/bzflag/src/bzfs/bzfs.cxx,v retrieving revision 1.347 retrieving revision 1.348 diff -w -u -r1.347 -r1.348 --- bzfs.cxx 1 Oct 2003 02:12:57 -0000 1.347 +++ bzfs.cxx 1 Oct 2003 03:51:32 -0000 1.348 @@ -3832,6 +3832,8 @@ // /set sets a world configuration variable that gets sent to all clients } else if ((hasPerm(t, PlayerAccessInfo::setVar) || hasPerm(t, PlayerAccessInfo::setAll)) && strncmp(message + 1, "set", 3) == 0) { sendMessage(ServerPlayer, t, CMDMGR->run(message+1).c_str()); + } else if ((hasPerm(t, PlayerAccessInfo::setVar) || hasPerm(t, PlayerAccessInfo::setAll)) && strncmp(message + 1, "reset", 5) == 0) { + sendMessage(ServerPlayer, t, CMDMGR->run(message+1).c_str()); // /shutdownserver terminates the server } else if (hasPerm(t, PlayerAccessInfo::shutdownServer) && strncmp(message + 1, "shutdownserver", 8) == 0) { @@ -4987,6 +4989,24 @@ } } +static std::string cmdReset(const std::string&, const CommandManager::ArgList& args) +{ + if (args.size() == 1) { + if (BZDB->isSet(args[0])) { + StateDatabase::Permission permission=BZDB->getPermission(args[0]); + if ((permission == StateDatabase::ReadWrite) || (permission == StateDatabase::Locked)) { + BZDB->set(args[0], BZDB->getDefault(args[0]), StateDatabase::Server); + return args[0] + " reset"; + } + return "variable " + args[0] + " is not writeable"; + } + else + return "variable " + args[0] + " does not exist"; + } + else + return "usage: reset <name>"; +} + /** main parses command line options and then enters an event and activity * dependant main loop. once inside the main loop, the server is up and @@ -5067,6 +5087,7 @@ BZDB->addCallback(std::string(globalDBItems[gi].name), onGlobalChanged, (void*) NULL); } CMDMGR->add("set", cmdSet, "set <name> [<value>]"); + CMDMGR->add("reset", cmdReset, "reset <name>"); BZDBCache::init(); |