Example #1
0
 private void saveSettings()
 {
     this.settings.ChatPreserveCount         = ChatPreserveCount.Value;
     this.settings.ClearChatsOnChannelChange = ClearChatsOnChannelChange.Value;
     this.settings.ChatModRules = chatModRules.Select(x =>
     {
         var entity = new Serialization.ChatModRuleEntity {
             TargetChatCollectServiceEntries = x.ChatModRule.TargetChatCollectServiceEntries.Select(entry => entry.Id).ToArray(),
             AppliedCount    = x.AppliedCount,
             LastAppliedTime = x.LastAppliedTime
         };
         if (x.ChatModRule is ChatModRules.WordNgChatModRule)
         {
             entity.Type       = "WordNg";
             entity.Expression = ((ChatModRules.WordNgChatModRule)x.ChatModRule).Word;
         }
         else if (x.ChatModRule is ChatModRules.UserNgChatModRule)
         {
             entity.Type       = "UserNg";
             entity.Expression = ((ChatModRules.UserNgChatModRule)x.ChatModRule).UserId;
         }
         else if (x.ChatModRule is ChatModRules.IroKomeNgChatModRule)
         {
             entity.Type = "IroKomeNg";
         }
         else if (x.ChatModRule is ChatModRules.JyougeKomeNgChatModRule)
         {
             entity.Type = "JyougeKomeNg";
         }
         else if (x.ChatModRule is ChatModRules.JyougeIroKomeNgChatModRule)
         {
             entity.Type = "JyougeIroKomeNg";
         }
         else if (x.ChatModRule is ChatModRules.RandomizeColorChatModRule)
         {
             entity.Type = "RandomizeColor";
         }
         else if (x.ChatModRule is ChatModRules.SmallOnMultiLineChatModRule)
         {
             entity.Type       = "SmallOnMultiLine";
             entity.Expression = ((ChatModRules.SmallOnMultiLineChatModRule)x.ChatModRule).LineCount.ToString();
         }
         else if (x.ChatModRule is ChatModRules.SetColorChatModRule)
         {
             entity.Type       = "SetColor";
             Color color       = ((ChatModRules.SetColorChatModRule)x.ChatModRule).Color;
             entity.Expression = $"{color.A},{color.R},{color.G},{color.B}";
         }
         else
         {
             throw new Exception();
         }
         return(entity);
     }).ToArray();
 }
Example #2
0
        private void saveSettings()
        {
            this.settings.ChatPreserveCount         = ChatPreserveCount.Value;
            this.settings.ClearChatsOnChannelChange = ClearChatsOnChannelChange.Value;
            this.settings.ChatModRules = chatModRules.Select(x =>
            {
                var entity = new Serialization.ChatModRuleEntity {
                    TargetChatCollectServiceEntries = x.ChatModRule.TargetChatCollectServiceEntries.Select(entry => entry.Id).ToArray(),
                    AppliedCount    = x.AppliedCount,
                    LastAppliedTime = x.LastAppliedTime
                };

                switch (x.ChatModRule)
                {
                case ChatModRules.WordNgChatModRule wordNg:
                    entity.Type       = "WordNg";
                    entity.Expression = wordNg.Word;
                    break;

                case ChatModRules.UserNgChatModRule userNg:
                    entity.Type       = "UserNg";
                    entity.Expression = userNg.UserId;
                    break;

                case ChatModRules.IroKomeNgChatModRule _:
                    entity.Type = "IroKomeNg";
                    break;

                case ChatModRules.JyougeKomeNgChatModRule _:
                    entity.Type = "JyougeKomeNg";
                    break;

                case ChatModRules.JyougeIroKomeNgChatModRule _:
                    entity.Type = "JyougeIroKomeNg";
                    break;

                case ChatModRules.RandomizeColorChatModRule _:
                    entity.Type = "RandomizeColor";
                    break;

                case ChatModRules.SmallOnMultiLineChatModRule smallOnMultiLine:
                    entity.Type       = "SmallOnMultiLine";
                    entity.Expression = smallOnMultiLine.LineCount.ToString();
                    break;

                case ChatModRules.RemoveAnchorChatModRule _:
                    entity.Type = "RemoveAnchor";
                    break;

                case ChatModRules.RemoveUrlChatModRule _:
                    entity.Type = "RemoveUrl";
                    break;

                case ChatModRules.RenderEmotionAsCommentChatModRule _:
                    entity.Type = "RenderEmotionAsComment";
                    break;

                case ChatModRules.RenderInfoAsCommentChatModRule _:
                    entity.Type = "RenderInfoAsComment";
                    break;

                case ChatModRules.SetColorChatModRule setColor:
                    entity.Type       = "SetColor";
                    Color color       = setColor.Color;
                    entity.Expression = $"{color.A},{color.R},{color.G},{color.B}";
                    break;

                default:
                    throw new Exception();
                }
                return(entity);
            }).ToArray();
        }