- Added api_docs to gitignore - Created detailed migration plan - Mapped vilib API to LoLib equivalents - Prioritized migration steps
7.4 KiB
7.4 KiB
План миграции с vilib на LoLib 2.0
📋 Текущее состояние
Используется из vilib:
- ViPlugin - базовый класс плагина
- Logging - логирование
- Strings.colour() - форматирование цветов (MiniMessage + Legacy)
- FastBoard - scoreboard обертка
- Menu/PagedMenu - GUI система
- Item - ItemBuilder
- Task - планировщик задач
- Schematic (старый) - система схематик
- ConfigUpdater - обновление конфигов
- Particles - particle эффекты
- Locations - утилиты для Location
Уже реализовано в LoParkour:
- LPSchematic - новый формат схематик (.lpschem)
- LPSchematicBuilder - builder для создания
- LPSchematicManager - менеджер схематик
- SchematicConverter - конвертер из старого формата
🎯 План миграции
Этап 1: Подготовка (СЕЙЧАС)
- Добавить api_docs в .gitignore
- Добавить lolib-2.0.0.jar в зависимости
- Удалить loparkour-vilib из проекта
- Обновить build.gradle
Этап 2: Core миграция
-
ViPlugin → LoPlugin
- Заменить
extends ViPluginнаextends LoPlugin - Изменить
enable()иdisable()методы - Добавить
dependencies()метод если нужно
- Заменить
-
Logging → LoLogger
- Заменить
Logging loggingна использованиеloLogger() - Обновить все вызовы логирования
- Заменить
-
Task → Scheduler
- Заменить
Task.create()наScheduler.get(plugin) - Обновить async/sync задачи
- Добавить поддержку Folia если нужно
- Заменить
Этап 3: Utils миграция
-
Strings.colour() → Colors.parse()
- Уже есть конвертер
&#RRGGBB→<#RRGGBB> - Заменить все вызовы
Strings.colour()наColors.parse()
- Уже есть конвертер
-
Locations утилиты
- Перенести нужные методы или использовать LoLib аналоги
Этап 4: GUI миграция
-
Menu → InventoryGUI
- Переписать все меню на новый API
- Обновить PagedMenu на новую систему
- Сохранить функциональность
-
Item → ItemBuilder
- Заменить vilib Item на LoLib ItemBuilder
- Обновить создание предметов
- Использовать DataComponent API для 1.21+
Этап 5: Schematics миграция (ПРИОРИТЕТ!)
-
Удалить старую систему vilib
- Удалить импорты
dev.efnilite.vilib.schematic.* - Удалить SchematicConverter (уже не нужен)
- Удалить импорты
-
Интегрировать LoLib Schematics
- Использовать
dev.lolib.schematics.Schematic - Использовать
dev.lolib.schematics.SchematicManager - Обновить LPSchematic для совместимости
- Использовать
-
Обновить генератор
- Изменить
ParkourGeneratorдля использования LoLib схематик - Обновить
Islandкласс - Тестировать вставку схематик
- Изменить
Этап 6: Дополнительные модули
-
FastBoard → Scoreboard
- Заменить FastBoard на LoLib Scoreboard API
- Обновить ParkourUser.board
-
Particles
- Заменить vilib Particles на LoLib ParticleBuilder
- Обновить эффекты в генераторе
-
ConfigUpdater
- Использовать LoLib Config API
- Или оставить текущую реализацию
Этап 7: Тестирование
- Проверить компиляцию
- Тестировать основной функционал
- Тестировать схематики
- Тестировать GUI
- Тестировать все режимы
📦 Зависимости
Удалить:
// loparkour-vilib - удалить весь модуль
Добавить:
dependencies {
// LoLib Core modules
implementation(files("libs/lolib-2.0.0.jar"))
// Или если будет в Maven:
// implementation("dev.lolib:lolib-core:2.0.0")
// implementation("dev.lolib:lolib-scheduler:2.0.0")
// implementation("dev.lolib:lolib-schematics:2.0.0")
// implementation("dev.lolib:lolib-gui:2.0.0")
}
🔄 Маппинг API
Core
| vilib | LoLib |
|---|---|
ViPlugin |
LoPlugin |
Logging |
loLogger() |
Task |
Scheduler |
Utils
| vilib | LoLib |
|---|---|
Strings.colour() |
Colors.parse() |
Locations.* |
Встроенные методы или кастом |
GUI
| vilib | LoLib |
|---|---|
Menu |
InventoryGUI |
PagedMenu |
InventoryGUI с пагинацией |
Item |
ItemBuilder |
Schematics
| vilib | LoLib |
|---|---|
Schematic |
dev.lolib.schematics.Schematic |
Schematics |
SchematicManager |
SchematicReader/Writer |
Встроено в Schematic |
Scoreboard
| vilib | LoLib |
|---|---|
FastBoard |
LoLib Scoreboard API |
🎨 Преимущества LoLib
- Современный API - DataComponent вместо ItemMeta
- Folia support - готовность к многопоточности
- Лучшая производительность - оптимизированные алгоритмы
- Больше функций - Database, Performance, Dialog API
- Активная разработка - регулярные обновления
- Документация - полная документация на русском
📝 Приоритеты
Высокий приоритет:
- Core миграция (LoPlugin, Logger, Scheduler)
- Schematics миграция (критично для функционала)
- GUI миграция (меню - основной интерфейс)
Средний приоритет:
- Utils миграция (Colors, форматирование)
- Scoreboard миграция
- Particles миграция
Низкий приоритет:
- Config API (можно оставить текущий)
- Дополнительные утилиты
🚀 Следующие шаги
- Удалить loparkour-vilib папку
- Обновить build.gradle.kts
- Начать с Core миграции
- Постепенно мигрировать остальные модули
- Тестировать после каждого этапа
⚠️ Важные замечания
- Не удалять LPSchematic - это наш кастомный формат, совместимый с LoLib
- Сохранить SchematicVisuals - кастомная функциональность
- Тестировать схематики - критично для паркура
- Backup перед миграцией - на всякий случай
Статус: Готов к началу миграции
Дата: 2026-02-25
Версия: 1.2.4 → 1.3.0