Посібник

Як оновити плагін до нової версії Minecraft

Оновлено 18 жовтня 2026 р.

Коли ваш сервер переходить на нову версію Minecraft, багато плагінів працюють далі без змін, бо API Bukkit стабільний. Інші перестають завантажуватися або дрібно ламаються. Якщо автор не оновив плагін, а у вас є його вихідний код, ви можете оновити його самі: ось що змінюється і в якому порядку.

Опишіть, як він має працювати в новій версії.

Згенерувати це в Codexe

Крок за кроком

  1. 1.Спершу спробуйте старий .jar

    Покладіть його на тестовий сервер нової версії й прочитайте консоль. Якщо він завантажується й працює, можливо, нічого змінювати не доведеться.

  2. 2.Змініть залежність API

    У pom.xml або build.gradle встановіть для paper-api чи spigot-api нову версію.

  3. 3.Оновіть api-version і Java

    Задайте api-version у plugin.yml (наприклад, '1.21') і компілюйте під ту Java, яка потрібна новій версії: Java 17 до 1.20.5, Java 21 з 1.20.5, Java 25 для 26.x.

  4. 4.Виправте те, що більше не компілюється

    Зберіть проєкт і пройдіться помилками: перейменовані матеріали, видалені методи, змінені класи подій. Компілятор перелічує їх із файлом і рядком.

  5. 5.Оновіть залежності

    Плагіни, які використовує ваш плагін (Vault, PlaceholderAPI, ProtocolLib, WorldGuard), теж потребують версій із підтримкою нової версії Minecraft, і у файлі збірки, і на сервері.

  6. 6.Протестуйте на новій версії

    Завантажте його на сервер нової версії з тими самими плагінами й випробуйте кожну команду та функцію, а не лише запуск.

Що зазвичай ламається

  • Назви матеріалів та enum: оновлення 1.13 перейменувало більшість предметів і блоків; пізніші версії деякі додають, перейменовують або видаляють. Код зі старими назвами чи числовими ідентифікаторами не працює.
  • Видалені застарілі методи: методи, позначені як застарілі протягом кількох версій, зрештою зникають.
  • Дані предметів: з 1.20.5 NBT предметів замінено компонентами даних. Плагінам, що напряму редагують NBT предметів, цю частину доведеться переписати; звичайний API ItemMeta працює й далі.
  • NMS і рефлексія: код, що використовує внутрішні класи сервера, ламається майже в кожній версії. Замініть його на API, де можливо, або на бібліотеку, як-от ProtocolLib.
  • Версії бібліотек: вбудовані бібліотеки, зібрані для старішої Java, можуть не працювати на новій.

Оновлення через багато версій

Перехід з 1.8 чи 1.12 на 1.21 ближчий до переписування частин, що стосуються предметів, блоків і частинок, ніж до оновлення. Робіть це за один раз під новий API, а не версія за версією, і будьте готові, що у файлах конфігурації теж знадобляться нові назви матеріалів.

Якщо плагін має підтримувати кілька версій одночасно, компілюйте під найстарішу з підтримуваних і уникайте API, доданих пізніше, або робіть окремі збірки для кожної версії.

З Codexe

На Pro і вище можна імпортувати вихідний код плагіна як ZIP і попросити, наприклад: «Це мій плагін для Paper 1.20.4. Онови його до Paper 1.21.4». Codexe читає версію Minecraft із файлу збірки, збирає з тією Java, яка потрібна цій версії, і виправляє помилки компіляції, спираючись на справжні сигнатури API, під який збирає. Для плагіна, створеного в Codexe, попросіть нову версію в чаті проєкту.

Компіляція доводить, що плагін збирається під новий API. Потім спробуйте його на тестовому сервері, бо зміни поведінки між версіями не проявляються як помилки компіляції.

Запитання

Чи можна оновити плагін без його вихідного коду?

Надійно - ні. Декомпіляція .jar дає код, який важко підтримувати, і може порушити ліцензію автора. Спершу пошукайте оновлену версію або підтримуваний форк.

Чи працює плагін для 1.21.1 на 1.21.4?

Часто так, у межах однієї основної версії, якщо він не використовує NMS або API, що змінився. Протестуйте його, перш ніж на нього покладатися.

Чому сервер пише «Unsupported API version»?

Це протилежний випадок: плагін розрахований на новіший API, ніж сервер. Зберіть його під версію свого сервера або оновіть сервер.

Перезберіть плагін під свою версію

Цей запит відкривається готовим до надсилання:

“Версія для Paper 1.21.4 мого плагіна TreeFeller для Spigot 1.12.2: якщо зламати сокирою нижню колоду дерева, ламається все дерево, міцність витрачається за кожну колоду, працює з усіма типами деревини 1.21, зокрема вишнею й мангровою, перемикається через /treefeller, налаштування в config.yml.”

Згенерувати це в Codexe
Як оновити плагін Minecraft до нової версії | Codexe