Advertisement
coolman_bg84

Untitled

Apr 7th, 2020
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.10 KB | None | 0 0
  1.  public class Invoker
  2.     {
  3.         private Command _command;
  4.         public Receiver _receiver;
  5.         public Invoker()
  6.         {
  7.             _receiver=new Receiver();
  8.            
  9.         }
  10.         public void SetCommand(string rawText)
  11.         {
  12.             var switchCommand = GetSwitchCommand(rawText);
  13.             var parameters= GetParams(rawText);
  14.             this._command = new CommandFactory().GetCommand(rawText,parameters,switchCommand);
  15.            
  16.         }
  17.         public void ExecuteCommand()
  18.         {
  19.             _receiver.Execute(_command);
  20.         }
  21.  
  22.         private string GetSwitchCommand(string rawText)
  23.         {
  24.             var commandArray = GetParams(rawText);
  25.            
  26.             return MenuCommand.commands.FirstOrDefault(f => commandArray[0].Contains(f))?.ToLower();
  27.         }
  28.  
  29.         private List<string> GetParams(string rawText)
  30.         {
  31.             var cmds = Regex.Match(rawText, @":(!.+?)\r\n").Groups[1].Value;
  32.             var parameters = cmds.Split(new Char[] { ' ' }).ToList();
  33.            
  34.             return parameters;
  35.         }
  36.     }
  37.     public class CommandFactory
  38.     {
  39.         public Command GetCommand(string rawText,List<string> parameters,string switchCommand)
  40.         {
  41.            
  42.             if (parameters.Count == 0) return new NotFound().CheckCommandParams(rawText);
  43.  
  44.             parameters.RemoveAt(0);
  45.  
  46.             switch (switchCommand)
  47.             {
  48.                 case "!join":
  49.                     return new Join().CheckCommandParams(parameters);
  50.                 case "!say":
  51.                     return new Say().CheckCommandParams(rawText,parameters);
  52.                 case "!show":
  53.                     return new Show().CheckCommandParams(rawText, parameters);
  54.                 case "!raw":
  55.                     return new RawCommand().CheckCommandParams(parameters);
  56.                 case "!help":
  57.                     return new NotFound().CheckCommandParams(rawText);
  58.                 default:
  59.                     return new NotFound().CheckCommandParams(rawText);
  60.                      
  61.             }
  62.         }
  63.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement