summaryrefslogtreecommitdiff
path: root/src/servercommand.h
diff options
context:
space:
mode:
authorCiaran Gultnieks <ciaran@ciarang.com>2011-05-16 10:41:19 +0100
committerCiaran Gultnieks <ciaran@ciarang.com>2011-05-16 10:41:19 +0100
commit248d7c8469f8cb37406ea0ce56d0945e38334cfb (patch)
treedf8c2ad03a674f8d7c08d6af01ddb3f2a7e7b689 /src/servercommand.h
parentdadac0e79f96b112947a50f37b39ad9677e870d0 (diff)
downloadminetest-248d7c8469f8cb37406ea0ce56d0945e38334cfb.tar.gz
minetest-248d7c8469f8cb37406ea0ce56d0945e38334cfb.tar.bz2
minetest-248d7c8469f8cb37406ea0ce56d0945e38334cfb.zip
Improved server commands and added player permissions.
--HG-- extra : rebase_source : 178fe08f10b7de3ebaba088bd24faad795114216
Diffstat (limited to 'src/servercommand.h')
-rw-r--r--src/servercommand.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/servercommand.h b/src/servercommand.h
new file mode 100644
index 000000000..01efcae06
--- /dev/null
+++ b/src/servercommand.h
@@ -0,0 +1,76 @@
+/*
+Minetest-c55
+Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
+Copyright (C) 2011 Ciaran Gultnieks <ciaran@ciarang.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef SERVERCOMMAND_HEADER
+#define SERVERCOMMAND_HEADER
+
+#include <vector>
+#include <sstream>
+#include "common_irrlicht.h"
+#include "player.h"
+#include "server.h"
+
+struct ServerCommandContext
+{
+
+ std::vector<std::wstring> parms;
+ Server* server;
+ ServerEnvironment *env;
+ Player* player;
+ u32 flags;
+
+ ServerCommandContext(
+ std::vector<std::wstring> parms,
+ Server* server,
+ ServerEnvironment *env,
+ Player* player)
+ : parms(parms), server(server), env(env), player(player)
+ {
+ }
+
+};
+
+class ServerCommand
+{
+public:
+
+ static std::wstring processCommand(ServerCommandContext *ctx);
+
+private:
+
+ static void cmd_status(std::wostringstream &os,
+ ServerCommandContext *ctx);
+ static void cmd_privs(std::wostringstream &os,
+ ServerCommandContext *ctx);
+ static void cmd_grantrevoke(std::wostringstream &os,
+ ServerCommandContext *ctx);
+ static void cmd_time(std::wostringstream &os,
+ ServerCommandContext *ctx);
+ static void cmd_shutdown(std::wostringstream &os,
+ ServerCommandContext *ctx);
+ static void cmd_setting(std::wostringstream &os,
+ ServerCommandContext *ctx);
+ static void cmd_teleport(std::wostringstream &os,
+ ServerCommandContext *ctx);
+};
+
+#endif
+
+