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());
     }
 }
Пример #2
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);
            }
        }
Пример #3
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 async Task Fish()
 {
     List<DateTime> FishToRemove=new List<DateTime> { };
     IEnumerable<KeyValuePair<DateTime, Fisherman>> FinishedFishermen = Fishermen.Where(x => ((TimeSpan)(DateTime.Now - x.Key)).TotalSeconds >= x.Value.SecondsToFish);
     foreach (KeyValuePair<DateTime,Fisherman> Fisher in FinishedFishermen)
     {
         Newtonsoft.Json.Linq.JToken Items = Fisher.Value.BotInstance.CommandConfig["CommandSetup"]["Fish"]["Items"], ChosenItem = Items[Init.Rnd.Next(0,Items.Count())];
         int TotalChance = 0,ChosenChance=-1;
         foreach (Newtonsoft.Json.Linq.JToken Item in Items) { TotalChance += int.Parse(Item["Chance"].ToString()); }
         ChosenChance = Init.Rnd.Next(0, TotalChance); TotalChance = 0;
         foreach (Newtonsoft.Json.Linq.JToken Item in Items) { TotalChance += int.Parse(Item["Chance"].ToString()); if (TotalChance >= ChosenChance) { ChosenItem = Item; break; } }
         Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer B = Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.FromTwitchDiscord(Fisher.Value.e, Fisher.Value.BotInstance, Fisher.Value.e.SenderID);
         if (Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.AdjustBalance(B, int.Parse(ChosenItem["Reward"].ToString()), "+"))
         {
             await Fisher.Value.BotInstance.CommandHandler.SendMessage(Fisher.Value.BotInstance.CommandConfig["CommandSetup"]["Fish"]["Responses"]["Finished"].ToString(), Fisher.Value.e,null,int.Parse(ChosenItem["Reward"].ToString()),-1, ChosenItem["Name"].ToString());
             FishToRemove.Add(Fisher.Key);
         }
     }
     foreach (DateTime FishKey in FishToRemove)
     {
         Fishermen.Remove(FishKey);
     }
 }
 async Task RaffleThread()
 {
     RaffleRunning = true;
     int RaffleSize = 0;
     Newtonsoft.Json.Linq.JToken ChosenRaffle = null;
     foreach (Newtonsoft.Json.Linq.JToken RaffleType in BotInstance.CommandConfig["Raffle"]["Sizes"])
     {
         RaffleSize += int.Parse(RaffleType["Frequency"].ToString());
         if (RaffleSize > RaffleNumber && ChosenRaffle==null) { ChosenRaffle = RaffleType; }
     }
     int RaffleReward = int.Parse(ChosenRaffle["Size"].ToString()),
         CountDownMessages = int.Parse(BotInstance.CommandConfig["Raffle"]["CountDownMessages"].ToString()),
         MinuteSegmentSize=(int)Math.Ceiling((decimal)60/CountDownMessages);
     RaffleParticipants = new List<Raffler> { };
     for (int i = 0; i < CountDownMessages; i++)
     {
         String TimeLeft = (CountDownMessages-i)*MinuteSegmentSize+" seconds";
         if (BotInstance.CommandHandler.CommandEnabled(BotInstance.CommandConfig["Raffle"], MessageType.Twitch))
         { await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["Raffle"]["Responses"]["LeadUp"].ToString(), BotInstance.CommandConfig["ChannelName"].ToString(), MessageType.Twitch,null, RaffleReward, -1,TimeLeft); }
         if (BotInstance.CommandHandler.CommandEnabled(BotInstance.CommandConfig["Raffle"], MessageType.Discord))
         { await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["Raffle"]["Responses"]["LeadUp"].ToString(), BotInstance.CommandConfig["Discord"]["NotificationChannel"].ToString(), MessageType.Discord, null, RaffleReward, -1, TimeLeft); }
         Thread.Sleep(MinuteSegmentSize*1000);
     }
     if (RaffleParticipants.Count != 0)
     {
         int WinnerCount = int.Parse(ChosenRaffle["Winners"].ToString());
         if (WinnerCount > RaffleParticipants.Count) { WinnerCount = RaffleParticipants.Count; }
         RaffleReward = (int)Math.Ceiling((decimal)RaffleReward / WinnerCount);
         for (int i=WinnerCount; WinnerCount > 0; WinnerCount--)
         {
             int WinnerN = Init.Rnd.Next(0, RaffleParticipants.Count);
             Raffler Winner = RaffleParticipants[WinnerN];
             RaffleParticipants.RemoveAt(WinnerN);
             if (Winner.RequestedFrom == MessageType.Twitch)
             {
                 if (BotInstance.CommandHandler.CommandEnabled(BotInstance.CommandConfig["Raffle"], MessageType.Discord))
                 {
                     await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["Raffle"]["Responses"]["OtherWinner"].ToString(), BotInstance.CommandConfig["Discord"]["NotificationChannel"].ToString(), MessageType.Discord, null, RaffleReward, -1, Winner.User.UserName);
                 }
                 await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["Raffle"]["Responses"]["Winner"].ToString(), BotInstance.CommandConfig["ChannelName"].ToString(), MessageType.Twitch, Winner.User, RaffleReward);
             }
             else if (Winner.RequestedFrom == MessageType.Discord)
             {
                 if (BotInstance.CommandHandler.CommandEnabled(BotInstance.CommandConfig["Raffle"], MessageType.Twitch))
                 {
                     await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["Raffle"]["Responses"]["OtherWinner"].ToString(), BotInstance.CommandConfig["ChannelName"].ToString(), MessageType.Twitch, null, RaffleReward, -1, Winner.User.UserName);
                 }
                 await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["Raffle"]["Responses"]["Winner"].ToString(), BotInstance.CommandConfig["Discord"]["NotificationChannel"].ToString(), MessageType.Discord, Winner.User, RaffleReward);
                 
             }
             Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer B = Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.FromTwitchDiscord(Winner.RequestedFrom, BotInstance, Winner.User.ID);
             Data.APIIntergrations.RewardCurrencyAPI.Objects.Viewer.AdjustBalance(B, RaffleReward, "+");
         }
     }
     else
     {
         if (BotInstance.CommandHandler.CommandEnabled(BotInstance.CommandConfig["Raffle"], MessageType.Twitch))
         { await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["Raffle"]["Responses"]["NoOne"].ToString(), BotInstance.CommandConfig["ChannelName"].ToString(), MessageType.Twitch,null, RaffleReward); }
         if (BotInstance.CommandHandler.CommandEnabled(BotInstance.CommandConfig["Raffle"], MessageType.Discord))
         { await BotInstance.CommandHandler.SendMessage(BotInstance.CommandConfig["Raffle"]["Responses"]["NoOne"].ToString(), BotInstance.CommandConfig["Discord"]["NotificationChannel"].ToString(), MessageType.Discord, null, RaffleReward); }
     }
     RaffleNumber = (RaffleNumber + 1) % RaffleSize;
     RaffleRunning = false;
     LastRaffle = DateTime.Now;
 }
 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, "+");
 }