private void loadMessages(MessageHistory history, int toDelete, Set<Long> userIds, Consumer<List<Message>> consumer) { long maxMessageAge = (System.currentTimeMillis() - TimeUnit.DAYS.toMillis(14) - MiscUtil.DISCORD_EPOCH) << MiscUtil.TIMESTAMP_OFFSET; List<Message> messages = new ArrayList<>(); history.retrievePast(toDelete).queue(historyMessages -> { if (historyMessages.isEmpty()) { consumer.accept(messages); return; } for (Message historyMessage : historyMessages) { if (historyMessage.isPinned() || historyMessage.getIdLong() < maxMessageAge) { continue; } if (userIds != null && !userIds.contains(historyMessage.getAuthor().getIdLong())) { continue; } if (messages.size() >= toDelete) { consumer.accept(messages); return; } messages.add(historyMessage); } consumer.accept(messages); }); }
.retrievePast(100) .complete() .stream()
do { int part = Math.min(MAX_BULK_SIZE, totalMessages); List<Message> messages = history.retrievePast(part).complete(); if (messages.isEmpty()) { break;
outer: while (toRetrieve > 0) { if (history.retrievePast((targetUser == null ? Math.min(toRetrieve, 100) : 100)).complete().isEmpty()) { break;
@Override public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) { if (args.length == 1 && args[0].matches("[0-9]{18,22}")) { if (!guild.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_MANAGE)) { MessageUtils.sendErrorMessage("I need the `Manage Messages` permission in order to pin!", channel); return; } Message msg = channel.getMessageById(args[0].trim()).complete(); if (msg == null) { MessageUtils.sendErrorMessage("That message could not be found!", channel); return; } msg.pin().complete(); channel.getHistory().retrievePast(1).complete().get(0).delete().queue(); } else if (args.length != 0) { if (!guild.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_MANAGE)) { MessageUtils.sendErrorMessage("I need the `Manage Messages` permission in order to pin!", channel); return; } Message msg = channel.sendMessage(new EmbedBuilder().setTitle(sender.getName(), null) .setThumbnail(MessageUtils.getAvatar(sender)).setDescription(MessageUtils.getMessage(args, 0)) .build()).complete(); msg.pin().complete(); channel.getHistory().retrievePast(1).complete().get(0).delete().queue(); } else { MessageUtils.sendUsage(this, channel, sender, args); } }
context.getChannel().getHistory().retrievePast(2).queue(messages -> { if (messages.size() != 2) { return;
if (reaction != null) { if (reaction.getCount() == 5) { message.pin().queue((aVoid) -> event.getChannel().getHistory().retrievePast(1).complete().get(0) .delete().queue());