Advertisement
Guest User

Untitled

a guest
Apr 7th, 2020
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.66 KB | None | 0 0
  1. string keyName = $"{commandName}({paramCount})";
  2.             if (!_commandTable.ContainsKey(keyName))
  3.             {
  4.                 var firstOverload = _commandTable.Keys.ToList().Find(c => c.Contains($"{commandName}("));
  5.                 bool overloadExists = firstOverload != null;
  6.                 if (overloadExists && _commandTable[firstOverload].ParamTypes.All(t => t == typeof(String)))
  7.                 {
  8.                     var overloadCmd = _commandTable[firstOverload];
  9.                     if (overloadCmd.ParamCount < commandParams.Length)
  10.                     {
  11.                         var remainingParams = commandParams.ToList();
  12.                         object[] stringParams = new object[overloadCmd.ParamCount];
  13.                         for (int i = 0; i < overloadCmd.ParamCount; i++)
  14.                         {
  15.                             if (i + 1 >= overloadCmd.ParamCount)
  16.                             {
  17.                                 stringParams[i] = string.Join(" ", remainingParams);
  18.                             }
  19.                             else
  20.                             {
  21.                                 stringParams[i] = remainingParams.First();
  22.                                 remainingParams.RemoveAt(0);
  23.                             }
  24.                         }
  25.                         return overloadCmd.Invoke(stringParams, overloadCmd.ParamTypes);
  26.                     }
  27.                     else throw new ArgumentException($"No overload of '{commandName}' with {paramCount} parameters could be found.");
  28.                 }
  29.                 else { throw new ArgumentException($"Command '{commandName}' could not be found."); }
  30.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement