mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 17:28:27 -04:00
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:
@@ -226,29 +226,33 @@ 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.
|
||||||
if (rrew != null)
|
for (var i = oldGuildLevelData.Level + 1; i <= newGuildLevelData.Level; i++)
|
||||||
{
|
{
|
||||||
var role = first.User.Guild.GetRole(rrew.RoleId);
|
var rrew = rrews.FirstOrDefault(x => x.Level == i);
|
||||||
if (role is not null)
|
if (rrew != null)
|
||||||
{
|
{
|
||||||
if (rrew.Remove)
|
var role = first.User.Guild.GetRole(rrew.RoleId);
|
||||||
|
if (role is not null)
|
||||||
{
|
{
|
||||||
_ = first.User.RemoveRoleAsync(role);
|
if (rrew.Remove)
|
||||||
}
|
{
|
||||||
else
|
_ = first.User.RemoveRoleAsync(role);
|
||||||
{
|
}
|
||||||
_ = first.User.AddRoleAsync(role);
|
else
|
||||||
|
{
|
||||||
|
_ = first.User.AddRoleAsync(role);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//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
|
||||||
await _cs.AddAsync(item.Key.User.Id, "Level-up Reward", crew.Amount);
|
await _cs.AddAsync(item.Key.User.Id, "Level-up Reward", crew.Amount);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user