From a40edc8a997673dc898b8bf6b17ffea08d6791e5 Mon Sep 17 00:00:00 2001 From: Sean Stoves Date: Sat, 8 Aug 2020 23:34:16 -0400 Subject: [PATCH] Changing XP gain to random of 15-25. also adding LastUpdated to ensure experience gain only once per minute. --- .../Discord/Services/ExperienceHandler.cs | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/ChaosBot/Discord/Services/ExperienceHandler.cs b/ChaosBot/Discord/Services/ExperienceHandler.cs index 9b74856..44d913b 100644 --- a/ChaosBot/Discord/Services/ExperienceHandler.cs +++ b/ChaosBot/Discord/Services/ExperienceHandler.cs @@ -27,18 +27,30 @@ namespace ChaosBot.Discord.Services if (usrXp.Any()) { usrNewXp = usrXp.First(); - usrNewXp.Amount = usrNewXp.Amount + Convert.ToUInt64(ConfigurationRepository.GetValue("Experience:PerMsg", DiscordGuildId, "0")); - } + + if(DateTime.Now >= usrNewXp.LastUpdated.AddMinutes(1)) + { + usrNewXp.Amount = usrNewXp.Amount + Convert.ToUInt64(new Random().Next(15, 26)); + + usrNewXp.DiscordGuildId = DiscordGuildId; + usrNewXp.DiscordUserId = DiscordUserId; + usrNewXp.LastUpdated = DateTime.Now; + + await dbContext.ExperiencePoints.Upsert(usrNewXp) + .On(x => new {x.DiscordGuildId, x.DiscordUserId}).RunAsync(); + } } else { usrNewXp = new Experience(); - usrNewXp.Amount = Convert.ToUInt64(ConfigurationRepository.GetValue("Experience:PerMsg", DiscordGuildId, "0")); + usrNewXp.Amount = Convert.ToUInt64(new Random().Next(15, 26)); + + usrNewXp.DiscordGuildId = DiscordGuildId; + usrNewXp.DiscordUserId = DiscordUserId; + usrNewXp.LastUpdated = DateTime.Now; + + await dbContext.ExperiencePoints.Upsert(usrNewXp) + .On(x => new { x.DiscordGuildId, x.DiscordUserId}).RunAsync(); } - usrNewXp.DiscordGuildId = DiscordGuildId; - usrNewXp.DiscordUserId = DiscordUserId; - - await dbContext.ExperiencePoints.Upsert(usrNewXp) - .On(x => new { x.DiscordGuildId, x.DiscordUserId}).RunAsync(); } } catch (Exception ex)