|
6 | 6 | import discord4j.core.object.entity.Message; |
7 | 7 | import discord4j.core.object.entity.channel.Channel; |
8 | 8 | import discord4j.core.spec.EmbedCreateSpec; |
| 9 | +import discord4j.rest.http.client.ClientException; |
9 | 10 | import discord4j.rest.util.Color; |
10 | 11 | import discord4j.rest.util.Permission; |
11 | 12 | import org.slf4j.Logger; |
@@ -78,12 +79,20 @@ private boolean validateUserPermissions(final ChatInputInteractionEvent event) { |
78 | 79 |
|
79 | 80 | private boolean testPermissions(final String guildId, final Channel channel) { |
80 | 81 | try { |
81 | | - channel.getRestChannel().createMessage(EmbedCreateSpec.builder() |
82 | | - .description(feedName() + " message permissions test") |
83 | | - .color(Color.CYAN) |
84 | | - .build().asRequest()) |
| 82 | + var embed = EmbedCreateSpec.builder() |
| 83 | + .description("✔ " + feedName() + " Permissions Test Success! ✔") |
| 84 | + .color(Color.MEDIUM_SEA_GREEN) |
| 85 | + .build().asRequest(); |
| 86 | + channel.getRestChannel().createMessage(embed) |
85 | 87 | .block(); |
86 | 88 | return true; |
| 89 | + } catch (final ClientException clientException) { |
| 90 | + if (clientException.getStatus().code() == 403) { |
| 91 | + LOGGER.warn("Missing permissions for feed: {}, guild: {}, in channel: {}", feedName(), guildId, channel.getId().asString()); |
| 92 | + return false; |
| 93 | + } else { |
| 94 | + LOGGER.warn("Failed testing permissions for feed: {}, guild: {}, in channel: {} - [{}] {}", feedName(), guildId, channel.getId().asString(), clientException.getStatus().code(), clientException.getMessage()); |
| 95 | + } |
87 | 96 | } catch (final Throwable e) { |
88 | 97 | LOGGER.warn("Failed testing permissions for feed: {}, guild: {}, in channel: {}", feedName(), guildId, channel.getId().asString(), e); |
89 | 98 | } |
|
0 commit comments