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()); } }
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); } }
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, "+"); }