Initial project setup with Gradle

This commit is contained in:
Loki 2025-12-19 12:07:40 +01:00
commit 0a7b382cdb
6 changed files with 622 additions and 0 deletions

View file

@ -0,0 +1,121 @@
# Implementation Plan
- [-] 1. Настройка проекта и Git
- [x] 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.