LoReport/.kiro/specs/lorep-report-plugin/tasks.md
2025-12-19 12:07:40 +01:00

5.9 KiB
Raw Blame History

Implementation Plan

  • [-] 1. Настройка проекта и Git

    • 1.1 Создать структуру Gradle проекта

      • Создать build.gradle.kts с зависимостями Paper API, HikariCP, OkHttp
      • Создать settings.gradle.kts
      • Настроить Java 21 и shadowJar для сборки
      • Requirements: 7.1
    • 1.2 Настроить Git и .gitignore

      • Создать .gitignore для Java/Gradle проекта
      • Инициализировать git репозиторий
      • Добавить remote https://git.lokili.xyz/loki/lorep.git
      • Сделать initial commit и push
      • Requirements: N/A
    • 1.3 Создать plugin.yml и основной класс

      • Создать plugin.yml с командами и правами
      • Создать LorepPlugin.java с onEnable/onDisable
      • Requirements: 6.1, 6.2, 6.3
  • 2. Реализация конфигурации

    • 2.1 Создать ConfigManager и config.yml
      • Создать default config.yml с настройками БД и webhook
      • Реализовать ConfigManager для чтения конфигурации
      • Requirements: 7.1, 7.2, 7.3, 7.4
    • 2.2 Написать property test для парсинга конфигурации
      • Property 9: Configuration Parsing
      • Validates: Requirements 7.1, 7.3, 7.4
  • 3. Реализация базы данных

    • 3.1 Создать модель Report и интерфейс DatabaseManager
      • Создать Report record
      • Создать интерфейс DatabaseManager
      • Requirements: 2.1
    • 3.2 Реализовать SQLiteDatabaseManager
      • Реализовать все методы интерфейса для SQLite
      • Создать таблицу и индексы
      • Requirements: 2.1, 2.2, 2.3
    • 3.3 Реализовать PostgreSQLDatabaseManager
      • Реализовать все методы с HikariCP connection pool
      • Создать таблицу и индексы для PostgreSQL
      • Requirements: 2.1, 2.2, 2.3
    • 3.4 Написать property tests для DatabaseManager
      • Property 1: Report Creation Integrity
      • Property 2: Duplicate Report Prevention
      • Property 3: Report Persistence Round-Trip
      • Property 4: Report Ordering
      • Property 7: Report Count Accuracy
      • Validates: Requirements 1.1, 1.2, 2.1, 2.2, 2.3, 5.1
  • 4. Checkpoint - Проверка тестов БД

    • Ensure all tests pass, ask the user if questions arise.
  • 5. Реализация Discord Webhook

    • 5.1 Создать DiscordWebhook сервис
      • Реализовать отправку embed сообщений через OkHttp
      • Обработать ошибки и отсутствие URL
      • Requirements: 3.1, 3.2, 3.3
    • 5.2 Написать property test для webhook payload
      • Property 5: Webhook Payload Completeness
      • Validates: Requirements 3.1
  • 6. Реализация команд

    • 6.1 Создать ReportCommand (/report [ник] [причина])
      • Валидация аргументов и прав
      • Проверка на самого себя и существование игрока
      • Проверка на дубликат репорта
      • Сохранение в БД и отправка в webhook
      • Requirements: 1.1, 1.2, 1.3, 1.4, 1.5, 6.1
    • 6.2 Создать ReportStatsCommand (/report stats [ник])
      • Показ количества репортов
      • Показ последнего онлайна
      • Список последних репортов
      • Requirements: 5.1, 5.2, 5.3, 5.4, 6.3
    • 6.3 Написать property test для проверки прав
      • Property 8: Permission Enforcement
      • Validates: Requirements 6.1, 6.2, 6.3
  • 7. Реализация GUI

    • 7.1 Создать ReportGui с пагинацией
      • Создать инвентарь 54 слота
      • Отображение голов игроков с их скинами
      • Lore с информацией о репорте
      • Кнопки навигации по страницам
      • Requirements: 4.1, 4.2, 4.3, 4.4
    • 7.2 Создать GuiClickListener
      • Обработка кликов по страницам
      • Отмена выноса предметов
      • Requirements: 4.4
    • 7.3 Создать ReportGuiCommand (/report gui)
      • Проверка прав и открытие GUI
      • Requirements: 4.1, 6.2
    • 7.4 Написать property test для пагинации
      • Property 6: Pagination Correctness
      • Validates: Requirements 4.4
  • 8. Утилиты и сообщения

    • 8.1 Создать TimeUtil для форматирования времени
      • Форматирование "X минут/часов/дней назад"
      • Requirements: 4.3, 5.2
    • 8.2 Создать MessageUtil для цветных сообщений
      • Парсинг цветовых кодов
      • Отправка сообщений игрокам
      • Requirements: 1.2, 1.3, 1.4, 5.4, 6.1, 6.2, 6.3
  • 9. Интеграция и финализация

    • 9.1 Интегрировать все компоненты в LorepPlugin
      • Инициализация всех менеджеров в onEnable
      • Регистрация команд и листенеров
      • Корректное закрытие в onDisable
      • Requirements: 2.2, 7.1
    • 9.2 Финальный push в Git
      • Commit всех изменений
      • Push в репозиторий
      • Requirements: N/A
  • 10. Final Checkpoint - Финальная проверка

    • Ensure all tests pass, ask the user if questions arise.