public async Task InteractRoute(object sender, ReceivedMessageArgs e) { // check user eligibility if (!Conf.CheckUserEligibility(e)) { return; } Bridge.ALog("规则检查通过,正在朗读用户交互事件"); string result; switch (e.Message.MsgType) { case MsgTypeEnum.UserEnter: result = ProcessInteract(e.Message, Vars.CurrentConf.OnInteractEnter); break; case MsgTypeEnum.LiveShare: result = ProcessInteract(e.Message, Vars.CurrentConf.OnInteractShare); break; default: return; } await TTSPlayer.UnifiedPlay(result); }
public async Task GiftRoute(object sender, ReceivedDanmakuArgs e) { // check user eligibility if (!Conf.CheckUserEligibility(e)) { return; } // check gift eligibility if (!Conf.CheckGiftEligibility(e)) { return; } Bridge.ALog("规则检查通过,准备朗读"); if (Vars.CurrentConf.VoiceReplyFirst) { var hitAnyRule = await TTSPlayer.PlayVoiceReply(e.Danmaku); if (!hitAnyRule || !Vars.CurrentConf.IgnoreIfHitVoiceReply) { await TTSPlayer.UnifiedPlay(ProcessGift(e)); } } else { var hitAnyRule = Vars.CurrentConf.VoiceReplyRules.Any(x => x.Matches(e.Danmaku)); if (!hitAnyRule || !Vars.CurrentConf.IgnoreIfHitVoiceReply) { await TTSPlayer.UnifiedPlay(ProcessGift(e)); } await TTSPlayer.PlayVoiceReply(e.Danmaku); } }
public async void OnDisconnected(object sender, DisconnectEvtArgs e) { if (!IsNAudioReady) { return; } if (!IsEnabled) { return; } if (!Vars.CurrentConf.AllowConnectEvents) { return; } else if (Vars.CurrentConf.ClearQueueAfterDisconnect) { TTSPlayer.fileList.Clear(); } if (e == null) { await TTSPlayer.UnifiedPlay( Vars.CurrentConf.OnDisconnected.Replace( "$ERROR", "" ), true ); } else { await TTSPlayer.UnifiedPlay( Vars.CurrentConf.OnDisconnected.Replace( "$ERROR", e.Error.Message ) ); } }
public static async Task WelcomeRoute(object sender, ReceivedDanmakuArgs e) { // check user eligibility if (!Conf.CheckUserEligibility(e)) { return; } Bridge.ALog("规则检查通过,准备朗读"); await TTSPlayer.UnifiedPlay(Vars.CurrentConf.OnWelcome .Replace("$USER", e.Danmaku.UserName) , true ); }
public static async Task GuardBuyRoute(object sender, ReceivedDanmakuArgs e) { // check user eligibility if (!Conf.CheckUserEligibility(e)) { return; } Bridge.ALog("规则检查通过,准备朗读"); await TTSPlayer.UnifiedPlay(Vars.CurrentConf.OnGuardBuy .Replace("$COUNT", e.Danmaku.GiftCount.ToString()) .Replace("$USER", e.Danmaku.UserName) , true ); }
public async void OnConnected(object sender, ConnectedEvtArgs e) { if (!IsNAudioReady) { return; } if (!IsEnabled) { return; } if (!Vars.CurrentConf.AllowConnectEvents) { return; } await TTSPlayer.UnifiedPlay( Vars.CurrentConf.OnConnected.Replace( "$ROOM", e.roomid.ToString() ), true ); }
public async Task SuperChatRoute(object sender, ReceivedDanmakuArgs e) { // check user eligibility if (!Conf.CheckUserEligibility(e)) { return; } // check content eligibility if (!Conf.CheckKeywordEligibility(e)) { return; } // check length rule if (!Conf.CheckDanmakuLength(e)) { return; } Bridge.ALog("规则检查通过,准备朗读"); await TTSPlayer.UnifiedPlay(ProcessSuperChat(e), Vars.CurrentConf.SuperChatIgnoreRandomDitch); }
public async Task InteractRoute(object sender, ReceivedDanmakuArgs e) { // check user eligibility if (!Conf.CheckUserEligibility(e)) { return; } Bridge.ALog("规则检查通过,正在朗读用户交互事件"); string result; switch (e.Danmaku.InteractType) { case InteractTypeEnum.Enter: result = ProcessInteract(e.Danmaku, Vars.CurrentConf.OnInteractEnter); break; case InteractTypeEnum.Follow: result = ProcessInteract(e.Danmaku, Vars.CurrentConf.OnInteractFollow); break; case InteractTypeEnum.MutualFollow: result = ProcessInteract(e.Danmaku, Vars.CurrentConf.OnInteractMutualFollow); break; case InteractTypeEnum.Share: result = ProcessInteract(e.Danmaku, Vars.CurrentConf.OnInteractShare); break; case InteractTypeEnum.SpecialFollow: result = ProcessInteract(e.Danmaku, Vars.CurrentConf.OnInteractSpecialFollow); break; default: return; } await TTSPlayer.UnifiedPlay(result); }
public async Task CommentRoute(object sender, ReceivedMessageArgs e) { // check user eligibility if (!Conf.CheckUserEligibility(e)) { return; } // check content eligibility if (!Conf.CheckKeywordEligibility(e)) { return; } // check length rule if (!Conf.CheckDanmakuLength(e)) { return; } Bridge.ALog("规则检查通过,准备朗读"); if (Vars.CurrentConf.VoiceReplyFirst) { var hitAnyRule = await TTSPlayer.PlayVoiceReply(e.Message); if (!hitAnyRule || !Vars.CurrentConf.IgnoreIfHitVoiceReply) { await TTSPlayer.UnifiedPlay(ProcessDanmaku(e)); } } else { var hitAnyRule = Vars.CurrentConf.VoiceReplyRules.Any(x => x.Matches(e.Message)); if (!hitAnyRule || !Vars.CurrentConf.IgnoreIfHitVoiceReply) { await TTSPlayer.UnifiedPlay(ProcessDanmaku(e)); } await TTSPlayer.PlayVoiceReply(e.Message); } }
public async Task LiveStartRoute(object sender, ReceivedMessageArgs e) { await TTSPlayer.UnifiedPlay(Vars.CurrentConf.OnLiveStart, true); }
public async Task WarningRoute(object sender, ReceivedDanmakuArgs e) { await TTSPlayer.UnifiedPlay(Vars.CurrentConf.OnWarning, true); }