LoParkour/MIGRATION_PLAN.md
loki 547fe6d9bb 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
2026-02-27 21:06:20 +01:00

7.4 KiB
Raw Blame History

План миграции с 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: Подготовка (СЕЙЧАС)

  • Добавить 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

  1. Современный API - DataComponent вместо ItemMeta
  2. Folia support - готовность к многопоточности
  3. Лучшая производительность - оптимизированные алгоритмы
  4. Больше функций - Database, Performance, Dialog API
  5. Активная разработка - регулярные обновления
  6. Документация - полная документация на русском

📝 Приоритеты

Высокий приоритет:

  1. Core миграция (LoPlugin, Logger, Scheduler)
  2. Schematics миграция (критично для функционала)
  3. GUI миграция (меню - основной интерфейс)

Средний приоритет:

  1. Utils миграция (Colors, форматирование)
  2. Scoreboard миграция
  3. Particles миграция

Низкий приоритет:

  1. Config API (можно оставить текущий)
  2. Дополнительные утилиты

🚀 Следующие шаги

  1. Удалить loparkour-vilib папку
  2. Обновить build.gradle.kts
  3. Начать с Core миграции
  4. Постепенно мигрировать остальные модули
  5. Тестировать после каждого этапа

⚠️ Важные замечания

  • Не удалять LPSchematic - это наш кастомный формат, совместимый с LoLib
  • Сохранить SchematicVisuals - кастомная функциональность
  • Тестировать схематики - критично для паркура
  • Backup перед миграцией - на всякий случай

Статус: Готов к началу миграции
Дата: 2026-02-25
Версия: 1.2.4 → 1.3.0