void RewardForViewing()
 {
     if (((TimeSpan)(DateTime.Now - LastViewerRewardCheck)).TotalSeconds < 60) { return; }
     LastViewerRewardCheck = DateTime.Now;
     if (!Data.APIIntergrations.Twitch.IsLive(BotInstance)) { return; }
     Newtonsoft.Json.Linq.JToken JData = Data.APIIntergrations.Twitch.GetViewers(BotInstance);
     int Reward = int.Parse(BotInstance.CommandConfig["AutoRewards"]["Viewing"]["RewardPerMinute"].ToString());
     IEnumerable<Newtonsoft.Json.Linq.JToken> Merged = JData["chatters"]["vips"].
         Union(JData["chatters"]["moderators"]).
         Union(JData["chatters"]["staff"]).
         Union(JData["chatters"]["admins"]).
         Union(JData["chatters"]["global_mods"]).
         Union(JData["chatters"]["viewers"]);
     List<KeyValuePair<string, string>> Headers;
     Headers = new List<KeyValuePair<string, string>> {
         new KeyValuePair<string, string>("BalanceIncrement",Reward.ToString()),
         new KeyValuePair<string, string>("WatchTimeIncrement","1"),
         new KeyValuePair<string, string>("CurrencyID",this.BotInstance.Currency.ID.ToString())
     };
     JData = Newtonsoft.Json.Linq.JToken.Parse("{'TwitchIDs':[]}");
     List<string> TwitchIDs = new List<string> { };
     foreach (Newtonsoft.Json.Linq.JToken StreamViewer in Merged)
     {
         StandardisedUser U = StandardisedUser.FromTwitchUsername(StreamViewer.ToString(), BotInstance);
         if (U != null) { TwitchIDs.Add(U.ID); }
     }
     JData["TwitchIDs"] = Newtonsoft.Json.Linq.JToken.FromObject(TwitchIDs);
     Data.APIIntergrations.RewardCurrencyAPI.WebRequests.PostRequest("viewer", Headers, true,JData);
 }
 public int GetRemainingCooldown(StandardisedUser U)
 {
     int GlobalAlertTimeout = int.Parse(BotInstance.CommandConfig["CommandSetup"]["Alert"]["CoolDown"]["Global"].ToString()),
         GlobalTimeoutRemaining = GlobalAlertTimeout - (int)((TimeSpan)(DateTime.Now - LastAlert)).TotalSeconds,
         IndividualAlertTimeout = int.Parse(BotInstance.CommandConfig["CommandSetup"]["Alert"]["CoolDown"]["Individual"].ToString()),
         IndividualTimeoutRemaining = 0;
     if (AlertRequests.Where(x => x.User.ID == U.ID).Count() != 0) { IndividualTimeoutRemaining = IndividualAlertTimeout - (int)((TimeSpan)(DateTime.Now - AlertRequests.Where(x => x.User.ID == U.ID).First().LastAlert)).TotalSeconds; }
     if (GlobalTimeoutRemaining > IndividualTimeoutRemaining) { return GlobalTimeoutRemaining; }
     else { return IndividualTimeoutRemaining; }
 }
 async Task RewardDonator(Newtonsoft.Json.Linq.JToken Donation,int DonationReward)
 {
     int DonationAmount = (int)Math.Round(double.Parse(Donation["amount"].ToString()), 2),
         AdjustedReward= (int)Math.Ceiling((double)DonationAmount * DonationReward);
     StandardisedUser S = StandardisedUser.FromTwitchUsername(Donation["name"].ToString(), BotInstance);
     if (S != null)
     {
         Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer B = Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.FromTwitchDiscord(MessageType.Twitch, BotInstance, S.ID);
         Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.AdjustBalance(B, DonationAmount, "+");
         await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["AutoRewards"]["Donating"]["Response"].ToString(),
             BotInstance.CommandConfig["ChannelName"].ToString(), MessageType.Twitch, S, AdjustedReward,-1,
             DonationAmount+" "+Donation["currency"].ToString());
     }
 }
Пример #4
0
        public async void ReSubbed(object sender, OnReSubscriberArgs e)
        {
            StandardisedUser Subber = new StandardisedUser();

            Subber.ID = e.ReSubscriber.UserId; Subber.UserName = e.ReSubscriber.DisplayName;
            int Reward = int.Parse(BotInstance.CommandConfig["AutoRewards"]["ReSub"]["Reward"].ToString());

            Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer V = Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.FromTwitchDiscord(MessageType.Twitch, BotInstance, Subber.ID);
            if (V != null)
            {
                Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.AdjustBalance(V, Reward, "+");
            }
            await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["AutoRewards"]["ReSub"]["Response"].ToString(), e.Channel.ToString(), MessageType.Twitch, Subber, Reward);

            if (BotInstance.CommandConfig["AutoRewards"]["DiscordSubNotifications"].ToString() == "True")
            {
                await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["AutoRewards"]["ReSub"]["Response"].ToString(), BotInstance.CommandConfig["Discord"]["NotificationChannel"].ToString(), MessageType.Discord, Subber, Reward);
            }
        }
Пример #5
0
        public async void SubGifted(object sender, OnGiftedSubscriptionArgs e)
        {
            StandardisedUser Gifter = new StandardisedUser(),
                             Giftee = new StandardisedUser();;

            Gifter.ID = e.GiftedSubscription.Id; Gifter.UserName = e.GiftedSubscription.DisplayName;
            Giftee.ID = e.GiftedSubscription.MsgParamRecipientId; Giftee.UserName = e.GiftedSubscription.MsgParamRecipientDisplayName;
            int Reward = int.Parse(BotInstance.CommandConfig["AutoRewards"]["GiftSub"]["Reward"].ToString());

            Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer V = Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.FromTwitchDiscord(MessageType.Twitch, BotInstance, Gifter.ID);
            if (V != null)
            {
                Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.AdjustBalance(V, Reward, "+");
            }
            await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["AutoRewards"]["GiftSub"]["Response"].ToString(), e.Channel.ToString(), MessageType.Twitch, Gifter, Reward, OtherString : "@" + Giftee.UserName);

            if (BotInstance.CommandConfig["AutoRewards"]["DiscordSubNotifications"].ToString() == "True")
            {
                await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["AutoRewards"]["GiftSub"]["Response"].ToString(), BotInstance.CommandConfig["Discord"]["NotificationChannel"].ToString(), MessageType.Discord, Gifter, Reward, OtherString : "<@" + Giftee.UserName + ">");
            }
        }
 public bool AlertTimeOutExpired(StandardisedUser U)
 {
     int GlobalAlertTimeout= int.Parse(BotInstance.CommandConfig["CommandSetup"]["Alert"]["CoolDown"]["Global"].ToString());
     CullAlerts();
     return (AlertRequests.Where(x => x.User.ID == U.ID).Count() == 0) && (((TimeSpan)(DateTime.Now-LastAlert)).TotalSeconds>=GlobalAlertTimeout);
 }
 public bool UserDueling(StandardisedUser User)
 {
     return Duels.Where(x => x.Value.Creator.ID == User.ID || x.Value.Acceptor.ID == User.ID).Count() != 0;
 }
 public bool UserRaffleing(StandardisedUser User)
 {
     return RaffleParticipants.Where(x=>x.User.ID==User.ID).Count()!=0;
 }
 void RewardUser(int Reward,StandardisedUser U,MessageType MessageType)
 {
     Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer B = Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.FromTwitchDiscord(MessageType, BotInstance, U.ID);
     Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.AdjustBalance(B, Reward, "+");
 }