/// <summary> /// Gets the method parameter value. /// </summary> /// <param name="parameter">Parameter reflexion into</param> /// <param name="index">Index of the parameter as seen by player</param> /// <param name="player">Player bound to</param> /// <param name="rawValues"></param> /// <returns>Parsed value or DBNull if could not be barsed</returns> private static object GetValue(ParameterInfo parameter, int index, Player player, List <string> rawValues) { if (index < rawValues.Count) { string rawValue = rawValues[index]; object value = GMUtils.TryParse(parameter.ParameterType, rawValue); if (value == null) { player.SendClientMessage(string.Concat( CommandToString(parameter), " : Unexpected value for ", parameter.Name), ChatLogFilters.CHATLOGFILTERS_CSR_TELL_RECEIVE); return(DBNull.Value); } return(value); } else if (parameter.DefaultValue != DBNull.Value) { return(parameter.DefaultValue); } else { player.SendClientMessage(string.Concat( CommandToString(parameter), " : ", parameter.Name, " is required"), ChatLogFilters.CHATLOGFILTERS_CSR_TELL_RECEIVE); return(DBNull.Value); } }