Exemplo n.º 1
0
        public void OnChannelSub(object sender, OnChannelSubscriptionArgs e)
        {
            var message = $"Thank you for the sub, {e.Subscription.DisplayName}, it's appreciated!!";

            Console.WriteLine(message);
            //new CommandAnnounce(client).Execute(message);
        }
Exemplo n.º 2
0
        internal void HandleSubscription(OnChannelSubscriptionArgs args)
        {
            Console.WriteLine();
            Log.Information($"{args.Subscription.DisplayName}/{args.Subscription.RecipientDisplayName} has just subscribed!" +
                            $" ({args.Subscription.Months} months, tier {args.Subscription.SubscriptionPlan})");
            SubEffect se = new SubEffect(args.Subscription.Months != null? (int)args.Subscription.Months : 0, args.Subscription.SubscriptionPlan, args.Subscription.DisplayName);

            queue.EnqueueSubEffect(se);
        }
Exemplo n.º 3
0
        public void OnNewSubscriberEvent(OnChannelSubscriptionArgs args)
        {
            this.OnChannelSubscription?.Invoke(this, args);

            if (!this.events.ContainsKey(EventType.Subscription))
            {
                return;
            }

            var tokenReplacements = new List <KeyValuePair <string, string> >();

            // Username of subscriber or gifter
            if (string.IsNullOrWhiteSpace(args.Subscription.RecipientDisplayName))
            {
                // Regular sub
                tokenReplacements.Add(new KeyValuePair <string, string>("{{user}}", args.Subscription.DisplayName));
            }
            else
            {
                // gifted sub
                tokenReplacements.Add(new KeyValuePair <string, string>("{{user}}", args.Subscription.RecipientDisplayName));
            }

            // Cumulative months count
            if (args.Subscription.CumulativeMonths.HasValue)
            {
                tokenReplacements.Add(new KeyValuePair <string, string>("{{month}}", args.Subscription.CumulativeMonths.Value.ToString()));
            }

            // Sub tier
            switch (args.Subscription.SubscriptionPlan)
            {
            case TwitchLib.PubSub.Enums.SubscriptionPlan.Prime:
                tokenReplacements.Add(new KeyValuePair <string, string>("{{tier}}", "Prime"));
                break;

            case TwitchLib.PubSub.Enums.SubscriptionPlan.Tier1:
                tokenReplacements.Add(new KeyValuePair <string, string>("{{tier}}", "Tier 1"));
                break;

            case TwitchLib.PubSub.Enums.SubscriptionPlan.Tier2:
                tokenReplacements.Add(new KeyValuePair <string, string>("{{tier}}", "Tier 2"));
                break;

            case TwitchLib.PubSub.Enums.SubscriptionPlan.Tier3:
                tokenReplacements.Add(new KeyValuePair <string, string>("{{tier}}", "Tier 3"));
                break;

            default:
                break;
            }

            foreach (var subEvent in this.events[EventType.Subscription])
            {
                SendEventMessageInChat(subEvent, tokenReplacements);
            }
        }
Exemplo n.º 4
0
 private void PubSub_OnChannelSubscription(object sender, OnChannelSubscriptionArgs e)
 {
     if (e.Subscription.Months > 1)
     {
         chatbot.ManualMessage($"Thanks for {e.Subscription.Months} months of subscription {e.Subscription.Username}!!");
     }
     else
     {
         chatbot.ManualMessage($"Thanks for the subscription {e.Subscription.Username}!");
     }
 }
