Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Invoker
- {
- private Command _command;
- public Receiver _receiver;
- public Invoker()
- {
- _receiver=new Receiver();
- }
- public void SetCommand(string rawText)
- {
- var switchCommand = GetSwitchCommand(rawText);
- var parameters= GetParams(rawText);
- this._command = new CommandFactory().GetCommand(rawText,parameters,switchCommand);
- }
- public void ExecuteCommand()
- {
- _receiver.Execute(_command);
- }
- private string GetSwitchCommand(string rawText)
- {
- var commandArray = GetParams(rawText);
- return MenuCommand.commands.FirstOrDefault(f => commandArray[0].Contains(f))?.ToLower();
- }
- private List<string> GetParams(string rawText)
- {
- var cmds = Regex.Match(rawText, @":(!.+?)\r\n").Groups[1].Value;
- var parameters = cmds.Split(new Char[] { ' ' }).ToList();
- return parameters;
- }
- }
- public class CommandFactory
- {
- public Command GetCommand(string rawText,List<string> parameters,string switchCommand)
- {
- if (parameters.Count == 0) return new NotFound().CheckCommandParams(rawText);
- parameters.RemoveAt(0);
- switch (switchCommand)
- {
- case "!join":
- return new Join().CheckCommandParams(parameters);
- case "!say":
- return new Say().CheckCommandParams(rawText,parameters);
- case "!show":
- return new Show().CheckCommandParams(rawText, parameters);
- case "!raw":
- return new RawCommand().CheckCommandParams(parameters);
- case "!help":
- return new NotFound().CheckCommandParams(rawText);
- default:
- return new NotFound().CheckCommandParams(rawText);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement