Skip to content

Commit dcb48e5

Browse files
authored
Merge pull request #959 from MarkusTheOrt/main
Fix Applying the levels on levelup
2 parents 16e6fae + 6ce87e0 commit dcb48e5

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

src/commands/moderation/UserInfo.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ export class UserInfoCommand extends Command {
120120
member.communicationDisabledUntilTimestamp > Date.now())
121121
? "Yes"
122122
: "No",
123+
"Level/XP",
124+
`${dbUser.level}/${dbUser.experience}`,
123125
],
124126
{
125127
author: { name: getDisplayTag(member), icon_url: user.displayAvatarURL() },

src/services/ExperienceService.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,16 @@ export async function handleMessageExperience(message: Message) {
115115
false,
116116
);
117117

118-
const roleToAssign = Object.keys(Constants.XP.level_roles).find(
119-
(levelRequired) => nextLevel === +levelRequired,
120-
);
121-
if (roleToAssign != null) {
122-
await (message.member as GuildMember).roles.add(
123-
roleToAssign,
124-
"Member Leveled Up",
125-
);
118+
const member = message.member as GuildMember;
119+
const rolesToAssign = Object.entries(Constants.XP.level_roles)
120+
.filter(
121+
([levelRequired, roleId]) =>
122+
nextLevel >= +levelRequired && !member.roles.cache.has(roleId),
123+
)
124+
.map(([, foundLevel]) => foundLevel);
125+
126+
if (rolesToAssign.length > 0) {
127+
await member.roles.add(rolesToAssign, "Member Leveled Up");
126128
}
127129

128130
await genericLog(

0 commit comments

Comments
 (0)