WhitelistByTime: гибкий контроль доступа на вашем сервере Minecraft
Управление белым списком на сервере Minecraft часто превращается в рутину: добавил игрока навсегда, а он перестал заходить, или нужно выдать временный пропуск другу на пару дней. Стандартный вайтлист не умеет работать со сроками, а запоминать, кого и когда удалять, неудобно. Плагин WhitelistByTime решает эту проблему элегантно — он позволяет добавлять игроков в белый список на определённое время или на постоянной основе, автоматически отслеживая окончание доступа.
Разработка ориентирована на Paper и Folia версий 1.20.x–1.21.x, включая их форки. Плагин активно тестируется, а код покрыт автоматическими тестами, что сводит к минимуму риск конфликтов и ошибок. Благодаря поддержке UUID в режимах online и floodgate (GeyserMC) корректно обрабатываются смены никнеймов — даже если игрок зайдёт под другим именем, система узнает его по уникальному идентификатору.
Ключевые возможности
- Временный и постоянный вайтлист. Можно указать длительность в формате 2d 3h 10m или оставить поле пустым для бессрочного доступа.
- Полная кастомизация сообщений. Все уведомления настраиваются в конфигурации, а благодаря MiniMessage вы можете использовать градиенты, цвета и интерактивные элементы прямо в тексте.
- Совместимость с любой SQL-базой. Плагин использует ORMLite, что позволяет подключить MySQL, MariaDB, PostgreSQL и другие реляционные хранилища.
- Чувствительность к регистру никнеймов. Исключены путаницы, когда Player и player считаются разными людьми.
- Замораживание игроков. Временная блокировка действий персонажа без удаления из вайтлиста — полезно при подозрительной активности.
- Поддержка PlaceholderAPI. Два плейсхолдера позволяют отображать статус вайтлиста и оставшееся время в любых плагинах, работающих с PAPI.
- Минимальная нагрузка на главный поток. Все тяжёлые операции вынесены в асинхронные задачи, сервер не теряет производительность.
- Мультисерверная архитектура. Благодаря SQL-транзакциям несколько серверов могут использовать общую базу вайтлиста без рассинхронизации.
Кстати, установить этот плагин можно легко через лаунчер foxygame.net — удобный, гибкий и современный лаунчер для Minecraft, где прямо из меню доступна загрузка модов и плагинов. Это экономит время, особенно если вы управляете несколькими сборками и не хотите вручную искать файлы на сторонних сайтах.
Команды и права доступа
WhitelistByTime предлагает интуитивный набор команд. Каждая подкоманда имеет собственное разрешение, а если у игрока совпадает хотя бы одно из списка — доступ открывается. Списки разрешений можно редактировать в файле commands.yml.
/whitelist add nickname— добавить игрока в вайтлист. Права:whitelistbytime.add,wlbytime.add./whitelist remove [nickname]— удалить игрока. Права:whitelistbytime.remove,wlbytime.remove./whitelist check [nickname]— проверить статус другого игрока. Права:whitelistbytime.check,wlbytime.check./whitelist checkme— проверить собственный статус. Права:whitelistbytime.checkme,wlbytime.checkme./whitelist time set/add/remove [nickname] [time]— управление временем вайтлиста. Права:whitelistbytime.time,wlbytime.time./whitelist getall (page)— просмотр всего списка с пагинацией. Права:whitelistbytime.getall,wlbytime.getall./whitelist freeze [nickname] [time]— заморозить игрока на указанный срок. Права:whitelistbytime.freeze,wlbytime.freeze./whitelist unfreeze [nickname]— снять заморозку. Права:whitelistbytime.unfreeze,wlbytime.unfreeze./whitelist reload— перезагрузить конфигурацию. Права:whitelistbytime.reload,wlbytime.reload./whitelist on/off/status— включить, выключить или проверить состояние вайтлиста. Права:whitelistbytime.toggle,wlbytime.toggle.
Аргументы в квадратных скобках обязательны, в круглых — опциональны. Например, номер страницы для getall по умолчанию равен 1. Параметр времени указывается в сокращённом формате: 2d (два дня), 3h (три часа), 10m (десять минут). Если время не задано, игрок добавляется навсегда.
Плейсхолдеры для PlaceholderAPI
Если на сервере используется PlaceholderAPI, WhitelistByTime предоставляет два динамических заполнителя, которые можно вставлять в любые сообщения, табло или меню:
%wlbytime_in_whitelist%— возвращает true/false, находится ли игрок в белом списке.%wlbytime_time_left%— показывает оставшееся время до окончания доступа. Для постоянных игроков значение будет пустым или настраиваемым.
Все выходные сообщения плагина полностью настраиваются в конфигурационном файле, поэтому вы можете адаптировать уведомления под стиль своего проекта.
Часто задаваемые вопросы
Почему файл плагина такой большой? В сборку включены необходимые библиотеки: ORMLite для работы с базами данных, Caffeine для кэширования, bStats для сбора анонимной статистики и Elytrium-Serializer для удобной обработки конфигураций. Это избавляет от необходимости устанавливать дополнительные зависимости.
Куда сообщить об ошибке или предложить идею? Создайте issue в репозитории плагина с подробным описанием. Разработчик приветствует любую обратную связь. Также можно обратиться на Discord-сервер: discord.gg/4XUPywnEyE.
Будет ли поддержка BungeeCord или Velocity? Нет, плагин разрабатывается исключительно для Paper и Folia. Для прокси-сетей потребуется иное решение.
Как работает статистика? Плагин использует bStats для сбора обезличенных метрик — это помогает разработчику видеть количество установок и версии серверов. Вы можете отключить эту функцию в конфигурации, если хотите.
Заключение
WhitelistByTime превращает управление доступом в прозрачный и автоматизированный процесс. Временные разрешения, заморозка, мультисерверная синхронизация и глубокая интеграция с PlaceholderAPI делают его незаменимым для администраторов, которые ценят порядок и гибкость. Лёгковесная архитектура и тщательное тестирование гарантируют стабильную работу даже на высоконагруженных проектах. Если вы ищете способ упростить администрирование белого списка и забыть о ручном удалении просроченных игроков, этот плагин определённо стоит попробовать.