Fixed bulk deleting messages
This commit is contained in:
1 parent
a24a95382f
commit
02ee971db2
1 file changed
+30
-21
@@ -1,9 +1,11 @@
|
|||||||
package netneutrality.utils;
|
package netneutrality.utils;
|
||||||
|
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.dv8tion.jda.core.entities.Message;
|
import net.dv8tion.jda.core.entities.Message;
|
||||||
import net.dv8tion.jda.core.entities.TextChannel;
|
import net.dv8tion.jda.core.entities.TextChannel;
|
||||||
|
import netneutrality.handler.LogHandler;
|
||||||
|
|
||||||
public class ChannelFunction {
|
public class ChannelFunction {
|
||||||
|
|
||||||
@@ -11,32 +13,39 @@ public class ChannelFunction {
|
|||||||
|
|
||||||
if (toDelete >= 2500) return;
|
if (toDelete >= 2500) return;
|
||||||
|
|
||||||
Thread deleteMessage = new Thread(new Runnable() {
|
Thread deleteMessage = new Thread(() -> {
|
||||||
|
int toDeleteFinal = toDelete + 1;
|
||||||
|
int iteration = toDeleteFinal / 100;
|
||||||
|
for (int i = 0; i < iteration; i++) {
|
||||||
|
List<Message> messages = channel.getHistory().retrievePast(100).complete();
|
||||||
|
deleteFromList(messages, channel);
|
||||||
|
toDeleteFinal -= 100;
|
||||||
|
|
||||||
@Override
|
}
|
||||||
public void run() {
|
|
||||||
int toDeleteFinal = toDelete + 1;
|
|
||||||
int iteration = toDeleteFinal / 100;
|
|
||||||
for (int i = 0; i < iteration; i++) {
|
|
||||||
List<Message> messages = channel.getHistory().retrievePast(100).complete();
|
|
||||||
channel.deleteMessages(messages).complete();
|
|
||||||
toDeleteFinal -= 100;
|
|
||||||
|
|
||||||
System.out.println("Deleted 100 message");
|
if (toDeleteFinal > 0) {
|
||||||
}
|
List<Message> messages = channel.getHistory().retrievePast(toDeleteFinal).complete();
|
||||||
|
deleteFromList(messages, channel);
|
||||||
|
|
||||||
if (toDeleteFinal > 0) {
|
}
|
||||||
List<Message> messages = channel.getHistory().retrievePast(toDeleteFinal).complete();
|
});
|
||||||
channel.deleteMessages(messages).complete();
|
|
||||||
System.out.println("Deleted " + toDeleteFinal + " messages");
|
|
||||||
} else {
|
|
||||||
System.out.println("No more message");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
deleteMessage.start();
|
deleteMessage.start();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void deleteFromList(List<Message> messages, TextChannel channel) {
|
||||||
|
try {
|
||||||
|
channel.deleteMessages(messages).complete();
|
||||||
|
System.out.println("Deleted " + messages.size() + " messages");
|
||||||
|
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
messages.forEach(m -> {
|
||||||
|
if (!m.getCreationTime().isBefore(OffsetDateTime.now().minusWeeks(Long.parseLong("2")))) {
|
||||||
|
m.delete().queue();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user