private static void StreamServiceProvider_OnMessageReceived(IChatService svc, IChatMessage msg) { try { Console.WriteLine($"{msg.Sender.DisplayName}: {msg.Message}"); Console.WriteLine("NAME:"); Console.WriteLine(msg.Sender.DisplayName); string[] redeemString = msg.Message.Split(new string[] { "redeemed " }, StringSplitOptions.None); if (msg is TwitchMessage twitchMsg) { int bits = twitchMsg.Bits; if (bits > 0) { StreamlabsEvent streamlabsEvent = new StreamlabsEvent(); streamlabsEvent.type = "bits"; streamlabsEvent.message = new Message[1]; streamlabsEvent.message[0] = new Message(); streamlabsEvent.message[0].name = msg.Sender.UserName; streamlabsEvent.message[0].amount = twitchMsg.Bits.ToString(); unitySyncContext.Send(SafeInvokeNormalStreamEvent, streamlabsEvent); } } if (redeemString.Length > 1) { Console.WriteLine(redeemString[1]); Console.WriteLine(redeemString[0]); Console.WriteLine("REDEEMED ^"); StreamlabsEvent streamlabsEvent = new StreamlabsEvent(); streamlabsEvent.type = "channelpoints"; streamlabsEvent.message = new Message[1]; streamlabsEvent.message[0] = new Message(); streamlabsEvent.message[0].name = redeemString[0].Split(new string[] { "] " }, StringSplitOptions.None)[1].Trim(); streamlabsEvent.message[0].channelPointsName = redeemString[1].Trim(); unitySyncContext.Send(SafeInvokeStreamEvent, streamlabsEvent); /*foreach (CustomAlert alert in AlertObjectLoader.CustomAlerts) * { * if(alert.Descriptor.ChannelPointsName.ToLower().Trim() == redeemString[1].ToLower().Trim()) * { * //StreamlabsEvent labsEvent = new StreamlabsEvent(); * //labsEvent.type = "channelpoints"; * //labsEvent.message[0] = new Message(); * //labsEvent.message[0].name = redeemString[0].Trim(); * //alert.streamEvent = labsEvent; * //Debug.WriteLine(redeemString[0]); * //alert.ChannelPointsUser = redeemString[0].Split(new string[] { "] " }, StringSplitOptions.None)[1].Trim(); * //alert.Spawn * } * }*/ //.streamEvent = streamlabsEvent; } void SafeInvokeStreamEvent(object streamEvent) => OnEvent?.Invoke(streamEvent as StreamlabsEvent); void SafeInvokeNormalStreamEvent(object streamEvent) => OnNormalEvent?.Invoke(streamEvent as StreamlabsEvent); } catch (Exception e) { Console.WriteLine(e); } //Console.WriteLine(msg.ToJson().ToString()); }
private void StreamServiceProvider_OnMessageReceived(IChatService svc, IChatMessage msg) { try { string[] redeemString = msg.Message.Split(new string[] { "redeemed " }, StringSplitOptions.None); if (msg is TwitchMessage twitchMsg) { int bits = twitchMsg.Bits; if (bits > 0) { StreamlabsEvent streamlabsEvent = new StreamlabsEvent { Type = "bits", Message = new Message[1] }; streamlabsEvent.Message[0] = new Message { Name = msg.Sender.UserName, Amount = twitchMsg.Bits.ToString() }; _synchronizationContext.Send(SafeInvokeNormalStreamEvent, streamlabsEvent); } } if (redeemString.Length > 1) { StreamlabsEvent streamlabsEvent = new StreamlabsEvent { Type = "channelpoints", Message = new Message[1] }; streamlabsEvent.Message[0] = new Message { Name = redeemString[0].Split(new string[] { "] " }, StringSplitOptions.None)[1].Trim(), ChannelPointsName = redeemString[1].Trim() }; _synchronizationContext.Send(SafeInvokeStreamEvent, streamlabsEvent); } void SafeInvokeStreamEvent(object streamEvent) => OnEvent?.Invoke(streamEvent as StreamlabsEvent); void SafeInvokeNormalStreamEvent(object streamEvent) => OnNormalEvent?.Invoke(streamEvent as StreamlabsEvent); } catch (Exception e) { Plugin.Log.Error($"Error when processing received chat message: {e.Message}"); } }