private void OnChatRewardReceived(TwitchChatReward chatReward) { if (TwitchRewardCollection.instance.TryFind(chatReward.CustomRewardId, out TwitchRewardData reward)) { Debug.Log($"OnReward {reward.Name}"); } }
private void OnTwitchInputLine(TwitchChatReward reward) { _inputRewards.Add(new RewardData { Id = reward.CustomRewardId, Name = reward.Message, }); }
private void ShowReward(TwitchChatReward chatReward) { string message = $"Reward unlocked by {chatReward.User.DisplayName} - " + $"Reward ID: {chatReward.CustomRewardId} - " + $"Bits: {chatReward.Bits} - " + $"Sub: {chatReward.User.IsSub} - " + $"Badges count: {chatReward.User.Badges.Count} - " + $"Badges: {string.Join("/", chatReward.User.Badges.Select(badge => badge.Name))} - " + $"Badge versions: {string.Join("/", chatReward.User.Badges.Select(badge => badge.Version))} - " + $"Message: {chatReward.Message}"; AddText(message); }
private void ReadChatReward(string message) { string customRewardId = _rewardRegexp.Match(message).Groups[1].Value; string displayName = _rewardRegexp.Match(message).Groups[2].Value; bool isSub = _rewardRegexp.Match(message).Groups[3].Value == "1"; string idUser = _rewardRegexp.Match(message).Groups[4].Value; string username = _rewardRegexp.Match(message).Groups[5].Value; string messageSent = _rewardRegexp.Match(message).Groups[6].Value; TwitchUser twitchUser = TwitchUserManager.AddUser(username); twitchUser.SetData(idUser, displayName, isSub); TwitchChatReward chatReward = new TwitchChatReward(twitchUser, messageSent, customRewardId); onChatRewardReceived?.Invoke(chatReward); }
private void ReadChatLine() { if (_twitchClient.Available <= 0) { return; } string source = _reader.ReadLine(); TwitchInputLine inputLine = new TwitchInputLine(source, _commandPrefix); onTwitchInputLine?.Invoke(inputLine); switch (inputLine.Type) { case TwitchInputType.LOGIN: if (inputLine.IsValidLogin(_twitchConnectConfig)) { _isAuthenticated = true; _onSuccess?.Invoke(); _onSuccess = null; Debug.Log("<color=green>¡Success Twitch Connection!</color>"); } else { _onError?.Invoke(LOGIN_WRONG_USERNAME); _onError = null; Debug.Log("<color=red>¡Error Twitch Connection: Token is valid but it belongs to another user!</color>"); } break; case TwitchInputType.NOTICE: string lineMessage = inputLine.Message; string userErrorMessage; string errorMessage; if (lineMessage.Contains(TwitchChatRegex.LOGIN_FAILED_MESSAGE)) { userErrorMessage = LOGIN_FAILED_MESSAGE; errorMessage = LOGIN_FAILED_MESSAGE; } else if (lineMessage.Contains(TwitchChatRegex.LOGIN_WRONG_REQUEST_MESSAGE)) { userErrorMessage = LOGIN_WRONG_REQUEST_MESSAGE; errorMessage = LOGIN_WRONG_REQUEST_MESSAGE; } else { userErrorMessage = LOGIN_UNEXPECTED_ERROR_MESSAGE; errorMessage = lineMessage; } _onError?.Invoke(userErrorMessage); _onError = null; Debug.Log($"<color=red>Twitch connection error: {errorMessage}</color>"); break; case TwitchInputType.PING: _writer.WriteLine(COMMAND_PONG); _writer.Flush(); break; case TwitchInputType.MESSAGE_COMMAND: { TwitchChatMessageParser payload = new TwitchChatMessageParser(inputLine); TwitchChatCommand chatCommand = new TwitchChatCommand(payload.User, payload.Sent, payload.Bits, payload.Id); onChatCommandReceived?.Invoke(chatCommand); } break; case TwitchInputType.MESSAGE_CHAT: { TwitchChatMessageParser payload = new TwitchChatMessageParser(inputLine); TwitchChatMessage chatMessage = new TwitchChatMessage(payload.User, payload.Sent, payload.Bits, payload.Id); onChatMessageReceived?.Invoke(chatMessage); } break; case TwitchInputType.MESSAGE_REWARD: { TwitchChatRewardParser payload = new TwitchChatRewardParser(inputLine); TwitchChatReward chatReward = new TwitchChatReward(payload.User, payload.Sent, payload.Id); onChatRewardReceived?.Invoke(chatReward); } break; case TwitchInputType.JOIN: TwitchUserManager.AddUser(inputLine.UserName); break; case TwitchInputType.PART: TwitchUserManager.RemoveUser(inputLine.UserName); break; } }
private void OnChatRewardReceived(TwitchChatReward chatReward) { }
void ShowReward(TwitchChatReward chatReward) { string message = $"Reward unlocked by {chatReward.User.DisplayName} - Reward ID: {chatReward.CustomRewardId} - Message: {chatReward.Message}"; AddText(message); }