@Override public void deleteMessagesByIds(Collection<String> messageIds) { if (messageIds.size() < 2 || messageIds.size() > 100) { throw new IllegalArgumentException( "Must provide at least 2 or at most 100 messages to be deleted."); } else if (!PermissionUtil.checkPermission( getJDA().getSelfInfo(), Permission.MESSAGE_MANAGE, this)) { throw new PermissionException( Permission.MESSAGE_MANAGE, "Must have MESSAGE_MANAGE in order to bulk delete messages in this channel regardless of author."); } JSONObject body = new JSONObject().put("messages", messageIds); Requester.Response response = ((JDAImpl) getJDA()) .getRequester() .post(Requester.DISCORD_API_PREFIX + "channels/" + id + "/messages/bulk_delete", body); if (response.isRateLimit()) throw new RateLimitedException(response.getObject().getInt("retry_after")); }
@Override public void deleteMessages(Collection<Message> messages) { deleteMessagesByIds(messages.stream().map(msg -> msg.getId()).collect(Collectors.toList())); }