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(); }
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(); }