...
 
Commits (2)
......@@ -9,8 +9,8 @@ help.no_permissions=Not enough permissions for this command
help.cmdlist.usage=Usage: `help [command name]`
help.cmdlist.DEBUG=Debug commands
help.cmdlist.OWNER=Bot owner command
help.cmdlist.ADMIN=Bot administration commands
help.cmdlist.MODER=Moderation helper commands
help.cmdlist.ADMIN=Admin commands
help.cmdlist.MODER=Moderation commands
help.cmdlist.USER=Any users commands
help.cmdlist.FUN=Fun commands
help.cmdlist.OTHER=Uncategorised commands
\ No newline at end of file
......@@ -9,8 +9,8 @@ help.no_permissions=Недостаточно прав для просмотра
help.cmdlist.usage=Использование: `help [команда]`
help.cmdlist.DEBUG=Команды для разработки
help.cmdlist.OWNER=Команды владельца бота
help.cmdlist.ADMIN=Команды настройки бота
help.cmdlist.MODER=Команды модерации сервера
help.cmdlist.ADMIN=Команды админов
help.cmdlist.MODER=Команды модераторов
help.cmdlist.USER=Общие команды
help.cmdlist.FUN=Развлечения
help.cmdlist.OTHER=Прочие команды
\ No newline at end of file
......@@ -36,24 +36,22 @@ class Clear: LocalizedCommand {
if (limit > 100 || limit < 1) return texts.errorMessage()
val mentionedUserIds = message.usersMentioned.map { it.id }
val minusTwoWeeks = message.sentAtDate.minus(2, ChronoUnit.WEEKS)
val timeLimit = message.sentAtDate.minus(2, ChronoUnit.DAYS)
val msgLimit = if (mentionedUserIds.isEmpty()) limit else 100
var lastMessage = message
do {
messages.addAll(
channel.getMessagesBefore(limit = msgLimit, messageId = lastMessage.id)
.also { lastMessage = it.last() }
.filter { mentionedUserIds.isEmpty() || it.authorId in mentionedUserIds }
.take(limit - messages.size)
.filter { it.sentAtDate.isAfter(minusTwoWeeks) }
.map { it.id }.ifEmpty {
return texts.message("empty")
}
)
} while (messages.size < limit && lastMessage.sentAtDate.isAfter(minusTwoWeeks))
channel.getMessagesBefore(limit = msgLimit, messageId = lastMessage.id)
.also { lastMessage = it.last() }
.filter { mentionedUserIds.isEmpty() || it.authorId in mentionedUserIds }
.take(limit - messages.size)
.filter { it.sentAtDate.isAfter(timeLimit) }
.map { it.id }.takeIf { it.isNotEmpty() }?.run { messages.addAll(this) }
} while (messages.size < limit && lastMessage.sentAtDate.isAfter(timeLimit))
if (messages.size < 1) return texts.message("empty")
if (messages.isEmpty()) return texts.message("empty")
if (messages.size == 1) {
channel.deleteMessage(messages.single())
......
clear.help.usage=Usage: `clear limit [@user-mentions]`. Limited to 100 messages maximum (and 2 minimum). Can be filtered with mentions.
clear.help.usage=Usage: `clear limit [@user-mentions]`. Limited to 100 messages maximum. Can remove messages sent less that 2 days ago. Can be filtered with member mentions.
clear.help.description=Channel cleaning utility
clear.error=Invalid request.
clear.done=Done. Cleared %1$d messages.
......
clear.help.usage=Использование: `clear [количество] @упоминания`. Количество обязательно при использовании упоминаний. Лимит - от 2 до 100 сообщений. Возможен фильтр по пользователям (с помощью упоминаний).
clear.help.usage=Использование: `clear [количество] @упоминания`. Количество обязательно при использовании упоминаний. Лимит - до 100 сообщений. Не удаляет сообщения старше 2 дней. Возможен фильтр по пользователям (с помощью упоминаний).
clear.help.description=Очистка канала
clear.error=Ошибка. Проконсультируйтесь с командой помощи
clear.done=Готово. Очищено %1$d сообщений.
......