Столкнулся с такой проблемой: нужно удалить N
сообщений на канале в дискорде. Как это сделать?
Данная проблема частая и выход в ней не всегда очевиден.
Пообщавшись с разработчиками, они предлогают использовать purgeMessages
. С данным методом я еще лично не разобрался до конца, но знаю разные вариант удаления сообщений.
Примеры ниже показывают удаление всей истории сообщений на канале. Удаление N
сообщений будет основана на данных примерах кода:
Данный вариант является самым примитивным (и где-то надежным):
for (Message mes : event.getChannel().getIterableHistory()) {
try {
event.getChannel().deleteMessageById(mes.getId()).queue();
} catch (Exception e) {
e.printStackTrace();
}
}
Плюсы:
Минусы:
Данный вариант является немного продвинутым и его можно часто увидеть на просторах Youtube-уроков по Discord JDA, но у него есть огромные НО:
event.getChannel().getHistory().retrievePast(100).queue(
m -> data.getGuild()
.getTextChannelById(event.getChannel().getId())
.deleteMessages(m).queue()
);
Плюсы:
Минусы:
Данный вариант еще не обкатан мною, но совмещает в себе плюсы двух предыдущих вариантов:
P.S. честно, я ничего не понял в этом коде, но знаю одно - оно удаляет достаточно быстро 500 сообщений.
event.getChannel().getIterableHistory().takeAsync(500).thenAccept(event.getChannel()::purgeMessages);
Плюсы:
Минусы:
Виртуальный выделенный сервер (VDS) становится отличным выбором
какой алгоритм кластеризации и меру похожести для изображений подскажите или порекомендуете? какие этапы для этого нужно сделатьбуду благодарен...
Хотелось бы раз и навсегда выяснить, что лучше и целесообразнее использовать в виде ключа в хэш-коллекциях String или UUID?
Разбираюсь с технологией protocol buffer formatЕсть файл