From 547fe6d9bb139a10cc6381910a1a035cc5b8cdb7 Mon Sep 17 00:00:00 2001 From: loki Date: Fri, 27 Feb 2026 21:06:20 +0100 Subject: [PATCH] Add migration plan from vilib to LoLib 2.0 - Added api_docs to gitignore - Created detailed migration plan - Mapped vilib API to LoLib equivalents - Prioritized migration steps --- .gitignore | 3 + MIGRATION_PLAN.md | 200 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 203 insertions(+) create mode 100644 MIGRATION_PLAN.md diff --git a/.gitignore b/.gitignore index 97a0e3f..8495de7 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,6 @@ modrinth/ # TODO file (local only) TODO.md + +# API documentation (local only) +api_docs/ diff --git a/MIGRATION_PLAN.md b/MIGRATION_PLAN.md new file mode 100644 index 0000000..c999446 --- /dev/null +++ b/MIGRATION_PLAN.md @@ -0,0 +1,200 @@ +# План миграции с vilib на LoLib 2.0 + +## 📋 Текущее состояние + +### Используется из vilib: +1. **ViPlugin** - базовый класс плагина +2. **Logging** - логирование +3. **Strings.colour()** - форматирование цветов (MiniMessage + Legacy) +4. **FastBoard** - scoreboard обертка +5. **Menu/PagedMenu** - GUI система +6. **Item** - ItemBuilder +7. **Task** - планировщик задач +8. **Schematic** (старый) - система схематик +9. **ConfigUpdater** - обновление конфигов +10. **Particles** - particle эффекты +11. **Locations** - утилиты для Location + +### Уже реализовано в LoParkour: +1. **LPSchematic** - новый формат схематик (.lpschem) +2. **LPSchematicBuilder** - builder для создания +3. **LPSchematicManager** - менеджер схематик +4. **SchematicConverter** - конвертер из старого формата + +## 🎯 План миграции + +### Этап 1: Подготовка (СЕЙЧАС) +- [x] Добавить 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 +- [ ] Тестировать все режимы + +## 📦 Зависимости + +### Удалить: +```kotlin +// loparkour-vilib - удалить весь модуль +``` + +### Добавить: +```kotlin +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 + +1. **Современный API** - DataComponent вместо ItemMeta +2. **Folia support** - готовность к многопоточности +3. **Лучшая производительность** - оптимизированные алгоритмы +4. **Больше функций** - Database, Performance, Dialog API +5. **Активная разработка** - регулярные обновления +6. **Документация** - полная документация на русском + +## 📝 Приоритеты + +### Высокий приоритет: +1. Core миграция (LoPlugin, Logger, Scheduler) +2. Schematics миграция (критично для функционала) +3. GUI миграция (меню - основной интерфейс) + +### Средний приоритет: +4. Utils миграция (Colors, форматирование) +5. Scoreboard миграция +6. Particles миграция + +### Низкий приоритет: +7. Config API (можно оставить текущий) +8. Дополнительные утилиты + +## 🚀 Следующие шаги + +1. Удалить loparkour-vilib папку +2. Обновить build.gradle.kts +3. Начать с Core миграции +4. Постепенно мигрировать остальные модули +5. Тестировать после каждого этапа + +## ⚠️ Важные замечания + +- **Не удалять LPSchematic** - это наш кастомный формат, совместимый с LoLib +- **Сохранить SchematicVisuals** - кастомная функциональность +- **Тестировать схематики** - критично для паркура +- **Backup перед миграцией** - на всякий случай + +--- + +**Статус:** Готов к началу миграции +**Дата:** 2026-02-25 +**Версия:** 1.2.4 → 1.3.0