Exemplo n.º 5
0
        private void OnSub(object sender, OnChannelSubscriptionArgs e)
        {
            try
            {
                if (e.Subscription.Context == "subgift")
                {
                    _logger.LogInformation(
                        $"Gifted Sub! - {e.Subscription.RecipientName} - {e.Subscription.Months ?? 1} months, {e.Subscription.StreakMonths} in a row!");

                    _vipApiClient.GiveSubscriptionVips(new GiveSubscriptionVipsRequest
                    {
                        UserSubDetails = new List <UserSubDetail>
                        {
                            new UserSubDetail
                            {
                                Username         = e.Subscription.RecipientName,
                                SubscriptionTier = VipHelper.GetSubTier(e),
                                TotalSubMonths   = e.Subscription.Months ?? 1
                            }
                        }
                    });

                    // Gifted Sub!
                    OnGiftSub(sender, e);
                }
                else
                {
                    _logger.LogInformation(
                        $"Subscription! - {e.Subscription.Username} - {e.Subscription.CumulativeMonths ?? 1} months, {e.Subscription.StreakMonths} in a row!");

                    _vipApiClient.GiveSubscriptionVips(new GiveSubscriptionVipsRequest
                    {
                        UserSubDetails = new List <UserSubDetail>
                        {
                            new UserSubDetail
                            {
                                Username         = e.Subscription.Username,
                                SubscriptionTier = VipHelper.GetSubTier(e),
                                TotalSubMonths   = e.Subscription.CumulativeMonths ?? 1
                            }
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error on Sub", new { e });
            }
        }
Exemplo n.º 6
0
        private async void OnChannelSubscription(object sender, OnChannelSubscriptionArgs e)
        {
            if (e.Subscription.Context == "resub" &&
                _config.TrackSubPoints &&
                _currentSubs.Any(x => x.UserId == e.Subscription.UserId))
            {
                return;
            }

            var oldScore = _currentPoints;

            switch (e.Subscription.SubscriptionPlan)
            {
            case SubscriptionPlan.Prime:
            case SubscriptionPlan.Tier1:
                _currentPoints++;
                break;

            case SubscriptionPlan.Tier2:
                _currentPoints += 2;
                break;

            case SubscriptionPlan.Tier3:
                _currentPoints += 6;
                break;
            }

            if (_config.VerboseSubPointsLogging)
            {
                Utils.LogToConsole($"New sub from {e.Subscription.Username}, tier: {e.Subscription.SubscriptionPlan} | " +
                                   $"Old count: {oldScore} | New count: {_currentPoints}");
            }

            if (e.Subscription.Context == "sub")
            {
                await NewSubDieRollAsync(e.Subscription.DisplayName, e.Subscription.UserId);
            }

            if (e.Subscription.Context == "subgift")
            {
                await HandleGiftSubAsync(e.Subscription.DisplayName, e.Subscription.UserId);
            }
        }
Exemplo n.º 7
0
        private void OnGiftSub(object sender, OnChannelSubscriptionArgs e)
        {
            try
            {
                _logger.LogInformation($"Gifted Sub! {e.Subscription.RecipientName} has received a sub from {e.Subscription.Username}");

                // Anonymous gift will be blank
                if (!string.IsNullOrWhiteSpace(e.Subscription.Username))
                {
                    // Half as thanks to the gifter
                    _vipApiClient.GiveGiftSubBytes(new GiveGiftSubBytesRequest
                    {
                        Username = e.Subscription.Username
                    });
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error OnGiftSub");
            }
        }
Exemplo n.º 8
0
        public static SubscriptionTier GetSubTier(OnChannelSubscriptionArgs channelSubArgs)
        {
            switch (channelSubArgs.Subscription.SubscriptionPlan)
            {
            case SubscriptionPlan.Prime:
                return(SubscriptionTier.Prime);

            case SubscriptionPlan.Tier1:
                return(SubscriptionTier.Tier1);

            case SubscriptionPlan.Tier2:
                return(SubscriptionTier.Tier2);

            case SubscriptionPlan.Tier3:
                return(SubscriptionTier.Tier3);

            default:
                // assuming prime if no data
                return(SubscriptionTier.Prime);
            }
        }
        private void PubSub_OnChannelSubscription(object sender, OnChannelSubscriptionArgs e)
        {
            var gifted = e.Subscription.IsGift ?? false;

            if (gifted)
            {
                _logger.Information($"{e.Subscription.DisplayName} gifted a subscription to {e.Subscription.RecipientName}");
            }
            else
            {
                var cumulativeMonths = e.Subscription.CumulativeMonths ?? 0;
                if (cumulativeMonths != 0)
                {
                    _logger.Information($"{e.Subscription.DisplayName} just subscribed (total of {cumulativeMonths} months)");
                }
                else
                {
                    _logger.Information($"{e.Subscription.DisplayName} just subscribed");
                }
            }
        }
Exemplo n.º 10
0
 private static void onChannelSubscription(object sender, OnChannelSubscriptionArgs e)
 {
     MessageBox.Show($"Channel: {e.Subscription.ChannelName}\nSubscriber name: {e.Subscription.Username}\nTier: {e.Subscription.SubscriptionPlan}\nTier name: {e.Subscription.SubscriptionPlanName}\nSub message: {e.Subscription.SubMessage.Message}");
 }
Exemplo n.º 11
0
 private void onSubscription(object sender, OnChannelSubscriptionArgs e)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 12
0
 /// <summary>
 /// Passes <see cref="OnChannelSubscription"/> events down to subscribed plugins.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">An <see cref="OnChannelSubscriptionArgs"/> object.</param>
 private void TwitchPubSub_OnChannelSubscription(object sender, OnChannelSubscriptionArgs e) => OnChannelSubscription?.Invoke(this, e);
Exemplo n.º 13
0
 public static void TwitchPubSubOnOnChannelSubscription(object sender, OnChannelSubscriptionArgs e)
 {
     _client.SendMessage("kungraseri", $"{e.Subscription.DisplayName} just subscribed with a {e.Subscription.SubscriptionPlanName} sub!");
 }
Exemplo n.º 14
0
 private async Task OnChannelSubscription(object sender, OnChannelSubscriptionArgs e)
 {
     await BroadcastNewSubscriber(e.Subscription);
 }
Exemplo n.º 15
0
 private static async void OnChannelSubscription(object sender, OnChannelSubscriptionArgs e)
 {
     await _overlayHubContext.Clients.All.SendAsync("ReceiveNewSubscription", e.Subscription);
 }