public async Task TransferMinuies(IGuildUser target, ulong amount) { if (Context.User.Id == target.Id) { await ReplyAsync($":negative_squared_cross_mark: You can\'t gift yourself...\n**And you KNOW it!**"); return; } var transferSource = GlobalUserAccounts.GetUserAccount(Context.User.Id); if (transferSource.Miunies < amount) { await ReplyAsync($":negative_squared_cross_mark: You don\'t have that much Minuies! You only have {transferSource.Miunies}."); return; } var transferTarget = GlobalUserAccounts.GetUserAccount(target.Id); transferSource.Miunies -= amount; transferTarget.Miunies += amount; GlobalUserAccounts.SaveAccounts(transferSource.Id, transferTarget.Id); await ReplyAsync($" :white_check_mark: {Context.User.Username} has given {target.Username} {amount} Minuies!"); }
internal static TransferResult UserToUser(IUser from, IUser to, ulong amount) { if (from.Id == to.Id) { return(TransferResult.SelfTransfer); } var transferSource = GlobalUserAccounts.GetUserAccount(from.Id); if (transferSource.Miunies < amount) { return(TransferResult.NotEnoughMiunies); } var transferTarget = GlobalUserAccounts.GetUserAccount(to.Id); transferSource.Miunies -= amount; transferTarget.Miunies += amount; GlobalUserAccounts.SaveAccounts(transferSource.Id, transferTarget.Id); return(TransferResult.Success); }
public async Task SpinSlot(uint amount) { if (amount < 1) { await ReplyAsync($"{Global.ENo} **|** You can't spin for that amount of Taiyakis."); return; } var account = GlobalUserAccounts.GetUserAccount(Context.User.Id); if (account.Taiyaki < amount) { await ReplyAsync( $"🖐️ **|** Sorry but it seems like you don't have enough Taiyakis... You only have {account.Taiyaki}."); return; } account.Taiyaki -= amount; GlobalUserAccounts.SaveAccounts(account.Id); string slotEmojis = Global.slot.Spin(); var payoutAndFlavour = Global.slot.GetPayoutAndFlavourText(amount); if (payoutAndFlavour.Item1 > 0) { account.Taiyaki += payoutAndFlavour.Item1; GlobalUserAccounts.SaveAccounts(account.Id); } IUserMessage msg = await ReplyAsync(slotEmojis); await Task.Delay(1000); await ReplyAsync(payoutAndFlavour.Item2); }
public static Task CheckDuelRewards(SocketGuildUser user) { var userAccount = GlobalGuildUserAccounts.GetUserID(user); var config = GlobalUserAccounts.GetUserAccount(user); int wins = config.Wins; if (wins == 10) { if (config.Attacks.Contains("Bash")) { config.Attacks.Add("Bash"); } } if (wins == 30) { if (config.Attacks.Contains("Fireball")) { config.Attacks.Add("Fireball"); } } if (wins == 50) { if (config.Attacks.Contains("Meditate")) { config.Attacks.Add("Meditate"); } } if (wins == 70) { if (config.Attacks.Contains("Earth Shatter")) { config.Attacks.Add("Earth Shatter"); } } GlobalUserAccounts.SaveAccounts(); return(Task.CompletedTask); }
public async Task TransferMinuies(IGuildUser Użytkownik, ulong Ilość) { // Class name left for readability // UserToUser alone doesn't mean much. var result = Transfer.UserToUser(Context.User, Użytkownik, Ilość); if (result == TransferResult.SelfTransfer) { await ReplyAsync(":negative_squared_cross_mark: Nie możesz dać samemu sobie:bangbang:\n**i Ty o tym WIESZ**:exclamation:"); } else if (result == TransferResult.TransferToBot) { await ReplyAsync(":negative_squared_cross_mark: To miłe, ale to **Ja** Ci je dałem... xD"); } else if (result == TransferResult.NotEnoughMiunies) { var userAccount = GlobalUserAccounts.GetUserAccount(Context.User.Id); await ReplyAsync($":negative_squared_cross_mark: Jesteś za mało szczęśliwy, aby zadowolić {Użytkownik.Username}... Masz tylko {userAccount.Miunies} PSZ."); } else if (result == TransferResult.Success) { await ReplyAsync($":white_check_mark: {Context.User.Username} poświęcił swoje szczęście dla {Użytkownik.Username} :astonished: Całe {Ilość} punktów szczęścia!"); } }
internal static async Task WsashiLevel(SocketGuildUser user, SocketTextChannel channel) { var userAccount = GlobalUserAccounts.GetUserAccount(user); DateTime now = DateTime.UtcNow; if (now < userAccount.LastXPMessage.AddSeconds(Constants.MessageXPCooldown)) { return; } userAccount.LastXPMessage = now; uint oldLevel = userAccount.LevelNumber; userAccount.XP += 7; GlobalUserAccounts.SaveAccounts(); uint newLevel = userAccount.LevelNumber; if (oldLevel != newLevel) { await LevelingRewards.CheckLootBoxRewards(user); } return; }
public async Task TransferMinuies(IGuildUser target, ulong amount) { // Class name left for readability // UserToUser alone doesn't mean much. var result = Transfer.UserToUser(Context.User, target, amount); if (result == TransferResult.SelfTransfer) { await ReplyAsync(":negative_squared_cross_mark: You can't gift yourself...\n**And you KNOW it!**"); } else if (result == TransferResult.TransferToBot) { await ReplyAsync(":negative_squared_cross_mark: Come on! Did you forget who had given it to you?"); } else if (result == TransferResult.NotEnoughMiunies) { var userAccount = GlobalUserAccounts.GetUserAccount(Context.User.Id); await ReplyAsync($":negative_squared_cross_mark: You don't have that much Minuies! You only have {userAccount.Miunies}."); } else if (result == TransferResult.Success) { await ReplyAsync($":white_check_mark: {Context.User.Username} has given {target.Username} {amount} Minuies!"); } }
public async Task GetOwCompStats(string username, string platform, string region) { try { var config = GlobalUserAccounts.GetUserAccount(Context.User); var json = await Global.SendWebRequest($"https://ow-api.com/v1/stats/{platform}/{region}/{username}/complete"); var dataObject = JsonConvert.DeserializeObject <dynamic>(json); string CompdefensiveAssists = dataObject.competitiveStats.careerStats.allHeroes.assists.defensiveAssists.ToString(); string ComphealingDone = dataObject.competitiveStats.careerStats.allHeroes.assists.defensiveAssists.ToString(); string CompoffensiveAssists = dataObject.competitiveStats.careerStats.allHeroes.assists.defensiveAssists.ToString(); string CompbarrierDamageDone = dataObject.competitiveStats.careerStats.allHeroes.combat.barrierDamageDone.ToString(); string CompdamageDone = dataObject.competitiveStats.careerStats.allHeroes.combat.damageDone.ToString(); string Compdeaths = dataObject.competitiveStats.careerStats.allHeroes.combat.deaths.ToString(); string Compeliminations = dataObject.competitiveStats.careerStats.allHeroes.combat.eliminations.ToString(); string CompenvironmentalKills = dataObject.competitiveStats.careerStats.allHeroes.combat.environmentalKills.ToString(); string CompfinalBlows = dataObject.competitiveStats.careerStats.allHeroes.combat.finalBlows.ToString(); string CompheroDamageDone = dataObject.competitiveStats.careerStats.allHeroes.combat.heroDamageDone.ToString(); string CompmeleeFinalBlows = dataObject.competitiveStats.careerStats.allHeroes.combat.meleeFinalBlows.ToString(); string Compmultikills = dataObject.competitiveStats.careerStats.allHeroes.combat.multikills.ToString(); string CompobjectiveKills = dataObject.competitiveStats.careerStats.allHeroes.combat.objectiveKills.ToString(); string CompobjectiveTime = dataObject.competitiveStats.careerStats.allHeroes.combat.objectiveTime.ToString(); string CompsoloKills = dataObject.competitiveStats.careerStats.allHeroes.combat.soloKills.ToString(); string ComptimeSpentOnFire = dataObject.competitiveStats.careerStats.allHeroes.combat.timeSpentOnFire.ToString(); string CompallDamageDoneAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.allDamageDoneAvgPer10Min.ToString(); string CompbarrierDamageDoneAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.barrierDamageDoneAvgPer10Min.ToString(); string CompdeathsAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.deathsAvgPer10Min.ToString(); string CompeliminationsAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.eliminationsAvgPer10Min.ToString(); string CompfinalBlowsAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.finalBlowsAvgPer10Min.ToString(); string ComphealingDoneAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.healingDoneAvgPer10Min.ToString(); string CompheroDamageDoneAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.heroDamageDoneAvgPer10Min.ToString(); string CompobjectiveKillsAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.objectiveKillsAvgPer10Min.ToString(); string CompobjectiveTimeAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.objectiveTimeAvgPer10Min.ToString(); string CompsoloKillsAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.soloKillsAvgPer10Min.ToString(); string ComptimeSpentOnFireAvgPer10Min = dataObject.competitiveStats.careerStats.allHeroes.average.timeSpentOnFireAvgPer10Min.ToString(); string CompallDamageDoneMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.allDamageDoneMostInGame.ToString(); string CompbarrierDamageDoneMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.barrierDamageDoneMostInGame.ToString(); string CompdefensiveAssistsMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.defensiveAssistsMostInGame.ToString(); string CompeliminationsMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.eliminationsMostInGame.ToString(); string CompenvironmentalKillsMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.environmentalKillsMostInGame.ToString(); string CompfinalBlowsMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.finalBlowsMostInGame.ToString(); string ComphealingDoneMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.healingDoneMostInGame.ToString(); string CompheroDamageDoneMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.heroDamageDoneMostInGame.ToString(); string CompkillsStreakBest = dataObject.competitiveStats.careerStats.allHeroes.best.killsStreakBest.ToString(); string CompmeleeFinalBlowsMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.meleeFinalBlowsMostInGame.ToString(); string CompmultikillsBest = dataObject.competitiveStats.careerStats.allHeroes.best.multikillsBest.ToString(); string CompobjectiveKillsMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.objectiveKillsMostInGame.ToString(); string CompobjectiveTimeMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.objectiveTimeMostInGame.ToString(); string CompoffensiveAssistsMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.offensiveAssistsMostInGame.ToString(); string CompsoloKillsMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.soloKillsMostInGame.ToString(); string ComptimeSpentOnFireMostInGame = dataObject.competitiveStats.careerStats.allHeroes.best.timeSpentOnFireMostInGame.ToString(); string CompgamesLost = dataObject.competitiveStats.careerStats.allHeroes.game.gamesLost.ToString(); string CompgamesPlayed = dataObject.competitiveStats.careerStats.allHeroes.game.gamesPlayed.ToString(); string CompgamesTied = dataObject.competitiveStats.careerStats.allHeroes.game.gamesTied.ToString(); string CompgamesWon = dataObject.competitiveStats.careerStats.allHeroes.game.gamesWon.ToString(); string ComptimePlayed = dataObject.competitiveStats.careerStats.allHeroes.game.timePlayed.ToString(); string compcards = dataObject.competitiveStats.awards.cards.ToString(); string compmedal = dataObject.competitiveStats.awards.medals.ToString(); string compmedalGold = dataObject.competitiveStats.awards.medalsGold.ToString(); string compmedalSilver = dataObject.competitiveStats.awards.medalsSilver.ToString(); string compmedalBronze = dataObject.competitiveStats.awards.medalsBronze.ToString(); string compgames = dataObject.competitiveStats.games.played.ToString(); string compwon = dataObject.competitiveStats.games.won.ToString(); string endorsement = dataObject.endorsement.ToString(); string endorsementIcon = dataObject.endorsementIcon.ToString(); string playerIcon = dataObject.icon.ToString(); string gamesWon = dataObject.gamesWon.ToString(); string level = dataObject.level.ToString(); string prestige = dataObject.prestige.ToString(); string sr = dataObject.rating.ToString(); string srIcon = dataObject.ratingIcon.ToString(); var bottom = new EmbedFooterBuilder() { Text = "Powered by the OW-API", IconUrl = srIcon }; var top = new EmbedAuthorBuilder() { Name = $"{username}'s Competitive Overwatch Profile", IconUrl = endorsementIcon }; var embed = new EmbedBuilder() { Author = top, Footer = bottom }; embed.WithThumbnailUrl(playerIcon); embed.WithColor(37, 152, 255); embed.AddField("Competitive All Hero Stats Total", $"Defensive Assists: **{CompdefensiveAssists}**\nOffensive Assists: **{CompoffensiveAssists}**\nDamage Done: **{CompdamageDone}**\nBarrier Damage Done: **{CompbarrierDamageDone}**\nHero Damage Done: **{CompheroDamageDone}**\nHealing Done: **{ComphealingDone}**\nEliminations: **{Compeliminations}**\nDeaths: **{Compdeaths}**\nEnvironmental Kills: **{CompenvironmentalKills}**\nFinal Blows: **{CompfinalBlows}**\nMelee Final Blows: **{CompmeleeFinalBlows}**\nMulti Kills: **{Compmultikills}**\nObjective Kills: **{CompobjectiveKills}**\nObjective Time: **{CompobjectiveTime}**\nSolo Kills: **{CompsoloKills}**\nTime Spent On Fire: **{ComptimeSpentOnFire}**", true); embed.AddField("Competitive All Hero Stats Averages Per 10 Minutes", $"Barrier Damage Done: **{CompbarrierDamageDoneAvgPer10Min}**\nHero Damage Done: **{CompheroDamageDoneAvgPer10Min}**\nHealing Done: **{ComphealingDoneAvgPer10Min}**\nEliminations: **{CompeliminationsAvgPer10Min}**\nDeaths: **{CompdeathsAvgPer10Min}**\nFinal Blows: **{CompfinalBlowsAvgPer10Min}**\nObjective Kills: **{CompobjectiveKillsAvgPer10Min}**\nObjective Time: **{CompobjectiveTimeAvgPer10Min}**\nSolo Kills: **{CompsoloKillsAvgPer10Min}**\nTime Spent On Fire: **{ComptimeSpentOnFireAvgPer10Min}**", true); embed.AddField("Competitive All Hero Stats Best In Game", $"Defensive Assists: **{CompdefensiveAssistsMostInGame}**\nOffensive Assists: **{CompoffensiveAssistsMostInGame}**\nDamage Done: **{CompallDamageDoneMostInGame}**\nBarrier Damage Done: **{CompbarrierDamageDoneMostInGame}**\nHero Damage Done: **{CompheroDamageDoneMostInGame}**\nHealing Done: **{ComphealingDoneMostInGame}**\nEliminations: **{CompeliminationsMostInGame}**\nEnvironmental Kills: **{CompenvironmentalKillsMostInGame}**\nFinal Blows: **{CompfinalBlowsMostInGame}**\nMelee Final Blows: **{CompmeleeFinalBlowsMostInGame}**\nObjective Kills: **{CompobjectiveKillsMostInGame}**\nObjective Time: **{CompobjectiveTimeMostInGame}**\nSolo Kills: **{CompsoloKillsMostInGame}**\nTime Spent On Fire: **{ComptimeSpentOnFireMostInGame}**", true); embed.AddField("Competitive Game Stats", $"Games Played: **{CompgamesPlayed}**\nGames Won: **{CompgamesWon}**\nGames Tied: **{CompgamesTied}**\nGames Lost: **{CompgamesLost}**\nTime Played: **{ComptimePlayed}**", true); embed.AddField("Competitive Awards", $"Total Medals: **{compmedal}**\n:first_place: Gold Medals: **{compmedalGold}**\n:second_place: Silver Medals: **{compmedalSilver}**\n:third_place: Bronze Medals: **{compmedalBronze}**\nCards: **{compcards}**", true); embed.AddField("Overall", $"Level: **{level}**\nPrestige: **{prestige}**\nSR: **{sr}**\nEndorsement Level: **{endorsement}**", true); await Context.Channel.SendMessageAsync("", embed : embed.Build()); } catch { await Context.Channel.SendMessageAsync("Oops! Are you sure that your Overwatch career profile is set to public and you typed in your username correctly?\n**w!owsc <Your Battle.net username and id> <platform (pc/xbl/psn)> <region> Ex: w!owstatscomp Phytal-1427 pc us**"); } }
public async Task ChomusukePlay() { var config = GlobalUserAccounts.GetUserAccount(Context.User); if (config.ActiveChomusuke == 0) //if they set an active chomusuke { await SendMessage(Context, null, $"{Global.ENo} **|** **{Context.User.Username}**, you don't have an active {Global.EChomusuke} Chomusuke set!\n\nSet an active Chomusuke with `n!active`!"); } else { var chom = ActiveChomusuke.GetOneActiveChomusuke(config.Id); if (chom.Trust == 20) { var thumbnailurl = Context.User.GetAvatarUrl(); var auth = new EmbedAuthorBuilder() { Name = "Chiiiii..", IconUrl = thumbnailurl, }; var embed = new EmbedBuilder() { Author = auth }; embed.WithColor(255, 128, 0); embed.WithThumbnailUrl(NoPlayLinks[Global.Rng.Next(NoPlayLinks.Length)]); embed.WithDescription( $":soccer: **|** **{Context.User.Username}, your {Global.EChomusuke} Chomusuke is bored of playing right now!**"); await SendMessage(Context, embed.Build()); return; } { int randomIndex = Global.Rng.Next(playTexts.Length); string text = playTexts[randomIndex]; int trustGain = Global.Rng.Next(4, 9); chom.Trust += (byte)trustGain; if (chom.Trust > 20) { chom.Trust = 20; } await ActiveChomusuke.ConvertOneActiveVariable(config.Id, chom); GlobalUserAccounts.SaveAccounts(Context.User.Id); var thumbnailurl = Context.User.GetAvatarUrl(); var auth = new EmbedAuthorBuilder() { Name = "Success!", IconUrl = thumbnailurl, }; var embed = new EmbedBuilder() { Author = auth }; embed.WithColor(0, 255, 0); embed.WithThumbnailUrl(YesPlayLinks[Global.Rng.Next(YesPlayLinks.Length)]); embed.WithDescription( $":soccer: **|** **{Context.User.Username}**, {text} **(+{trustGain} trust)**"); await SendMessage(Context, embed.Build()); } } }
public async Task GetOwQpStats() { try { var config = GlobalUserAccounts.GetUserAccount(Context.User); var username = config.OverwatchID; var platform = config.OverwatchPlatform; var region = config.OverwatchRegion; var json = await Global.SendWebRequest($"https://ow-api.com/v1/stats/{platform}/{region}/{username}/complete"); var dataObject = JsonConvert.DeserializeObject <dynamic>(json); string qpcards = dataObject.quickPlayStats.awards.cards.ToString(); string qpmedal = dataObject.quickPlayStats.awards.medals.ToString(); string qpmedalGold = dataObject.quickPlayStats.awards.medalsGold.ToString(); string qpmedalSilver = dataObject.quickPlayStats.awards.medalsSilver.ToString(); string qpmedalBronze = dataObject.quickPlayStats.awards.medalsBronze.ToString(); string qpgames = dataObject.quickPlayStats.games.played.ToString(); string qpwon = dataObject.quickPlayStats.games.won.ToString(); string endorsement = dataObject.endorsement.ToString(); string endorsementIcon = dataObject.endorsementIcon.ToString(); string playerIcon = dataObject.icon.ToString(); string levelIcon = dataObject.levelIcon.ToString(); string gamesWon = dataObject.gamesWon.ToString(); string level = dataObject.level.ToString(); string prestige = dataObject.prestige.ToString(); string QpdefensiveAssists = dataObject.quickPlayStats.careerStats.allHeroes.assists.defensiveAssists.ToString(); string QphealingDone = dataObject.quickPlayStats.careerStats.allHeroes.assists.defensiveAssists.ToString(); string QpoffensiveAssists = dataObject.quickPlayStats.careerStats.allHeroes.assists.defensiveAssists.ToString(); string QpbarrierDamageDone = dataObject.quickPlayStats.careerStats.allHeroes.combat.barrierDamageDone.ToString(); string QpdamageDone = dataObject.quickPlayStats.careerStats.allHeroes.combat.damageDone.ToString(); string Qpdeaths = dataObject.quickPlayStats.careerStats.allHeroes.combat.deaths.ToString(); string Qpeliminations = dataObject.quickPlayStats.careerStats.allHeroes.combat.eliminations.ToString(); string QpenvironmentalKills = dataObject.quickPlayStats.careerStats.allHeroes.combat.environmentalKills.ToString(); string QpfinalBlows = dataObject.quickPlayStats.careerStats.allHeroes.combat.finalBlows.ToString(); string QpheroDamageDone = dataObject.quickPlayStats.careerStats.allHeroes.combat.heroDamageDone.ToString(); string QpmeleeFinalBlows = dataObject.quickPlayStats.careerStats.allHeroes.combat.meleeFinalBlows.ToString(); string Qpmultikills = dataObject.quickPlayStats.careerStats.allHeroes.combat.multikills.ToString(); string QpobjectiveKills = dataObject.quickPlayStats.careerStats.allHeroes.combat.objectiveKills.ToString(); string QpobjectiveTime = dataObject.quickPlayStats.careerStats.allHeroes.combat.objectiveTime.ToString(); string QpsoloKills = dataObject.quickPlayStats.careerStats.allHeroes.combat.soloKills.ToString(); string QptimeSpentOnFire = dataObject.quickPlayStats.careerStats.allHeroes.combat.timeSpentOnFire.ToString(); string QpallDamageDoneAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.allDamageDoneAvgPer10Min.ToString(); string QpbarrierDamageDoneAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.barrierDamageDoneAvgPer10Min.ToString(); string QpdeathsAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.deathsAvgPer10Min.ToString(); string QpeliminationsAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.eliminationsAvgPer10Min.ToString(); string QpfinalBlowsAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.finalBlowsAvgPer10Min.ToString(); string QphealingDoneAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.healingDoneAvgPer10Min.ToString(); string QpheroDamageDoneAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.heroDamageDoneAvgPer10Min.ToString(); string QpobjectiveKillsAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.objectiveKillsAvgPer10Min.ToString(); string QpobjectiveTimeAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.objectiveTimeAvgPer10Min.ToString(); string QpsoloKillsAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.soloKillsAvgPer10Min.ToString(); string QptimeSpentOnFireAvgPer10Min = dataObject.quickPlayStats.careerStats.allHeroes.average.timeSpentOnFireAvgPer10Min.ToString(); string QpallDamageDoneMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.allDamageDoneMostInGame.ToString(); string QpbarrierDamageDoneMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.barrierDamageDoneMostInGame.ToString(); string QpdefensiveAssistsMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.defensiveAssistsMostInGame.ToString(); string QpeliminationsMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.eliminationsMostInGame.ToString(); string QpenvironmentalKillsMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.environmentalKillsMostInGame.ToString(); string QpfinalBlowsMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.finalBlowsMostInGame.ToString(); string QphealingDoneMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.healingDoneMostInGame.ToString(); string QpheroDamageDoneMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.heroDamageDoneMostInGame.ToString(); string QpkillsStreakBest = dataObject.quickPlayStats.careerStats.allHeroes.best.killsStreakBest.ToString(); string QpmeleeFinalBlowsMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.meleeFinalBlowsMostInGame.ToString(); string QpmultikillsBest = dataObject.quickPlayStats.careerStats.allHeroes.best.multikillsBest.ToString(); string QpobjectiveKillsMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.objectiveKillsMostInGame.ToString(); string QpobjectiveTimeMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.objectiveTimeMostInGame.ToString(); string QpoffensiveAssistsMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.offensiveAssistsMostInGame.ToString(); string QpsoloKillsMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.soloKillsMostInGame.ToString(); string QptimeSpentOnFireMostInGame = dataObject.quickPlayStats.careerStats.allHeroes.best.timeSpentOnFireMostInGame.ToString(); string QpgamesWon = dataObject.quickPlayStats.careerStats.allHeroes.game.gamesWon.ToString(); string QptimePlayed = dataObject.quickPlayStats.careerStats.allHeroes.game.timePlayed.ToString(); string Qpcards = dataObject.quickPlayStats.careerStats.allHeroes.matchAwards.cards.ToString(); string Qpmedals = dataObject.quickPlayStats.careerStats.allHeroes.matchAwards.medals.ToString(); string QpmedalsBronze = dataObject.quickPlayStats.careerStats.allHeroes.matchAwards.medalsBronze.ToString(); string QpmedalsGold = dataObject.quickPlayStats.careerStats.allHeroes.matchAwards.medalsGold.ToString(); string QpmedalsSilver = dataObject.quickPlayStats.careerStats.allHeroes.matchAwards.medalsSilver.ToString(); var bottom = new EmbedFooterBuilder() { Text = "Powered by the OW-API", IconUrl = levelIcon }; var top = new EmbedAuthorBuilder() { Name = $"{username}'s Quickplay Overwatch Profile", IconUrl = endorsementIcon }; var embed = new EmbedBuilder() { Author = top, Footer = bottom }; embed.WithThumbnailUrl(playerIcon); embed.WithColor(37, 152, 255); embed.AddField("Quickplay All Hero Stats Total", $"Defensive Assists: **{QpdefensiveAssists}**\nOffensive Assists: **{QpoffensiveAssists}**\nDamage Done: **{QpdamageDone}**\nBarrier Damage Done: **{QpbarrierDamageDone}**\nHero Damage Done: **{QpheroDamageDone}**\nHealing Done: **{QphealingDone}**\nEliminations: **{Qpeliminations}**\nDeaths: **{Qpdeaths}**\nEnvironmental Kills: **{QpenvironmentalKills}**\nFinal Blows: **{QpfinalBlows}**\nMelee Final Blows: **{QpmeleeFinalBlows}**\nMulti Kills: **{Qpmultikills}**\nObjective Kills: **{QpobjectiveKills}**\nObjective Time: **{QpobjectiveTime}**\nSolo Kills: **{QpsoloKills}**\nTime Spent On Fire: **{QptimeSpentOnFire}**", true); embed.AddField("Quickplay All Hero Stats Averages Per 10 Minutes", $"Barrier Damage Done: **{QpbarrierDamageDoneAvgPer10Min}**\nHero Damage Done: **{QpheroDamageDoneAvgPer10Min}**\nHealing Done: **{QphealingDoneAvgPer10Min}**\nEliminations: **{QpeliminationsAvgPer10Min}**\nDeaths: **{QpdeathsAvgPer10Min}**\nFinal Blows: **{QpfinalBlowsAvgPer10Min}**\nObjective Kills: **{QpobjectiveKillsAvgPer10Min}**\nObjective Time: **{QpobjectiveTimeAvgPer10Min}**\nSolo Kills: **{QpsoloKillsAvgPer10Min}**\nTime Spent On Fire: **{QptimeSpentOnFireAvgPer10Min}**", true); embed.AddField("Quickplay All Hero Stats Best In Game", $"Defensive Assists: **{QpdefensiveAssistsMostInGame}**\nOffensive Assists: **{QpoffensiveAssistsMostInGame}**\nDamage Done: **{QpallDamageDoneMostInGame}**\nBarrier Damage Done: **{QpbarrierDamageDoneMostInGame}**\nHero Damage Done: **{QpheroDamageDoneMostInGame}**\nHealing Done: **{QphealingDoneMostInGame}**\nEliminations: **{QpeliminationsMostInGame}**\nEnvironmental Kills: **{QpenvironmentalKillsMostInGame}**\nFinal Blows: **{QpfinalBlowsMostInGame}**\nMelee Final Blows: **{QpmeleeFinalBlowsMostInGame}**\nObjective Kills: **{QpobjectiveKillsMostInGame}**\nObjective Time: **{QpobjectiveTimeMostInGame}**\nSolo Kills: **{QpsoloKillsMostInGame}**\nTime Spent On Fire: **{QptimeSpentOnFireMostInGame}**", true); embed.AddField("Quickplay Game Stats", $"Games Played: **{qpgames}**\nGames Won: **{QpgamesWon}**\nTime Played: **{QptimePlayed}**", true); embed.AddField("Quickplay Awards", $"Total Medals: **{qpmedal}**\n:first_place: Gold Medals: **{qpmedalGold}**\n:second_place: Silver Medals: **{qpmedalSilver}**\n:third_place: Bronze Medals: **{qpmedalBronze}**\nCards: **{Qpcards}**", true); embed.AddField("Overall", $"Level: **{level}**\nPrestige: **{prestige}**\nEndorsement Level: **{endorsement}**", true); await Context.Channel.SendMessageAsync("", embed : embed.Build()); } catch { await Context.Channel.SendMessageAsync("Oops! Are you sure that your Overwatch career profile is set to public and you already set your account information?\n**w!myowsqp**"); } }
public async Task CheckMiuniesOther(IGuildUser target) { var account = GlobalUserAccounts.GetUserAccount(target.Id); await ReplyAsync(GetMiuniesReport(account.Miunies, target.Mention)); }
public MiunieCommandContext(DiscordSocketClient client, SocketUserMessage msg, GlobalUserAccounts globalUserAccounts) : base(client, msg) { this._globalUserAccounts = globalUserAccounts; if (User is null) { return; } UserAccount = globalUserAccounts.GetFromDiscordUser(User); }
public async Task AddReminderOn(string timeOn, [Remainder] string args) { string[] splittedArgs = { }; if (args.ToLower().Contains(" at ")) { splittedArgs = args.ToLower().Split(new[] { " at " }, StringSplitOptions.None); } else if (args.ToLower().Contains(" at ")) { splittedArgs = args.ToLower().Split(new[] { " at " }, StringSplitOptions.None); } else if (args.ToLower().Contains(" at ")) { splittedArgs = args.ToLower().Split(new[] { " at " }, StringSplitOptions.None); } else if (args.ToLower().Contains(" at ")) { splittedArgs = args.ToLower().Split(new[] { " at " }, StringSplitOptions.None); } if (!DateTime.TryParse(timeOn, out var myDate)) //|| myDate < DateTime.Now { await ReplyAsync("Date input is not correct, you can try this `yyyy-mm-dd`"); return; } if (splittedArgs == null) { await ReplyAsync("I think you are confused about how to use this command... aren't you?\n" + "Let me REMIND you it is: `remindOn 2018-08-22 ANY_TEXT at 14:22`\n" + "And the ` in ` before the timeparameters is very important you little dumbo you..."); return; } var account = GlobalUserAccounts.GetUserAccount(Context.User.Id); var timezone = account.TimeZone ?? "UTC"; var tz = TimeZoneInfo.FindSystemTimeZoneById($"{timezone}"); var timeString = splittedArgs[splittedArgs.Length - 1]; splittedArgs[splittedArgs.Length - 1] = ""; var reminderString = string.Join(" at ", splittedArgs, 0, splittedArgs.Length - 1); var hourTime = TimeSpan.ParseExact(timeString, "h\\:mm", CultureInfo.CurrentCulture); var timeDateTime = TimeZoneInfo.ConvertTimeToUtc(myDate + hourTime, tz); var newReminder = new ReminderEntry(timeDateTime, reminderString); account.Reminders.Add(newReminder); GlobalUserAccounts.SaveAccounts(Context.User.Id); var bigmess2 = $"{reminderString}\n\n" + $"We will send you a DM in __**{myDate + hourTime}**__ `by {timezone}`\n"; var embed = new EmbedBuilder(); embed.WithAuthor(Context.User); embed.WithCurrentTimestamp(); embed.WithColor(Color.Blue); embed.WithTitle("I will remind you through DM:"); embed.AddField($"**____**", $"{bigmess2}"); ReplyAsync("", false, embed.Build()); }
public async Task OpenLootBoxCommand([Remainder] string arg) { var config = GlobalUserAccounts.GetUserAccount(Context.User); switch (arg) { case "common": if (config.LootBoxCommon > 0) { config.LootBoxCommon -= 1; await OpenLootBox.OpenCommonBox(Context.User, (ITextChannel)Context.Channel); } else { await SendMessage(Context, null, $"🛑 **|** **{Context.User.Username}**, you don't have any Common Loot Boxes!"); return; } break; case "uncommon": if (config.LootBoxUncommon > 0) { config.LootBoxUncommon -= 1; await OpenLootBox.OpenUncommonBox(Context.User, (ITextChannel)Context.Channel); } else { await SendMessage(Context, null, $"🛑 **|** **{Context.User.Username}**, you don't have any Uncommon Loot Boxes!"); return; } break; case "rare": if (config.LootBoxRare > 0) { config.LootBoxRare -= 1; await OpenLootBox.OpenRareBox(Context.User, (ITextChannel)Context.Channel); } else { await SendMessage(Context, null, $"🛑 **|** **{Context.User.Username}**, you don't have any Rare Loot Boxes!"); return; } break; case "epic": if (config.LootBoxEpic > 0) { config.LootBoxEpic -= 1; await OpenLootBox.OpenEpicBox(Context.User, (ITextChannel)Context.Channel); } else { await SendMessage(Context, null, $"🛑 **|** **{Context.User.Username}**, you don't have any Epic Loot Boxes!"); return; } break; case "legendary": if (config.LootBoxLegendary > 0) { config.LootBoxLegendary -= 1; await OpenLootBox.OpenLegendaryBox(Context.User, (ITextChannel)Context.Channel); } else { await SendMessage(Context, null, $"🛑 **|** **{Context.User.Username}**, you don't have any Legendary Loot Boxes!"); return; } break; } GlobalUserAccounts.SaveAccounts(Context.User.Id); }
public static AttackResult BashAttack(ShardedCommandContext context) { var config = GlobalUserAccounts.GetUserAccount(context.User); var player2 = context.Guild.GetUser(config.OpponentId); var choms = ActiveChomusuke.GetActiveChomusuke(config.Id, config.OpponentId); var chom1 = choms.Item1; var chom2 = choms.Item2; string response; bool success = false; var dmg = (int)Math.Round(Attack.Damage * chom1.CP * .05); var stunProb = Global.Rng.Next(1, 3); chom1.Mana -= Attack.Mana; var result = CheckModifiers.GetDMGModifiers(context.User, player2, dmg); dmg = result.Item1; int modifier = result.Item2; var block = CheckModifiers.CheckForBlock(context.User, player2, dmg); if (block.Item1) { chom2.Health -= (uint)block.Item3; GlobalUserAccounts.SaveAccounts(config.Id); response = $"**{context.User.Username}**, You bashed **{chom2.Name}** and did **{dmg}** damage (buffed by {modifier}% due to active damage modifiers), but **{block.Item2}** damage was blocked!\n\n{Helpers.GetHpLeft(chom1, chom2)}"; dmg = block.Item3; return(new AttackResult { Success = success, Response = response, Damage = dmg }); } var deflect = CheckModifiers.CheckForDeflect(context.User, player2, dmg); if (deflect.Item1) { chom2.Health -= (uint)deflect.Item2; chom1.Health -= (uint)deflect.Item2; GlobalUserAccounts.SaveAccounts(config.Id); response = $"**{context.User.Username}**, You bashed **{chom2.Name}** and did **{dmg}** damage (buffed by {modifier}% due to active damage modifiers), but **{deflect.Item2}** damage was deflected back!\n\n{Helpers.GetHpLeft(chom1, chom2)}"; dmg = deflect.Item2; return(new AttackResult { Success = success, Response = response, Damage = dmg }); } if (stunProb == 1) { response = $"**{context.User.Username}**, You bashed **{chom2.Name}** and did **{dmg}** damage (buffed by {modifier}% due to active damage modifiers)!**{chom2.Name}** is now stunned!\n\n{Helpers.GetHpLeft(chom1, chom2)}"; foreach (Effect effect in Attack.Effects) { chom2.Effects.Add(effect); } } chom2.Health -= (uint)dmg; GlobalUserAccounts.SaveAccounts(context.User.Id, player2.Id); response = $"**{context.User.Username}**, You bashed **{chom2.Name}** and did **{dmg}** damage (buffed by {modifier}% due to active damage modifiers)!\n\n{Helpers.GetHpLeft(chom1, chom2)}"; success = true; return(new AttackResult { Success = success, Response = response, Damage = dmg }); }
public async Task Chomusuke([Remainder] string arg = "") { var mentionedUser = Context.Message.MentionedUsers.FirstOrDefault(); SocketUser user = mentionedUser ?? Context.User; var config = GlobalUserAccounts.GetUserAccount(user); if (config.ActiveChomusuke == 0 && user == Context.User) //if they own a Chomusuke or not { await SendMessage(Context, null, $"{Global.ENo} **|** **{Context.User.Username}**, you don't have an active {Global.EChomusuke} Chomusuke set!\n\nSet an active Chomusuke with `n!active`!"); } else //show their Chomusuke status { var thumbnailurl = Context.User.GetAvatarUrl(); var auth = new EmbedAuthorBuilder() { Name = $"{user.Username}'s Active Chomusuke", IconUrl = thumbnailurl, }; var embed = new EmbedBuilder() { Author = auth }; if (config.ActiveChomusuke == 1) { string sick = ConvertBool.ConvertBooleanYN(config.Chomusuke1.Sick); if (config.Chomusuke1.Shiny) { embed.WithThumbnailUrl("https://i.imgur.com/oKGxPZ4.png"); } else { embed.WithThumbnailUrl("https://i.imgur.com/7kpEWPb.png"); } embed.WithColor(Global.NayuColor); embed.AddField("Owner", user, true); embed.AddField("Name", config.Chomusuke1.Name, true); embed.AddField("Zodiac", config.Chomusuke1.Zodiac + $":{config.Chomusuke1.Zodiac.ToLower()}:", true); embed.AddField("Type", config.Chomusuke1.Type, true); embed.AddField("Combat Power", config.Chomusuke1.CP, true); embed.AddField("Exp", config.Chomusuke1.XP, true); embed.AddField("Level", config.Chomusuke1.LevelNumber, true); embed.AddField("Control", config.Chomusuke1.Control, true); embed.AddField("Health", config.Chomusuke1.HealthCapacity, true); embed.AddField("Shield", config.Chomusuke1.ShieldCapacity, true); embed.AddField("Mana", config.Chomusuke1.ManaCapacity, true); embed.AddField("Waste", config.Chomusuke1.Waste, true); embed.AddField("Trust", config.Chomusuke1.Trust, true); embed.AddField("Hunger", config.Chomusuke1.Hunger, true); embed.AddField("Sick", sick, true); } if (config.ActiveChomusuke == 2) { string sick = ConvertBool.ConvertBooleanYN(config.Chomusuke2.Sick); if (config.Chomusuke2.Shiny) { embed.WithThumbnailUrl("https://i.imgur.com/oKGxPZ4.png"); } else { embed.WithThumbnailUrl("https://i.imgur.com/7kpEWPb.png"); } embed.WithColor(Global.NayuColor); embed.AddField("Owner", user, true); embed.AddField("Name", config.Chomusuke2.Name, true); embed.AddField("Zodiac", config.Chomusuke2.Zodiac + $":{config.Chomusuke2.Zodiac.ToLower()}:", true); embed.AddField("Type", config.Chomusuke2.Type, true); embed.AddField("Combat Power", config.Chomusuke2.CP, true); embed.AddField("Exp", config.Chomusuke2.XP, true); embed.AddField("Level", config.Chomusuke2.LevelNumber, true); embed.AddField("Control", config.Chomusuke2.Control, true); embed.AddField("Health", config.Chomusuke2.HealthCapacity, true); embed.AddField("Shield", config.Chomusuke2.ShieldCapacity, true); embed.AddField("Mana", config.Chomusuke2.ManaCapacity, true); embed.AddField("Waste", config.Chomusuke2.Waste, true); embed.AddField("Trust", config.Chomusuke2.Trust, true); embed.AddField("Hunger", config.Chomusuke2.Hunger, true); embed.AddField("Sick", sick, true); } if (config.ActiveChomusuke == 3) { string sick = ConvertBool.ConvertBooleanYN(config.Chomusuke3.Sick); if (config.Chomusuke3.Shiny) { embed.WithThumbnailUrl("https://i.imgur.com/oKGxPZ4.png"); } else { embed.WithThumbnailUrl("https://i.imgur.com/7kpEWPb.png"); } embed.WithColor(Global.NayuColor); embed.AddField("Owner", user, true); embed.AddField("Name", config.Chomusuke3.Name, true); embed.AddField("Zodiac", config.Chomusuke3.Zodiac + $":{config.Chomusuke3.Zodiac.ToLower()}:", true); embed.AddField("Type", config.Chomusuke3.Type, true); embed.AddField("Combat Power", config.Chomusuke3.CP, true); embed.AddField("Exp", config.Chomusuke3.XP, true); embed.AddField("Level", config.Chomusuke3.LevelNumber, true); embed.AddField("Control", config.Chomusuke3.Control, true); embed.AddField("Health", config.Chomusuke3.HealthCapacity, true); embed.AddField("Shield", config.Chomusuke3.ShieldCapacity, true); embed.AddField("Mana", config.Chomusuke3.ManaCapacity, true); embed.AddField("Waste", config.Chomusuke3.Waste, true); embed.AddField("Trust", config.Chomusuke3.Trust, true); embed.AddField("Hunger", config.Chomusuke3.Hunger, true); embed.AddField("Sick", sick, true); } await SendMessage(Context, embed.Build()); } }
public static AttackResult AbsorbAttack(ShardedCommandContext context) { var config = GlobalUserAccounts.GetUserAccount(context.User); var player2 = context.Guild.GetUser(config.OpponentId); var choms = ActiveChomusuke.GetActiveChomusuke(config.Id, config.OpponentId); var chom1 = choms.Item1; var chom2 = choms.Item2; string response; bool success; int hit = Global.Rng.Next(1, Attack.Accuracy + 1); if (hit == 1) { //use if something negates this /*if (configg.armour == "reinforced") * { * GlobalUserAccounts.SaveAccounts(); * response = * $":fire: **|** **{configg.OpponentName}** used **Absorb** but {config.OpponentName}** has reinforced armour. Therefore it had no effect."; * success = true; * return new AttackResult{Success = success, Response = response, Damage = 0}; * }*/ var dmg = (int)Math.Round(Attack.Damage * chom1.CP * .05); var result = CheckModifiers.GetDMGModifiers(context.User, player2, dmg); dmg = result.Item1; var modifier = result.Item2; var block = CheckModifiers.CheckForBlock(context.User, player2, dmg); if (block.Item1 == true) { chom2.Health -= (uint)block.Item3; GlobalUserAccounts.SaveAccounts(config.Id); response = $":comet: | **{context.User.Username}**,You absorbed **{dmg}** health and did **{dmg}** damage (buffed by {modifier}% due to active damage modifiers), but **{block.Item2}** damage was blocked!\n\n{Helpers.GetHpLeft(chom1, chom2)}"; dmg = block.Item3; success = true; return(new AttackResult { Success = success, Response = response, Damage = dmg }); } var deflect = CheckModifiers.CheckForDeflect(context.User, player2, dmg); if (deflect.Item1 == true) { chom2.Health -= (uint)deflect.Item2; chom1.Health -= (uint)deflect.Item2; GlobalUserAccounts.SaveAccounts(config.Id); response = $":comet: | **{context.User.Username}**, You absorbed **{dmg}** health and did **{dmg}** damage (buffed by {modifier}% due to active damage modifiers), but **{deflect.Item2}** damage was deflected back!\n\n{Helpers.GetHpLeft(chom1, chom2)}"; dmg = deflect.Item2; success = true; return(new AttackResult { Success = success, Response = response, Damage = dmg }); } chom2.Health -= (uint)dmg; GlobalUserAccounts.SaveAccounts(config.Id); response = $":comet: | **{context.User.Username}**, You absorbed **{dmg}** health and did **{dmg}** damage (buffed by {modifier}% due to active damage modifiers)!\n\n{Helpers.GetHpLeft(chom1, chom2)}"; success = true; return(new AttackResult { Success = success, Response = response, Damage = dmg }); } else { int dmg = 0; var result = CheckModifiers.GetDMGModifiers(context.User, player2, dmg); //resets 1 turn buffs response = $":dash: **|** **{context.User.Username}**, your attack missed!"; success = true; return(new AttackResult { Success = success, Response = response, Damage = dmg }); } }
public PersonalTags(GlobalUserAccounts globalUserAccounts) { _globalUserAccounts = globalUserAccounts; }
public RepeatedTaskFunctions(GlobalUserAccounts globalUserAccounts) { _globalUserAccounts = globalUserAccounts; }
public static string GetDuelItem(SocketUser user, int value) { var config = GlobalUserAccounts.GetUserAccount(user); string item = string.Empty; var wasagotchi = WasagotchiInteractive.GetWasagotchi(value); switch (value) { case 1: case 2: case 3: case 4: case 5: case 6: case 7: item = "Strength Potion"; if (config.Items.ContainsKey("Strength Potion")) { config.Items["Strength Potion"] += 1; } else { config.Items.Add("Strength Potion", 1); } break; case 13: case 8: case 9: case 10: case 11: case 12: case 14: item = "Speed Potion"; if (config.Items.ContainsKey("Speed Potion")) { config.Items["Speed Potion"] += 1; } else { config.Items.Add("Speed Potion", 1); } break; case 19: case 20: case 15: case 16: case 17: case 18: case 21: item = "Debuff Potion"; if (config.Items.ContainsKey("Debuff Potion")) { config.Items["Debuff Potion"] += 1; } else { config.Items.Add("Debuff Potion", 1); } break; case 25: case 26: case 27: case 22: case 23: case 24: case 28: item = "Equalizer Potion"; if (config.Items.ContainsKey("Equalizer Potion")) { config.Items["Equalizer Potion"] += 1; } else { config.Items.Add("Equalizer Potion", 1); } break; case 44: case 45: case 46: case 47: case 48: item = "Vile of Poison"; if (config.Items.ContainsKey("Vile Of Poison")) { config.Items["Vile Of Poison"] += 1; } else { config.Items.Add("Vile Of Poison", 1); } break; case 29: case 30: case 31: case 32: case 33: item = "Metallic Acid"; if (config.Items.ContainsKey("Metallic Acid")) { config.Items["Metallic Acid"] += 1; } else { config.Items.Add("Metallic Acid", 1); } break; case 34: case 35: case 36: case 37: case 38: item = "Weapon Liquifier"; if (config.Items.ContainsKey("Weapon Liquifier")) { config.Items["Weapon Liquifier"] += 1; } else { config.Items.Add("Weapon Liquifier", 1); } break; case 39: case 40: case 41: case 42: case 43: item = "Basic Treatment"; if (config.Items.ContainsKey("Basic Treatment")) { config.Items["Basic Treatment"] += 1; } else { config.Items.Add("Basic Treatment", 1); } break; case 49: case 50: case 51: case 52: item = "Divine Shield"; if (config.Items.ContainsKey("Divine Shield")) { config.Items["Divine Shield"] += 1; } else { config.Items.Add("Divine Shield", 1); } break; case 53: if (config.blessingProtection != true) { item = "Blessing of Protection"; config.blessingProtection = true; } else { item = "Blessing of Protection [DUPLICATE] (+2000 Potatoes)"; config.Money = config.Money + 2000; } break; case 54: if (config.blessingSwiftness != true) { item = "Blessing of Swiftness"; config.blessingSwiftness = true; } else { item = "Blessing of Swiftness [DUPLICATE] (+2000 Potatoes)"; config.Money = config.Money + 2000; } break; case 55: if (config.blessingStrength != true) { item = "Blessing of Stength"; config.blessingStrength = true; } else { item = "Blessing of Stength [DUPLICATE] (+2000 Potatoes)"; config.Money = config.Money + 2000; } break; case 56: if (config.blessingWar != true) { item = "Blessing of War"; config.blessingWar = true; } else { item = "Blessing of War [DUPLICATE] (+2000 Potatoes)"; config.Money = config.Money + 2000; } break; } GlobalUserAccounts.SaveAccounts(); return(item); } //1-56
public async Task SellChomusukeAsync() { var config = GlobalUserAccounts.GetUserAccount(Context.User); var activeChom = ActiveChomusuke.GetOneActiveChomusuke(Context.User.Id); if ((DateTime.Now - activeChom.BoughtDay).Days < 1) { throw new Exception("You cannot sell a Chomusuke that's under a day old!"); } string shoptext = $":department_store: **| Are you sure you want to sell your active Chomusuke, {activeChom.Name}? [y/n]"; var shop = await Context.Channel.SendMessageAsync(shoptext); var response = await NextMessageAsync(); if (response == null) { await shop.ModifyAsync(m => { m.Content = $"{Context.User.Mention}, The interface has closed due to inactivity"; }); return; } if (response.Content.Equals("y", StringComparison.CurrentCultureIgnoreCase) && (response.Author.Equals(Context.User))) { var value = GetChomusukeValue(activeChom); await shop.ModifyAsync(m => { m.Content = $":feet: | **Your {Emote.Parse("<:chomusuke:601183653657182280>")} Chomusuke is worth {value} Taiyakis, do you wish to sell it? (**900** {Emote.Parse("<:taiyaki:599774631984889857>")})**\n\nType `confirm` to continue or `cancel` to cancel.\n\n**Warning: this is irreversible!**"; }); var newresponse = await NextMessageAsync(); if (newresponse.Content.Equals("confirm", StringComparison.CurrentCultureIgnoreCase) && (response.Author.Equals(Context.User))) { //remove chomusuke config.ActiveChomusuke = 0; config.Taiyaki += value; GlobalUserAccounts.SaveAccounts(Context.User.Id); await SendMessage(Context, null, $"You have successfully sold your Chomusuke {activeChom.Name}"); return; } if (newresponse.Content.Equals("n", StringComparison.CurrentCultureIgnoreCase) && (response.Author.Equals(Context.User))) { await shop.ModifyAsync(m => { m.Content = $":feet: **|** **{Context.User.Username}**, action cancelled."; }); return; } if (response == null) { await shop.ModifyAsync(m => { m.Content = $"{Context.User.Mention}, The interface has closed due to inactivity"; }); return; } else { await shop.ModifyAsync(m => { m.Content = $"{Global.ENo} **|** That is an invalid response. Please try again."; }); return; } } }
public async Task ShowRichesPeople(int page = 1) { if (page < 1) { await ReplyAsync("Are you really trying that right now? **REALLY?**"); return; } var guildUserIds = Context.Guild.Users.Select(user => user.Id); // Get only accounts of this server var accounts = GlobalUserAccounts.GetFilteredAccounts(acc => guildUserIds.Contains(acc.Id)); const int usersPerPage = 9; // Calculate the highest accepted page number => amount of pages we need to be able to fit all users in them // (amount of users) / (how many to show per page + 1) results in +1 page more every time we exceed our usersPerPage var lastPageNumber = 1 + (accounts.Count / (usersPerPage + 1)); if (page > lastPageNumber) { await ReplyAsync($"There are not that many pages...\nPage {lastPageNumber} is the last one..."); return; } // Sort the accounts descending by Minuies var ordered = accounts.OrderByDescending(acc => acc.Miunies).ToList(); var embB = new EmbedBuilder() .WithTitle("These are the richest people:") .WithFooter($"Page {page}/{lastPageNumber}"); // Add fields to the embed with information of users according to the provided page we should show // Two conditions because: 1. Only get as many as we want // 2. The last page might not be completely filled so we have to interrupt early page--; for (var i = 1; i <= usersPerPage && i + usersPerPage * page <= ordered.Count; i++) { // -1 because we take the users non zero based input var account = ordered[i - 1 + usersPerPage * page]; var user = Context.Client.GetUser(account.Id); //try to give it a medal in cases 1 - 3, if it is not possible just send it with out change var contentName = string.Empty; if (page == 0) { switch (i) { case 1: contentName = $"🥇 #{i + usersPerPage * page} {user.Username}"; break; case 2: contentName = $"🥈 #{i + usersPerPage * page} {user.Username}"; break; case 3: contentName = $"🥉 #{i + usersPerPage * page} {user.Username}"; break; default: contentName = $"#{i + usersPerPage * page} {user.Username}"; break; } } else { contentName = $"#{i + usersPerPage * page} {user.Username}"; } embB.AddField(contentName, $"{account.Miunies} Miunies", true); } await ReplyAsync("", false, embB.Build()); }
public async Task Gift(string Rarity, IGuildUser userB) { var giveaccount = GlobalUserAccounts.GetUserAccount(Context.User); Rarity = Rarity.ToUpper(); uint numOfLootboxes = 0; if (Rarity == "COMMON") { numOfLootboxes = giveaccount.LootBoxCommon; } if (Rarity == "UNCOMMON") { numOfLootboxes = giveaccount.LootBoxUncommon; } if (Rarity == "RARE") { numOfLootboxes = giveaccount.LootBoxRare; } if (Rarity == "EPIC") { numOfLootboxes = giveaccount.LootBoxEpic; } if (Rarity == "LEGENDARY") { numOfLootboxes = giveaccount.LootBoxLegendary; } if (numOfLootboxes < 1) { await ReplyAsync(":angry: **|** Stop trying to gift loot boxes you don't have!"); } else { if (userB == null) { var embed = new EmbedBuilder(); embed.WithColor(Global.NayuColor); embed.WithTitle( "🖐️ **|** Please say who you want to gift loot boxes to. Ex: n!gift <rarity of loot box> @user"); await SendMessage(Context, embed.Build()); } else { var receiver = GlobalUserAccounts.GetUserAccount((SocketUser)userB); if (Rarity == "COMMON") { giveaccount.LootBoxCommon--; receiver.LootBoxCommon++; } if (Rarity == "UNCOMMON") { giveaccount.LootBoxUncommon--; receiver.LootBoxUncommon++; } if (Rarity == "RARE") { giveaccount.LootBoxRare--; receiver.LootBoxRare++; } if (Rarity == "EPIC") { giveaccount.LootBoxEpic--; receiver.LootBoxEpic++; } if (Rarity == "LEGENDARY") { giveaccount.LootBoxLegendary--; receiver.LootBoxLegendary++; } GlobalUserAccounts.SaveAccounts(giveaccount.Id, receiver.Id); await SendMessage(Context, null, $":gift: **|** {Context.User.Mention} has gifted {userB.Mention} a **{Rarity}** Loot box! How generous."); } } }
public MessageRewardHandler(GlobalUserAccounts globalUserAccounts) { _globalUserAccounts = globalUserAccounts; }
public CommandHandler(DiscordSocketClient client, CommandService cmdService, IServiceProvider serviceProvider, GlobalGuildAccounts globalGuildAccounts, GlobalUserAccounts globalUserAccounts, RoleByPhraseProvider roleByPhraseProvider) { _client = client; _cmdService = cmdService; _serviceProvider = serviceProvider; _globalGuildAccounts = globalGuildAccounts; _globalUserAccounts = globalUserAccounts; _roleByPhraseProvider = roleByPhraseProvider; }
public async Task CheckMiuniesOther(IGuildUser Użytkownik) { var account = GlobalUserAccounts.GetUserAccount(Użytkownik.Id); await ReplyAsync(GetMiuniesReport(account.Miunies, Użytkownik.Mention)); }
public async Task CheckMiunies() { var account = GlobalUserAccounts.GetUserAccount(Context.User.Id); await ReplyAsync(GetMiuniesReport(account.Miunies, Context.User.Mention)); }
public async Task ShowRichesPeople(int NumerStrony = 1) { if (NumerStrony < 1) { await ReplyAsync("Czy Ty naprawde próbujesz to zrobić? xD ***SRSLY?!***"); return; } var guildUserIds = Context.Guild.Users.Select(user => user.Id); // Pokaż tylko użytkowników tego serwera var accounts = GlobalUserAccounts.GetFilteredAccounts(acc => guildUserIds.Contains(acc.Id)); const int usersPerPage = 9; // Oblicz najwyższą akceptowany numer storny => amount of pages we need to be able to fit all users in them // (amount of users) / (how many to show per page + 1) results in +1 page more every time we exceed our usersPerPage var lastPageNumber = 1 + (accounts.Count / (usersPerPage + 1)); if (NumerStrony > lastPageNumber) { await ReplyAsync($"Nie ma aż tylu stron...\nStrona numer {lastPageNumber} jest ostatnia."); return; } // Sortuj użytkowników malejąco według punktów var ordered = accounts.OrderByDescending(acc => acc.Miunies).ToList(); var embB = new EmbedBuilder() .WithTitle("Najszczęśliwsi są:") .WithFooter($"Strona {NumerStrony}/{lastPageNumber}"); // Add fields to the embed with information of users according to the provided page we should show // Two conditions because: 1. Only get as many as we want // 2. The last page might not be completely filled so we have to interrupt early NumerStrony--; for (var i = 1; i <= usersPerPage && i + usersPerPage * NumerStrony <= ordered.Count; i++) { // -1 because we take the users non zero based input var account = ordered[i - 1 + usersPerPage * NumerStrony]; var user = Context.Client.GetUser(account.Id); //try to give it a medal in cases 1 - 3, if it is not possible just send it with out change var contentName = string.Empty; if (NumerStrony == 0) { switch (i) { case 1: contentName = $"🥇 #{i + usersPerPage * NumerStrony} {user.Username}"; break; case 2: contentName = $"🥈 #{i + usersPerPage * NumerStrony} {user.Username}"; break; case 3: contentName = $"🥉 #{i + usersPerPage * NumerStrony} {user.Username}"; break; default: contentName = $"#{i + usersPerPage * NumerStrony} {user.Username}"; break; } } else { contentName = $"#{i + usersPerPage * NumerStrony} {user.Username}"; } embB.AddField(contentName, $"{account.Miunies} Punktów Szczęścia", true); } await ReplyAsync("", false, embB.Build()); }
public async Task SpinSlot(uint amount) { if (amount < 1) { await ReplyAsync($"You can' spin for that amount of Miunies.\nAND YOU KNOW IT!"); return; } var account = GlobalUserAccounts.GetUserAccount(Context.User.Id); if (account.Miunies < amount) { await ReplyAsync($"Sorry but it seems like you don't have enough Minuies... You only have {account.Miunies}."); return; } account.Miunies -= amount; GlobalUserAccounts.SaveAccounts(); IUserMessage msg = await ReplyAsync(Global.slot.Spin()); await Task.Delay(1000); await msg.ModifyAsync(m => m.Content = Global.slot.Spin()); await Task.Delay(1000); await msg.ModifyAsync(m => m.Content = Global.slot.Spin()); uint moneyGain = Global.slot.GetPayout(amount); if (moneyGain > 0) { account.Miunies += moneyGain; GlobalUserAccounts.SaveAccounts(); } string message = "You played and "; if (moneyGain > amount) { message += $"got wopping **{moneyGain} Miunies** out of it!"; } else if (moneyGain == amount) { message += "you got your money back... well at least you haven't lost anything right?"; } else if (moneyGain > 0) { message += $"at least you got some of your cash back... have those {moneyGain} Miunies!"; } else { message += "lost everything!"; } await Task.Delay(1000); await ReplyAsync(message); }
public SetTimeZone(GlobalUserAccounts globalUserAccounts) { _globalUserAccounts = globalUserAccounts; }