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);
}
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)
{
var role = first.User.Guild.GetRole(rrew.RoleId);
@@ -244,7 +247,7 @@ namespace NadekoBot.Modules.Xp.Services
}
//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)
{
//give the user the reward if it exists
@@ -252,6 +255,7 @@ namespace NadekoBot.Modules.Xp.Services
}
}
}
}
uow.SaveChanges();
}