コード例 #1
0
        private void ConfigSet(object sender, IrcEventArgs e)
        {
            string sendto = e.Data.Channel.IsNullOrEmpty() ? e.Data.Nick : e.Data.Channel;

            if (e.Data.MessageArray.Length < 3)
            {
                foreach (var line in bot.GetType().GetProperties().Where(property => property.CanWrite).Select(property => property.Name).ToLines(350))
                {
                    bot.SendMessage(SendType.Message, sendto, line);
                }
            }
            else
            {
                var propertyInfos = bot.GetType().GetProperties().Where(property => property.CanWrite && property.Name == e.Data.MessageArray[1]).SingleOrDefault();
                if (propertyInfos != null)
                {
                    if (propertyInfos.PropertyType == typeof(int))
                    {
                        propertyInfos.SetValue(bot, int.Parse(e.Data.MessageArray[2]), null);
                    }
                    if (propertyInfos.PropertyType == typeof(string))
                    {
                        propertyInfos.SetValue(bot, e.Data.MessageArray[2], null);
                    }

                    bot.SendMessage(SendType.Message, sendto, "Value set (if string or int)");
                }
                else
                {
                    bot.SendMessage(SendType.Message, sendto, "Dont know that property");
                }
            }
        }