Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/StarCommandProcessor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/game/StarCommandProcessor.hpp')
-rw-r--r--source/game/StarCommandProcessor.hpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/source/game/StarCommandProcessor.hpp b/source/game/StarCommandProcessor.hpp
new file mode 100644
index 0000000..49af16a
--- /dev/null
+++ b/source/game/StarCommandProcessor.hpp
@@ -0,0 +1,77 @@
+#ifndef STAR_COMMAND_PROCESSOR_HPP
+#define STAR_COMMAND_PROCESSOR_HPP
+
+#include "StarGameTypes.hpp"
+#include "StarShellParser.hpp"
+#include "StarLuaComponents.hpp"
+#include "StarLuaRoot.hpp"
+
+namespace Star {
+
+STAR_CLASS(UniverseServer);
+STAR_CLASS(CommandProcessor);
+
+class CommandProcessor {
+public:
+ CommandProcessor(UniverseServer* universe);
+
+ String adminCommand(String const& command, String const& argumentString);
+ String userCommand(ConnectionId clientId, String const& command, String const& argumentString);
+
+private:
+ static Maybe<ConnectionId> playerCidFromCommand(String const& player, UniverseServer* universe);
+
+ String help(ConnectionId connectionId, String const& argumentString);
+ String admin(ConnectionId connectionId, String const& argumentString);
+ String pvp(ConnectionId connectionId, String const& argumentString);
+ String whoami(ConnectionId connectionId, String const& argumentString);
+
+ String warp(ConnectionId connectionId, String const& argumentString);
+ String warpRandom(ConnectionId connectionId, String const& argumentString);
+ String timewarp(ConnectionId connectionId, String const& argumentString);
+ String setTileProtection(ConnectionId connectionId, String const& argumentString);
+ String setDungeonId(ConnectionId connectionId, String const& argumentString);
+ String setPlayerStart(ConnectionId connectionId, String const& argumentString);
+ String spawnItem(ConnectionId connectionId, String const& argumentString);
+ String spawnTreasure(ConnectionId connectionId, String const& argumentString);
+ String spawnMonster(ConnectionId connectionId, String const& argumentString);
+ String spawnNpc(ConnectionId connectionId, String const& argumentString);
+ String spawnVehicle(ConnectionId connectionId, String const& argumentString);
+ String spawnStagehand(ConnectionId connectionId, String const& argumentString);
+ String clearStagehand(ConnectionId connectionId, String const& argumentString);
+ String spawnLiquid(ConnectionId connectionId, String const& argumentString);
+ String kick(ConnectionId connectionId, String const& argumentString);
+ String ban(ConnectionId connectionId, String const& argumentString);
+ String unbanIp(ConnectionId connectionId, String const& argumentString);
+ String unbanUuid(ConnectionId connectionId, String const& argumentString);
+ String list(ConnectionId connectionId, String const& argumentString);
+ String clientCoordinate(ConnectionId connectionId, String const& argumentString);
+ String serverReload(ConnectionId connectionId, String const& argumentString);
+ String eval(ConnectionId connectionId, String const& lua);
+ String entityEval(ConnectionId connectionId, String const& lua);
+ String enableSpawning(ConnectionId connectionId, String const& argumentString);
+ String disableSpawning(ConnectionId connectionId, String const& argumentString);
+ String placeDungeon(ConnectionId connectionId, String const& argumentString);
+ String setUniverseFlag(ConnectionId connectionId, String const& argumentString);
+ String resetUniverseFlags(ConnectionId connectionId, String const& argumentString);
+ String addBiomeRegion(ConnectionId connectionId, String const& argumentString);
+ String expandBiomeRegion(ConnectionId connectionId, String const& argumentString);
+ String updatePlanetType(ConnectionId connectionId, String const& argumentString);
+ String setEnvironmentBiome(ConnectionId connectionId, String const& argumentString);
+
+ mutable Mutex m_mutex;
+
+ String handleCommand(ConnectionId connectionId, String const& command, String const& argumentString);
+ Maybe<String> adminCheck(ConnectionId connectionId, String const& commandDescription) const;
+ Maybe<String> localCheck(ConnectionId connectionId, String const& commandDescription) const;
+ LuaCallbacks makeCommandCallbacks();
+
+ UniverseServer* m_universe;
+ ShellParser m_parser;
+
+ LuaBaseComponent m_scriptComponent;
+};
+
+}
+
+#endif