Ejemplo n.º 1
0
 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,
     });
 }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 6
0
 private void OnChatRewardReceived(TwitchChatReward chatReward)
 {
 }
Ejemplo n.º 7
0
    void ShowReward(TwitchChatReward chatReward)
    {
        string message = $"Reward unlocked by {chatReward.User.DisplayName} - Reward ID: {chatReward.CustomRewardId} - Message: {chatReward.Message}";

        AddText(message);
    }