|
1 | 1 | package org.togetherjava.tjbot.features.messages; |
2 | 2 |
|
3 | 3 | import net.dv8tion.jda.api.EmbedBuilder; |
| 4 | +import net.dv8tion.jda.api.Permission; |
| 5 | +import net.dv8tion.jda.api.entities.Member; |
4 | 6 | import net.dv8tion.jda.api.entities.Message; |
5 | 7 | import net.dv8tion.jda.api.entities.channel.ChannelType; |
6 | 8 | import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; |
@@ -140,6 +142,15 @@ private static OptionalLong parseMessageIdAndHandle(String messageId, IReplyCall |
140 | 142 | } |
141 | 143 | } |
142 | 144 |
|
| 145 | + private boolean handleChecks(Member author, IReplyCallback event) { |
| 146 | + if (!author.hasPermission(Permission.KICK_MEMBERS)) { |
| 147 | + event.reply("You can not execute this command.").setEphemeral(true).queue(); |
| 148 | + return false; |
| 149 | + } |
| 150 | + |
| 151 | + return true; |
| 152 | + } |
| 153 | + |
143 | 154 | private static void handleMessageRetrieveFailed(Throwable failure, IDeferrableCallback event, |
144 | 155 | long messageId) { |
145 | 156 | handleMessageRetrieveFailed(failure, event, List.of(messageId)); |
@@ -197,6 +208,16 @@ private static void handleActionFailed(Throwable failure, IDeferrableCallback ev |
197 | 208 |
|
198 | 209 | @Override |
199 | 210 | public void onSlashCommand(SlashCommandInteractionEvent event) { |
| 211 | + Member member = event.getMember(); |
| 212 | + |
| 213 | + if (member == null) { |
| 214 | + return; |
| 215 | + } |
| 216 | + |
| 217 | + if (!handleChecks(event.getMember(), event)) { |
| 218 | + return; |
| 219 | + } |
| 220 | + |
200 | 221 | switch (Subcommand.fromName(event.getSubcommandName())) { |
201 | 222 | case RAW -> rawMessage(event); |
202 | 223 | case POST -> postMessage(event); |
|
0 commit comments