Loop through xp rewards.

This allows them to still be applied in case a high amount of xp is gained.
This commit is contained in:
Alan Beatty
2021-09-03 11:59:55 -05:00
committed by Kwoth
parent a89e3989a3
commit b17c3d934e

View File

@@ -226,7 +226,10 @@ namespace NadekoBot.Modules.Xp.Services
curRewards.Add(usr.GuildId, crews); curRewards.Add(usr.GuildId, crews);
} }
var rrew = rrews.FirstOrDefault(x => x.Level == newGuildLevelData.Level); //loop through levels since last level up, so if a high amount of xp is gained, reward are still applied.
for (var i = oldGuildLevelData.Level + 1; i <= newGuildLevelData.Level; i++)
{
var rrew = rrews.FirstOrDefault(x => x.Level == i);
if (rrew != null) if (rrew != null)
{ {
var role = first.User.Guild.GetRole(rrew.RoleId); var role = first.User.Guild.GetRole(rrew.RoleId);
@@ -244,7 +247,7 @@ namespace NadekoBot.Modules.Xp.Services
} }
//get currency reward for this level //get currency reward for this level
var crew = crews.FirstOrDefault(x => x.Level == newGuildLevelData.Level); var crew = crews.FirstOrDefault(x => x.Level == i);
if (crew != null) if (crew != null)
{ {
//give the user the reward if it exists //give the user the reward if it exists
@@ -252,6 +255,7 @@ namespace NadekoBot.Modules.Xp.Services
} }
} }
} }
}
uow.SaveChanges(); uow.SaveChanges();
} }