
AutoUpdatePlugins
Плагин AutoUpdatePlugins для Minecraft автоматически обновляет ваши плагины с разных источников: GitHub, SpigotMC, Modrinth и других. Настраиваемый, безопасный и работает на Spigot, Paper, Velocity. Скачайте и забудьте о ручных обновлениях.
AutoUpdatePlugins v12.2.0 - это плагин для серверов Майнкрафт, который берет на себя рутину по обновлению всех ваших плагинов. Если вы админ сервера, то знаете, как часто разработчики выпускают патчи и новые версии. Раньше приходилось вручную следить за SpigotMC, GitHub или Modrinth, скачивать джарники, заменять их, надеяться, что ничего не сломается. С AutoUpdatePlugins это в прошлом.
Короче, кидаешь плагин в папку plugins, прописываешь в list.yml ссылки на те плагины, которые хочешь автообновлять, и он сам находит, скачивает, проверяет целостность и подкладывает свежие версии. Работает по расписанию или по крону, асинхронно, не блокируя главный поток сервера. Ну ты понял - must-have для любого приличного сервера.
Что умеет AutoUpdatePlugins
- Тянет обновления с кучи источников: GitHub (Releases и Actions), Jenkins, SpigotMC (через Spiget), dev.bukkit, Modrinth, Hangar, BusyBiscuit, blob.build, Guizhanss v2, MineBBS, CurseForge, да хоть с прямой ссылки на
.jar. - Поддерживает локальные файлы и скрипты - если у вас своя сборка с патчами, просто укажите путь.
- Умный выбор артефактов: можно юзать
[N](взять N-й файл),?get=<регулярка>(по имени),?artifact=2для Actions,?prerelease=true,?alpha=true,?beta=true,?channel=Alpha- короче, подкручиваете селекторы под нужную сборку. - Конфиг не портится - новые опции добавляются автоматически, ваши комментарии и правки остаются.
- Гибкий HTTP-клиент: кастомные заголовки, ротация User-Agent, прокси.
- Производительность: асинхронная загрузка, на Java 11+ использует HTTP/2, на Java 21+ - виртуальные потоки, пул соединений, параллельные загрузки, ретраи с экспоненциальной задержкой.
- Гибкое расписание: либо интервал (минуты) + задержка при старте, либо cron с часовым поясом.
- Кроссплатформенность: работает на Spigot, Paper, Folia, Velocity, BungeeCord.
- Безопасные обновления: скачал -> проверил целостность (чек ZIP, MD5) -> атомарно заменил через временную папку.
- Откат при ошибке: делает снепшот старого джарника и автоматом откатывает, если новый не взлетел.
Какие плагины обновляет и откуда
Да почти любые. Вы просто указываете в list.yml ссылку на ресурс, а плагин разбирается с источником. Вот пример, как это выглядит:
ViaVersion: "https://www.spigotmc.org/resources/viaversion.19254/"
Geyser: "https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot"
EssentialsXChat: "https://github.com/EssentialsX/Essentials[3]"
Видите, для EssentialsX указан [3] - это значит взять третий артефакт с релиза. Можно комбинировать селекторы, например ?prerelease=true&get=.*spigot.*\.jar.
Поддерживаемые источники (полная таблица)
| Источник | Что берёт | Особенности |
|---|---|---|
| GitHub | Releases и Actions | [N], ?artifact=2, ?get=regex, ?prerelease, ?alpha, ?beta, ?latest, ?autobuild |
| Jenkins | Последняя сборка | [N], ?get=regex |
| SpigotMC (Spiget) | Страница ресурса | Авторазрешение последней версии |
| dev.bukkit | Страница проекта | Авторазрешение |
| Modrinth | Проект/версия | ?get=regex, ?alpha, ?beta, ?latest |
| Hangar | Проект/релизы | ?get=regex, ?alpha, ?beta, ?latest, ?channel=Alpha |
| BusyBiscuit | Индекс проекта | Авторазрешение |
| blob.build | Артефакты сборок | ?get=regex |
| Guizhanss v2 | Индекс проекта | Авторазрешение |
| MineBBS | Страница ресурса | Авторазрешение |
| CurseForge | Файлы проекта | ?get=regex |
| Generic | Прямая .jar ссылка | Точный URL |
| Local file | Локальный путь | file:, local:, path: |
| Local script | Вывод скрипта | script:, exec: |
Важно: Пустые или неправильные ссылки просто игнорируются. Можно временно отключать плагин через
#или командой/aup disable.
Требования
- Java 8+. На 11+ юзает HTTP/2, на 21+ - виртуальные потоки (само, без настроек).
- Доступ в интернет, естественно.
- Подходит для Minecraft 1.8 и до последней версии.
- Серверные платформы: Spigot, Paper, Folia, Velocity, BungeeCord.
Установка и быстрый старт
- Скачиваете последний
.jar(со SpigotMC, например). - Кидаете в папку
plugins/вашего сервера Minecraft. - Запускаете сервер - сгенерируются конфиги.
- Редактируете
plugins/AutoUpdatePlugins/config.yml(опционально) иplugins/AutoUpdatePlugins/list.yml(обязательно - добавляете туда свои плагины и ссылки). - Вводите
/updateили/aup update- и понеслась.
Плагин сам найдёт новые версии, скачает, проверит и сложит в папку update/ (или куда укажете). После этого нужен рестарт сервера, чтобы изменения применились. Можно включить авторестарт в настройках - тогда сервер сам перезагрузится после обновления.
Настройка config.yml
Конфиг большой, но большинство опций уже с разумными дефолтами. Пробегусь по важному:
updates.interval- интервал проверки в минутах (по умолчанию 120).updates.bootTime- задержка перед первой проверкой после старта (сек).updates.schedule.cron- если хотите точное расписание. Задаёт cron и timezone, переопределяет interval/bootTime.updates.key- GitHub PAT (персональный токен). Если юзаете много ссылок на GitHub, настоятельно рекомендуется, чтобы не влететь в рейт-лимиты.http.userAgents- список User-Agent'ов, плагин их ротирует, чтобы не блокировали.behavior.zipFileCheck- проверять целостность скачанных .jar/.zip (рекомендую оставить true).behavior.ignoreDuplicates- не заменять плагин, если MD5 совпадает.behavior.allowPreRelease- разрешить пре-релизы по умолчанию.behavior.autoCompile- если на GitHub нет .jar, можно попробовать собрать из исходников (Gradle/Maven). Работает, но нужен Gradle/Maven на сервере.behavior.restartAfterUpdate- авторестарт после обновления (с задержкой и сообщением).rollback- включить откат: делает бэкап старой версии и восстанавливает, если новый плагин выдаёт ошибки при загрузке.performance.maxParallel- количество параллельных загрузок. Если качает много плагинов, можно увеличить (но аккуратно, чтобы не забить канал).performance.maxPerHost- ограничение на количество одновременных запросов к одному хосту (чтобы не получить 429 ошибку).
Команды и права
Простые команды для управления:
| Команда | Что делает |
|---|---|
/update или /aup update [имена...] | Запустить проверку и загрузку обновлений для всех или выбранных плагинов |
/aup download [имена...] | То же самое |
/aup stop | Остановить текущий процесс |
/aup reload | Перезагрузить конфиг |
/aup add <имя> <ссылка> | Добавить плагин в list.yml |
/aup remove <имя> | Удалить плагин |
/aup list [страница] | Посмотреть список отслеживаемых плагинов |
| `/aup debug on | off |
| `/aup enable | disable <имя>` |
Права: autoupdateplugins.update на /update, autoupdateplugins.manage на все /aup команды.
Как это работает под капотом
- Поиск - для каждой записи из list.yml плагин определяет провайдера (GitHub, Jenkins и т.д.) и по селекторам вычисляет последний подходящий артефакт.
- Скачивание - асинхронно, с пулом соединений, на Java 11+ HTTP/2, на Java 21+ виртуальные потоки.
- Валидация - проверка ZIP (если включено), сравнение MD5.
- Подмена - файл пишется во временную папку, потом атомарно перемещается в папку
update/plugins(или другую, если настроено). - Повтор - по расписанию, с ретраями при ошибках.
Типичные проблемы и решения
Q: Обновления скачались, но сервер не изменился.
A: Нужен рестарт. Большинство плагинов не хотят хот-релоад. Включите behavior.restartAfterUpdate: true, если лень.
Q: GitHub кидает лимиты.
A: Добавьте GitHub PAT в updates.key. Для приватных репозиториев токен должен иметь права на чтение Releases/Actions.
Q: Скачался не тот файл.
A: Используйте селекторы. Например, ?get=.*spigot.*\.jar или [2] для второго артефакта.
Q: Долго качает или таймауты.
A: Увеличьте readTimeoutMs, уменьшите maxParallel или настройте perDownloadTimeoutSec.
Q: Нужны пре-релизы.
A: Добавьте ?prerelease=true или ?beta=true прямо в ссылку. Или глобально включите behavior.allowPreRelease: true.
Q: За корпоративным прокси.
A: Настройте секцию proxy.type/host/port. Если прокси режет TLS, положите его сертификат в trust store Джавы.
Сборка из исходников
Если хотите собрать сами - используйте Maven:
mvn -DskipTests package
Джарник будет в target/.
Заметки по безопасности
- Не давайте токенам лишних прав. Для GitHub хватит
public_repoдля публичных репозиториев. - Держите
zipFileCheck: true- скачанные файлы могут быть битыми или с вирусами (теоретически). - Используйте
?get=regex, чтобы случайно не подхватить несовместимую сборку.
Итог
AutoUpdatePlugins - это тот случай, когда один плагин экономит кучу времени. Если у вас сервер с десятком-другим плагинов, постоянные обновления превращаются в рутину. Этот плагин автоматизирует всё: от поиска до установки. Плюс гибкие настройки под любые источники и сценарии. Советую сразу настроить откат и авторестарт - и можно забыть о ручных обновлениях на месяцы.
Скачайте AutoUpdatePlugins, пропишите свои плагины и наслаждайтесь стабильностью без лишних телодвижений.
