summaryrefslogtreecommitdiff
path: root/src/servercommand.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/servercommand.h')
-rw-r--r--src/servercommand.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/servercommand.h b/src/servercommand.h
new file mode 100644
index 000000000..9013bc2a6
--- /dev/null
+++ b/src/servercommand.h
@@ -0,0 +1,60 @@
+/*
+Part of Minetest-c55
+Copyright (C) 2010-11 celeron55, Perttu Ahola <celeron55@gmail.com>
+Copyright (C) 2011 Ciaran Gultnieks <ciaran@ciarang.com>
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+#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;
+ // Effective privs for the player, which may be different to their
+ // stored ones - e.g. if they are named in the config as an admin.
+ u64 privs;
+ u32 flags;
+
+ ServerCommandContext(
+ std::vector<std::wstring> parms,
+ Server* server,
+ ServerEnvironment *env,
+ Player* player,
+ u64 privs)
+ : parms(parms), server(server), env(env), player(player), privs(privs)
+ {
+ }
+
+};
+
+// Process a command sent from a client. The environment and connection
+// should be locked when this is called.
+// Returns a response message, to be dealt with according to the flags set
+// in the context.
+std::wstring processServerCommand(ServerCommandContext *ctx);
+
+#endif
+
+