private void AppendWelcomeGuard(BiliLiveJsonParser.WelcomeGuard welcomeGuard) { Dispatcher.Invoke(new Action(() => { TextBlock textBlock = new TextBlock() { TextWrapping = TextWrapping.Wrap }; Run user = new Run() { Text = welcomeGuard.User.Name, Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF64D2F0")), Tag = welcomeGuard.User.Id }; user.MouseLeftButtonDown += User_MouseLeftButtonDown; textBlock.Inlines.Add(user); textBlock.Inlines.Add(new Run() { Text = Application.Current.Resources["JoinedIn"].ToString(), Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFCBDAF7")) }); ListBoxItem listBoxItem = new ListBoxItem() { Content = textBlock, HorizontalContentAlignment = HorizontalAlignment.Left, VerticalContentAlignment = VerticalAlignment.Center }; listBoxItem.MouseRightButtonUp += ListBoxItem_MouseRightButtonUp; listBoxItem.MouseLeftButtonUp += ListBoxItem_MouseLeftButtonUp; listBoxItem.MouseLeave += ListBoxItem_MouseLeave; listBoxItem.Loaded += ListBoxItem_Loaded; DanmakuBox.Items.Add(listBoxItem); RefreshScroll(DanmakuBox); })); }
public void AppendWelcomeGuard(BiliLiveJsonParser.WelcomeGuard item) { Dispatcher.Invoke(() => { DanmakuPanel.Children.Add(new Welcome(item)); if (!DanmakuScrollViewer.IsMouseOver) { DanmakuScrollViewer.ScrollToBottom(); } CleanDanmakuTime = DateTime.UtcNow.AddSeconds(0.2); }); if (CleanDanmakuTask == null || CleanDanmakuTask.IsCompleted) { CleanDanmakuTask = Task.Factory.StartNew(CleanPanel); } }
public Welcome(BiliLiveJsonParser.WelcomeGuard welcomeGuard) { InitializeComponent(); UserBox.Text = welcomeGuard.User.Name; switch (welcomeGuard.GuardLevel) { case 1: TitleBox.Text = "总督"; UserBox.Foreground = GovernorBrush; TitleBox.Foreground = GovernorBrush; break; case 2: TitleBox.Text = "提督"; UserBox.Foreground = AdmiralBrush; TitleBox.Foreground = AdmiralBrush; break; case 3: TitleBox.Text = "舰长"; UserBox.Foreground = CaptainBrush; TitleBox.Foreground = CaptainBrush; break; } UserId = welcomeGuard.User.Id; FaceImage.Source = null; //BitmapImage bitmapImage = FaceLoader.LoadFormCache(UserId); //FaceImage.Source = bitmapImage; //if (!FaceLoader.LoadFormCache(this)) // //SetFace(bitmapImage); // //if(bitmapImage == null) // FaceLoader.Enqueue(this); FaceLoader.LoadFace(this); }
public void ProcessItem(BiliLiveJsonParser.IItem item) { if (Window == null) { return; } switch (item.Cmd) { case BiliLiveJsonParser.Cmds.DANMU_MSG: BiliLiveJsonParser.Danmaku danmaku = (BiliLiveJsonParser.Danmaku)item; if (danmaku.Type == 0) { if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.Danmaku]) { Window.AppendDanmaku(danmaku); } } else if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.RythmStorm]) { Window.AppendRythmStorm(danmaku); } break; case BiliLiveJsonParser.Cmds.SUPER_CHAT_MESSAGE: BiliLiveJsonParser.SuperChat superChat = (BiliLiveJsonParser.SuperChat)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.SuperChat]) { Window.AppendSuperChat(superChat); } break; case BiliLiveJsonParser.Cmds.SEND_GIFT: BiliLiveJsonParser.Gift gift = (BiliLiveJsonParser.Gift)item; if (!giftCacheManager.AppendToExist(gift)) { GiftCacheManager.GiftCache giftCache = giftCacheManager.AppendCache(gift); if (gift.CoinType == "gold" && OptionDict[DanmakuShowConfig.DisplayFilterOptions.GoldenGift]) { Window.AppendGift(giftCache); } else if (gift.CoinType == "silver" && OptionDict[DanmakuShowConfig.DisplayFilterOptions.SilverGift]) { Window.AppendGift(giftCache); } } break; case BiliLiveJsonParser.Cmds.COMBO_SEND: BiliLiveJsonParser.ComboSend comboSend = (BiliLiveJsonParser.ComboSend)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.ComboSend]) { Window.AppendComboSend(comboSend); } break; case BiliLiveJsonParser.Cmds.WELCOME: BiliLiveJsonParser.Welcome welcome = (BiliLiveJsonParser.Welcome)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.Welcome]) { Window.AppendWelcome(welcome); } break; case BiliLiveJsonParser.Cmds.WELCOME_GUARD: BiliLiveJsonParser.WelcomeGuard welcomeGuard = (BiliLiveJsonParser.WelcomeGuard)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.WelcomeGuard]) { Window.AppendWelcomeGuard(welcomeGuard); } break; case BiliLiveJsonParser.Cmds.GUARD_BUY: BiliLiveJsonParser.GuardBuy guardBuy = (BiliLiveJsonParser.GuardBuy)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.GuardBuy]) { Window.AppendGuardBuy(guardBuy); } break; case BiliLiveJsonParser.Cmds.INTERACT_WORD: BiliLiveJsonParser.InteractWord interactWord = (BiliLiveJsonParser.InteractWord)item; if (interactWord.MessageType == BiliLiveJsonParser.InteractWord.MessageTypes.Entry && OptionDict[DanmakuShowConfig.DisplayFilterOptions.InteractEntry]) { Window.AppendInteractWord(interactWord); } else if (interactWord.MessageType == BiliLiveJsonParser.InteractWord.MessageTypes.Attention && OptionDict[DanmakuShowConfig.DisplayFilterOptions.InteractAttention]) { Window.AppendInteractWord(interactWord); } else if (interactWord.MessageType == BiliLiveJsonParser.InteractWord.MessageTypes.Share && OptionDict[DanmakuShowConfig.DisplayFilterOptions.InteractShare]) { Window.AppendInteractWord(interactWord); } else if (interactWord.MessageType == BiliLiveJsonParser.InteractWord.MessageTypes.SpecialAttention && OptionDict[DanmakuShowConfig.DisplayFilterOptions.InteractSpecialAttention]) { Window.AppendInteractWord(interactWord); } else if (interactWord.MessageType == BiliLiveJsonParser.InteractWord.MessageTypes.MutualAttention && OptionDict[DanmakuShowConfig.DisplayFilterOptions.InteractMutualAttention]) { Window.AppendInteractWord(interactWord); } break; case BiliLiveJsonParser.Cmds.ROOM_BLOCK_MSG: BiliLiveJsonParser.RoomBlock roomBlock = (BiliLiveJsonParser.RoomBlock)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.RoomBlock]) { Window.AppendRoomBlock(roomBlock); } break; } }