0
0
Fork 0
mirror of https://github.com/Sanae6/SmoOnlineServer.git synced 2024-11-22 03:05:16 +00:00
SmoOnlineServer/Server/CommandHandler.cs

26 lines
No EOL
995 B
C#

namespace Server;
public static class CommandHandler {
public delegate string Handler(string[] args);
public static Dictionary<string, Handler> Handlers = new Dictionary<string, Handler>();
static CommandHandler() {
RegisterCommand("help", _ => $"Valid commands: {string.Join(", ", Handlers.Keys)}");
}
public static void RegisterCommand(string name, Handler handler) {
Handlers[name] = handler;
}
public static string GetResult(string input) {
try {
string[] args = input.Split(' ');
if (args.Length == 0) return "No command entered, see help command for valid commands";
string commandName = args[0];
return Handlers.TryGetValue(commandName, out Handler? handler) ? handler(args[1..]) : $"Invalid command {args[0]}, see help command for valid commands";
} catch (Exception e) {
return $"An error occured while trying to process your command: {e}";
}
}
}