From 5691db5163c475eb81785d4fa4195d4178ad91c3 Mon Sep 17 00:00:00 2001 From: Presti Date: Wed, 16 Oct 2024 11:55:28 +0200 Subject: [PATCH] Fix a bug and bump SQL Signed-off-by: Presti --- .../presti/ree6/utils/others/GuildUtil.java | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/main/java/de/presti/ree6/utils/others/GuildUtil.java b/src/main/java/de/presti/ree6/utils/others/GuildUtil.java index 735ba2384..7f2fcc02e 100644 --- a/src/main/java/de/presti/ree6/utils/others/GuildUtil.java +++ b/src/main/java/de/presti/ree6/utils/others/GuildUtil.java @@ -48,7 +48,7 @@ public static void handleMemberJoin(Guild guild, Member member) { log.error("[AutoRole] Member: {} ({})", member.getUser().getName(), member.getId()); if (guild.getOwner() != null) - LanguageService.getByGuild(guild, "message.brs.autoRole.user", member.getAsMention()).subscribe(message -> + LanguageService.getByGuild(guild, "message.brs.autoRole.user", member.getUser().getName()).subscribe(message -> guild.getOwner().getUser().openPrivateChannel().queue(privateChannel -> privateChannel.sendMessage(message) .queue())); @@ -108,7 +108,7 @@ public static void handleVoiceLevelReward(Guild guild, Member member) { if (guild.getOwner() != null) guild.getOwner().getUser().openPrivateChannel().queue(privateChannel -> - LanguageService.getByGuild(guild, "message.brs.autoRole.user", member.getAsMention()).subscribe(message -> + LanguageService.getByGuild(guild, "message.brs.autoRole.user", member.getUser().getName()).subscribe(message -> privateChannel.sendMessage(message).queue())); return; @@ -170,7 +170,7 @@ public static void handleChatLevelReward(Guild guild, Member member) { if (guild.getOwner() != null) guild.getOwner().getUser().openPrivateChannel().queue(privateChannel -> - LanguageService.getByGuild(guild, "message.brs.autoRole.user", member.getAsMention()) + LanguageService.getByGuild(guild, "message.brs.autoRole.user", member.getUser().getName()) .subscribe(message -> privateChannel.sendMessage(message).queue())); return; } @@ -222,14 +222,32 @@ private static void addRole(Guild guild, Member member, Role role) { log.error("[AutoRole] Failed to give a Role!"); log.error("[AutoRole] Server: {} ({})", guild.getName(), guild.getId()); if (guild.getOwner() != null) - guild.getOwner().getUser().openPrivateChannel().queue(privateChannel -> - LanguageService.getByGuild(guild, guild.getSelfMember().hasPermission(Permission.MANAGE_ROLES) ? - "message.brs.autoRole.hierarchy" - : "message.brs.autoRole.missingPermission", role.getName()).subscribe(message -> - privateChannel.sendMessage(message).queue())); + guild.getOwner().getUser().openPrivateChannel().queue(privateChannel -> { + String[] languageResource = getFailedRoleReason(guild, member, role); + LanguageService.getByGuild(guild, languageResource[0], languageResource[1]).subscribe(message -> + privateChannel.sendMessage(message).queue()); + }); } } + /** + * Get a String Array with the Language Path and the correct Parameter. + * + * @param guild the {@link Guild} Entity. + * @param member the {@link Member} Entity. + * @param role the {@link Role} Entity. + * @return the String Array with two entries, 0 = language path and 1 = parameter. + */ + private static String[] getFailedRoleReason(Guild guild, Member member, Role role) { + String languageResource = "message.brs.autoRole.missingPermission"; + + if (!guild.getSelfMember().canInteract(member)) languageResource = "message.brs.autoRole.user"; + if (guild.getSelfMember().hasPermission(Permission.MANAGE_ROLES)) + languageResource = "message.brs.autoRole.hierarchy"; + + return new String[]{languageResource, guild.getSelfMember().canInteract(member) ? role.getName() : member.getUser().getName()}; + } + /** * Get all roles that Ree6 can manage. *