private void DoWork() { var msgSplit = e.ChatMessage.Message.Split(' ', 2); string msg; if (msgSplit.Length != 2) { msg = "Improper command. !quote <Your quote here>"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } using var db = new TwitchContext(); var quote = db.Quotes .Where(q => q.Quote == msgSplit[1]) .FirstOrDefault(); if (null != quote) { msg = $"Quote already exists #{quote.Id}."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } db.Add(new Quotes { Quote = msgSplit[1] }); db.SaveChanges(); quote = db.Quotes .Where(q => q.Quote == msgSplit[1]) .FirstOrDefault(); msg = $"Added quote #{quote.Id}"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
private void DoWork() { var msgSplit = e.ChatMessage.Message.Split(' '); string msg; if (msgSplit.Length != 2) { msg = "Improper command. !delquote <quote number>"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } if (int.TryParse(msgSplit[1], out int id)) { using var db = new TwitchContext(); var quote = db.Quotes .Where(q => q.Id == id) .FirstOrDefault(); if (null == quote) { msg = $"Quote with id {id} doesn't exist."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } db.Remove(quote); db.SaveChanges(); msg = $"Quote #{id} deleted."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); } }
private void DoWork() { using var db = new TwitchContext(); string[] msgsplit = e.ChatMessage.Message.Split(' '); string msg; if (msgsplit.Length == 1) { string points = db.Scores .Where(u => u.Username == e.ChatMessage.Username) .FirstOrDefault() .Score .ToString(); Log.Debug(points); this.client.SendMessage(e.ChatMessage.Channel, points); } else if (msgsplit.Length == 2) { var points = db.Scores .Where(u => u.Username == msgsplit[1]) .FirstOrDefault(); if (null == points) { msg = $"{msgsplit[1]} doesn't exist."; Log.Debug(msg); this.client.SendMessage(e.ChatMessage.Channel, msg); return; } msg = $"{points.Score}"; Log.Debug(msg); this.client.SendMessage(e.ChatMessage.Channel, msg); } }
private void DoWork() { string currencyName = ConfigurationManager.AppSettings["CurrencyName"]; var msgSplit = e.ChatMessage.Message.Split(' '); string soughtItem = msgSplit[1]; string msg; using var db = new TwitchContext(); var item = db.Shop .Where(i => i.ItemName == soughtItem) .FirstOrDefault(); if (null == item) { msg = $"{soughtItem} doesn't exist."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } if (soughtItem == "songrequest") { if (msgSplit.Length != 3) { msg = "Give a YouTube link."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } string link = msgSplit.ElementAtOrDefault(2); if (!IsValidYoutubeLink(link)) { msg = "Improper YouTube link."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } MusicQueue.musicQueue.Enqueue(new Tuple <string, string>(e.ChatMessage.Username, link)); } var user = db.Scores .Where(u => u.Username == e.ChatMessage.Username) .FirstOrDefault(); if (user.Score < item.Price) { msg = $"You don't have enough {currencyName}. {item.ItemName} costs {item.Price} and you have {user.Score}."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } user.Score -= item.Price; db.SaveChanges(); msg = $"@{e.ChatMessage.Channel}, {e.ChatMessage.Username} purchased {item.ItemName} for {item.Price} {currencyName}! {e.ChatMessage.Username} now has {user.Score} {currencyName}."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
private void DoWork() { var msgSplit = e.ChatMessage.Message.Split(' '); string msg; if (msgSplit.Length != 2) { msg = "Improper command. Use with !deluser <username>."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } using var db = new TwitchContext(); var user = db.Scores .Where(u => u.Username == msgSplit[1]) .FirstOrDefault(); if (null == user) { msg = $"{msgSplit[1]} doesn't exist."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } db.Remove(user); db.SaveChanges(); msg = $"{msgSplit[1]} deleted."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
private void DoWork() { using var db = new TwitchContext(); int total = db.Quotes.Count(); string msg; if (total < 1) { msg = "No quotes to retrieve. Try adding a quote with !addquote <Your quote here> first"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } var msgSplit = e.ChatMessage.Message.Split(' '); // User specified a quote by number. if (msgSplit.Length == 2) { if (int.TryParse(msgSplit[1], out int number)) { var quote = db.Quotes.Where(q => q.Id == number).FirstOrDefault(); if (null == quote) { msg = $"Quote #{number} doesn't exist."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } msg = $"#{number}/{total}: {quote.Quote}"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); } } // Pick a random quote. else if (msgSplit.Length == 1) { Random r = new Random(); int offset = r.Next(1, total); var quote = db.Quotes .Where(q => q.Id == offset) .FirstOrDefault(); if (null == quote) { msg = $"Ow! That wasn't supposed to happen! Couldn't find quote #{offset}"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } msg = $"#{offset}/{total}: {quote.Quote}"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); } else { Log.Debug("No."); client.SendMessage(e.ChatMessage.Channel, "No."); } }
private void DoWork() { string[] msgSplit = e.ChatMessage.Message.Split('!'); using var db = new TwitchContext(); var cmd = db.Commands .Where(c => c.CommandName == msgSplit[1]) .FirstOrDefault(); if (null != cmd) { Log.Debug(cmd.Message); } client.SendMessage(e.ChatMessage.Channel, cmd.Message); }
public bool DoWork() { string[] msgSplit = e.ChatMessage.Message.Split('!'); using var db = new TwitchContext(); var cmd = db.Commands .Where(c => c.CommandName == msgSplit[1]) .FirstOrDefault(); if (null != cmd) { return(true); } return(false); }
private void DoWork() { var msgSplit = e.ChatMessage.Message.Split(' ', 3); string msg; if (msgSplit.Length != 3) { msg = "Command of improper form. !additem <name> <price>"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } bool result = int.TryParse(msgSplit[2], out int price); if (!result) { msg = $"{msgSplit[2]} not a proper value."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } using var db = new TwitchContext(); var newItem = db.Shop .Where(c => c.ItemName == msgSplit[1]) .FirstOrDefault(); if (null != newItem) { msg = $"{msgSplit[1]} already exists."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } db.Add(new Models.Shop { ItemName = msgSplit[1], Price = price }); db.SaveChanges(); msg = $"!{msgSplit[1]} added."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
public void DoWork() { string currencyName = ConfigurationManager.AppSettings["CurrencyName"]; string msg; using var db = new TwitchContext(); var msgSplit = e.ChatMessage.Message.Split(' '); if (msgSplit.Length != 3) { msg = $"Command of the improper structure. It should be !add{currencyName.ToLower()} <string> <int>"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } string targetUser = msgSplit[1]; var user = db.Scores .Where(u => u.Username == targetUser.ToLower()) .FirstOrDefault(); if (null == user) { msg = $"{targetUser} doesn't exist."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } bool result = int.TryParse(msgSplit[2], out int score); if (result) { user.Score += score; msg = $"Added {score} {currencyName} to {user.Username}. {user.Username} now has {user.Score} {currencyName}."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); db.SaveChanges(); } else { msg = "Couldn't parse value."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); } }
private void DoWork() { using var db = new TwitchContext(); var losers = db.Scores .OrderByDescending(s => s.Score) .Take(3); string msg = ""; foreach (var loser in losers) { msg += loser.ToString() + ", "; } msg = msg.TrimEnd(); msg = msg.TrimEnd(','); Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
private void DoWork() { TwitchAPI api = new TwitchAPI(); api.Settings.ClientId = ConfigurationManager.AppSettings["ClientId"]; string channel = ConfigurationManager.AppSettings["Channel"]; string currencyName = ConfigurationManager.AppSettings["CurrencyName"]; var users = api.Undocumented.GetChattersAsync(channelName: channel).Result; string[] msgSplit = e.ChatMessage.Message.Split(' '); string msg; if (msgSplit.Length == 2) { if (int.TryParse(msgSplit[1], out int amount)) { using var db = new TwitchContext(); foreach (var user in users) { string username = user.Username.ToLower(); var dbUser = db.Scores .Where(u => u.Username == username) .FirstOrDefault(); if (null == dbUser) { continue; } dbUser.Score += amount; } db.SaveChanges(); msg = $"Added {amount} {currencyName} to everyone in chat."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } msg = "Invalid amount."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } msg = $"Improper command. !give{currencyName} <amount>"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
public void DoWork() { using var db = new TwitchContext(); var shopItems = db.Shop.ToList(); StringBuilder msgSB = new StringBuilder(); foreach (var item in shopItems) { msgSB.Append(item.ToString()); msgSB.Append(", "); } // Trim the last , and space. string msg = msgSB.ToString(); msg = msg.Trim(); msg = msg.TrimEnd(','); Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
private void DoWork() { string currencyName = ConfigurationManager.AppSettings["CurrencyName"]; var msgSplit = e.ChatMessage.Message.Split(' '); string msg; if (msgSplit.Length != 3) { msg = $"Improper command. Usage is !set{currencyName} <username> <score>"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } bool result = int.TryParse(msgSplit[2], out int score); if (!result) { msg = $"Improper value {msgSplit[2]}."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } using var db = new TwitchContext(); var user = db.Scores .Where(u => u.Username == msgSplit[1].ToLower()) .FirstOrDefault(); if (null == user) { msg = $"{msgSplit[1]} doesn't exist."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } user.Score = score; db.SaveChanges(); msg = $"Set {msgSplit[1]} to {score} {currencyName}."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
private void DoWork() { string cmd = e.ChatMessage.Message.Split(' ')[1]; using var db = new TwitchContext(); var command = db.Commands .Where(c => c.CommandName == cmd) .FirstOrDefault(); string msg; if (null == command) { msg = $"{cmd} doesn't exist."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } db.Remove(command); db.SaveChanges(); msg = $"Deleted {cmd}."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
private void DoWork() { string msgItem = e.ChatMessage.Message.Split(' ')[1]; using var db = new TwitchContext(); var item = db.Shop .Where(s => s.ItemName == msgItem) .FirstOrDefault(); string msg; if (null == item) { msg = $"{msgItem} doesn't exist."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } db.Remove(item); db.SaveChanges(); msg = $"Deleted {msgItem}"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
private void DoWork() { var msgSplit = e.ChatMessage.Message.Split(' ', 3); string msg; if (msgSplit.Length != 3) { msg = "Command of improper form. !addcom <name> <your message here>"; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } using var db = new TwitchContext(); var customCommand = db.Commands .Where(c => c.CommandName == msgSplit[1]) .FirstOrDefault(); if (null != customCommand) { msg = $"{msgSplit[1]} already exists."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); return; } db.Add(new Models.Commands { CommandName = msgSplit[1], Message = msgSplit[2] }); db.SaveChanges(); msg = $"!{msgSplit[1]} added."; Log.Debug(msg); client.SendMessage(e.ChatMessage.Channel, msg); }
private void DoWork() { if (!CheckUserTimeout()) { return; } var msgSplit = e.WhisperMessage.Message.Split(' '); string currencyName = ConfigurationManager.AppSettings["CurrencyName"]; bool result = int.TryParse(msgSplit[1], out int guess); int minGuess = int.Parse(ConfigurationManager.AppSettings["MinimumGuess"]) + 1; int maxGuess = int.Parse(ConfigurationManager.AppSettings["MaximumGuess"]); string msg; if ((result) && (guess >= minGuess) && (guess <= maxGuess)) { int firstRange = int.Parse(ConfigurationManager.AppSettings["FirstConsolationRange"]); int secondRange = int.Parse(ConfigurationManager.AppSettings["SecondConsolationRange"]); using var db = new TwitchContext(); var user = db.Scores .Where(u => u.Username == e.WhisperMessage.Username) .FirstOrDefault(); Random r = new Random(); int botNumber = r.Next(minGuess, maxGuess); if (guess == botNumber) { int payout = int.Parse(ConfigurationManager.AppSettings["Payout"]); user.Score += payout; db.SaveChanges(); msg = $"You guessed correctly! Added {payout} {currencyName}! You have {user.Score} {currencyName}!"; Log.Debug(msg); client.SendWhisper(e.WhisperMessage.Username, msg); } else if ((guess < botNumber + firstRange) && (guess > botNumber - firstRange)) { int firstRangePayout = int.Parse(ConfigurationManager.AppSettings["FirstConsolationRangePayout"]); user.Score += firstRangePayout; db.SaveChanges(); msg = $"You guessed {guess} and the number was {botNumber}. You get a consolation prize! Added {firstRangePayout} {currencyName}! You have {user.Score} {currencyName}!"; Log.Debug(msg); client.SendWhisper(e.WhisperMessage.Username, msg); } else if ((guess < botNumber + secondRange) && (guess > botNumber - secondRange)) { int secondRangePayout = int.Parse(ConfigurationManager.AppSettings["SecondConsolationRangePayout"]); user.Score += secondRangePayout; db.SaveChanges(); msg = $"You guessed {guess} and the number was {botNumber}. You get a consolation prize! Added {secondRangePayout} {currencyName}! You have {user.Score} {currencyName}!"; Log.Debug(msg); client.SendWhisper(e.WhisperMessage.Username, msg); } else { msg = $"You guessed {guess} and the number was {botNumber}. Better luck next time!"; Log.Debug(msg); client.SendWhisper(e.WhisperMessage.Username, msg); } } else { msg = $"Improper value. The guess must be between {minGuess}-{maxGuess}."; Log.Debug(msg); client.SendWhisper(e.WhisperMessage.Username, msg); } }
public HomeController(ILogger <HomeController> logger, TwitchContext context, IRedisCache cache) { _logger = logger; _context = context; _cache = cache.Redis.GetDatabase(); }
public BaseController() { Database = new TwitchContext(); }
private void DoWork() { if (!CheckUserTimeout()) { return; } string currencyName = ConfigurationManager.AppSettings["CurrencyName"]; string channel = ConfigurationManager.AppSettings["Channel"]; using var db = new TwitchContext(); var user = db.Scores .Where(u => u.Username == e.WhisperMessage.Username) .FirstOrDefault(); int slotPrice = int.Parse(ConfigurationManager.AppSettings["SlotPrice"]); string msg; user.Score -= slotPrice; db.SaveChanges(); Random rnd = new Random(); int reels = int.Parse(ConfigurationManager.AppSettings["Reels"]); // This random may need to change. It may not give duplicates when we need duplicates. var emotes = db.Emotes.ToList(); List <Emotes> spinResult = new List <Emotes>(); for (int i = 0; i < reels; i++) { spinResult.Add(emotes[rnd.Next(emotes.Count)]); } List <string> spinResultNames = new List <string>(); foreach (var item in spinResult) { spinResultNames.Add(item.EmoteName); } var duplicates = spinResult.GroupBy(x => x) .Select(g => new { Value = g.Key, Count = g.Count() }) .OrderByDescending(x => x.Count); foreach (var item in duplicates) { // If Jackpot if (item.Count == reels) { int earnings = item.Value.PayoutValue * reels * int.Parse(ConfigurationManager.AppSettings["JackpotMultiplier"]); user.Score += earnings; db.SaveChanges(); msg = $"{item.Value.EmoteName} {item.Value.EmoteName} {item.Value.EmoteName} JACKPOT! Added {earnings} {currencyName}! You now have {user.Score}!"; Log.Debug(msg); client.SendWhisper(e.WhisperMessage.Username, msg); msg = $"{user.Username} just hit the JACKPOT! {item.Value.EmoteName} {item.Value.EmoteName} {item.Value.EmoteName} {user.Username} won {earnings} {currencyName} and now has {user.Score} {currencyName}!"; Log.Debug(msg); client.SendMessage(channel, msg); return; } else if (item.Count > 1) { int earnings = item.Value.PayoutValue * item.Count; user.Score += earnings; msg = $"{String.Join(" ", spinResultNames)} Winner! You won {earnings} {currencyName}! You now have {user.Score} {currencyName}!"; Log.Debug(msg); client.SendWhisper(e.WhisperMessage.Username, msg); db.SaveChanges(); return; } else { msg = $"{String.Join(" ", spinResultNames)} Better luck next time. You have {user.Score} {currencyName}."; Log.Debug(msg); client.SendWhisper(e.WhisperMessage.Username, msg); return; } } }