feat: LoHub Action system + Join system implementation

This commit is contained in:
loki5512344 2026-02-23 17:27:34 +01:00
parent 69cae99476
commit 6a4c8a7886
55 changed files with 3180 additions and 1022 deletions

227
TODO.md
View file

@ -1,102 +1,167 @@
# LoChat - Статус проекта
# 🚀 Loki Plugins - TODO
## ✅ Готово
## 📦 Проекты
### Чат
- [x] Глобальный чат (`!сообщение`, `/g`)
- [x] Локальный чат (100 блоков)
- [x] PM система (`/msg`, `/reply`)
- [x] Игнор (`/ignore`, `/unignore`) — сохраняется в файл
- [x] Упоминания @ник со звуком
### 1. LoChat - Чат плагин (Paper/Folia)
**Статус:** ✅ Готов к использованию
### Модерация
- [x] Мут система (`/mute`, `/unmute`) — сохраняется в файл
- [x] Фильтр мата (censor/block/warn)
- [x] Анти-спам (CAPS, повторы, похожие)
- [x] Кулдауны на сообщения
- [x] Чат-шпион (`/chatspy`)
- [x] Очистка чата (`/clearchat`)
### Градиентные ники (LoPreff интеграция)
- [x] Команды `/color`, `/prefix`
- [x] Градиенты на ники и префиксы
- [x] Интеграция с LuckPerms
- [x] PlayerPoints поддержка
- [x] TAB плагин совместимость (`%lochat_full%`)
- [x] Админ команды `/aprefix`
### Дополнительно
- [x] Цвет чата (`/chatcolor`)
- [x] Смайлики (300+ эмодзи)
- [x] Кастомные команды
- [x] Автосообщения
### Система
- [x] Объявления (Title + ActionBar)
- [x] PlaceholderAPI интеграция
- [x] HEX цвета `&#RRGGBB` и `§x§...`
- [x] MiniMessage форматирование
- [x] Folia совместимость
- [x] Горячая перезагрузка
#### Функции
- ✅ Глобальный/локальный чат
- ✅ PM система с игнором
- ✅ Мут система с историей
- ✅ Фильтры (мат, спам, CAPS)
- ✅ Градиентные ники (LuckPerms интеграция)
- ✅ Смайлики (300+ эмодзи)
- ✅ PlaceholderAPI
- ✅ Markdown форматирование (**bold**, *italic*, ~~strike~~, `code`)
- ✅ Упоминания (@player, @everyone, @here, @role:permission)
- ✅ Фильтры URL/IP/повторов
---
## 📊 PlaceholderAPI
### 2. LoHub - Hub плагин (Paper/Folia)
**Статус:** 🔄 В разработке (21% готово)
#### ✅ Готово
- ✅ Spawn система с телепортом
- ✅ WorldGuard регионы (авто-создание)
- ✅ Защита мира (блоки, PvP, мобы)
- ✅ Команды /hub, /sethub, /lohub
- ✅ Базовые утилиты (ItemBuilder, TextUtil, PlaceholderUtil)
#### 🔄 В работе - ЭТАП 2: Action система
- [ ] Action интерфейс и ActionType enum
- [ ] MessageAction - отправка сообщений
- [ ] SoundAction - звуки
- [ ] TitleAction - title/subtitle
- [ ] CommandAction - команды от игрока
- [ ] ConsoleAction - команды от консоли
- [ ] GamemodeAction - смена режима
- [ ] EffectAction - эффекты
- [ ] ActionManager - парсинг и выполнение
#### 📋 Запланировано
**ЭТАП 3: Join система**
- [ ] PlayerJoinListener
- [ ] Телепорт на спавн при входе
- [ ] Хил и очистка эффектов
- [ ] Кастомные сообщения входа/выхода
- [ ] Интеграция с Action системой
**ЭТАП 4: Custom Join Items**
- [ ] HotbarManager
- [ ] Выдача предметов при входе
- [ ] Обработка кликов (actions)
- [ ] Защита от выбрасывания
**ЭТАП 5: Launchpad**
- [ ] LaunchpadListener
- [ ] Прыжковые площадки (плита + редстоун)
**ЭТАП 6: Double Jump**
- [ ] DoubleJumpListener
- [ ] CooldownManager
- [ ] Двойной прыжок в воздухе
**ЭТАП 7: Player Hider**
- [ ] PlayerHiderManager
- [ ] Скрытие/показ игроков
- [ ] Предмет для переключения
**ЭТАП 8-10: Опционально**
- [ ] Scoreboard модуль
- [ ] Tablist модуль
- [ ] Announcements модуль
---
### 3. LoVelocity - Velocity плагин
**Статус:** ✅ Готов
#### Функции
- ✅ Команда /hub для телепорта на lobby/hub сервер
- ✅ Кастомные сообщения
- ✅ Поддержка PlaceholderAPI
---
## 🏗️ Структура проекта
```
%lochat_muted% — замучен (true/false)
%lochat_mute_time% — время мута
%lochat_mute_reason% — причина мута
%lochat_ignored_count% — кол-во игнорируемых
%lochat_global_enabled% — глобальный чат вкл
%lochat_last_pm% — последний собеседник
%lochat_spy_enabled% — шпион режим
%lochat_full% — префикс + градиентный ник (для TAB)
%lochat_name% — только градиентный ник
%lochat_prefix% — только префикс с градиентом
%lochat_lp_prefix% — LuckPerms префикс
LoChat/ # Root проекта
├── src/main/ # LoChat (основной модуль)
│ ├── java/com/loki/lochat/
│ │ ├── api/ # API интерфейсы
│ │ ├── commands/ # Команды
│ │ ├── config/ # Конфигурация
│ │ ├── core/ # Реализации
│ │ ├── gradient/ # Градиентные ники
│ │ ├── listener/ # Слушатели событий
│ │ ├── utils/ # Утилиты
│ │ └── LoChat.java # Главный класс
│ └── resources/ # Конфиги
│
├── lohub/ # LoHub модуль
│ ├── src/main/
│ │ ├── java/com/loki/lohub/
│ │ │ ├── actions/ # Action система
│ │ │ ├── commands/ # Команды
│ │ │ ├── config/ # Конфигурация
│ │ │ ├── listeners/ # Слушатели
│ │ │ ├── managers/ # Менеджеры
│ │ │ ├── utils/ # Утилиты
│ │ │ └── LoHub.java # Главный класс
│ │ └── resources/ # Конфиги
│ └── build.gradle.kts # Gradle конфиг
│
├── lovelocity/ # LoVelocity модуль
│ ├── src/main/
│ │ └── java/com/loki/lovelocity/
│ └── build.gradle.kts # Gradle конфиг
│
├── build.gradle.kts # Root Gradle (Kotlin DSL)
├── settings.gradle.kts # Настройки проектов
└── TODO.md # Этот файл
```
---
## 📁 Файлы данных
## 🎯 Текущий фокус
- `ignores.yml` — список игнорируемых игроков
- `mutes.yml` — активные муты
- `chatcolors.yml` — цвета чата игроков
- `gradient-data.yml` — данные градиентных ников
**LoHub - ЭТАП 2: Action система**
Создание гибкой системы действий для настройки поведения через конфиг:
```yaml
actions:
- "[MESSAGE] &aПривет, %player%!"
- "[SOUND] ENTITY_PLAYER_LEVELUP"
- "[TITLE] &b&lДобро пожаловать;&fНа сервер;1;3;1"
- "[COMMAND] spawn"
- "[CONSOLE] give %player% diamond 1"
- "[GAMEMODE] survival"
- "[EFFECT] SPEED;1"
```
---
## 🔑 Права
## 📝 Правила разработки
| Право | Описание |
|-------|----------|
| chat.global.use | Глобальный чат |
| chat.global.color | Цвета в глобальном чате |
| chat.local.use | Локальный чат |
| chat.local.color | Цвета в локальном чате |
| chat.pm.use | Личные сообщения |
| chat.pm.ignore | Игнор игроков |
| chat.announce.use | Объявления |
| chat.spy | Шпион режим |
| chat.clear | Очистка чата |
| chat.mute | Мут игроков |
| chat.bypass.cooldown | Обход кулдауна |
| chat.bypass.filter | Обход фильтра |
| chat.bypass.antispam | Обход анти-спама |
| lochat.chatcolor | Цвет чата |
| gradient.color | Градиентные цвета |
| gradient.prefix | Кастомные префиксы |
| gradient.admin | Админ команды градиентов |
| lochat.admin | Админ команды плагина |
1. **Никакого русского текста в Java файлах** - только в конфигах
2. **Цвета только в формате `&#RRGGBB`** - унифицированный стиль
3. **SOLID принципы** - чистая архитектура
4. **Классы до 100-150 строк** - читаемость кода
5. **Gradle Kotlin DSL** - современный подход
6. **Без лишних MD файлов** - только TODO.md и docs/
---
## 🎯 Возможные улучшения
## 🔧 Технологии
- [ ] GUI для настройки градиентов
- [ ] Анимированные градиенты
- [ ] Больше форматов времени в муте
- [ ] Статистика сообщений
- [ ] Бэкап системы данных
- **Java 17+**
- **Paper API 1.20.1**
- **Velocity API 3.3.0**
- **Gradle 9.1+ (Kotlin DSL)**
- **WorldGuard 7.0.9**
- **PlaceholderAPI 2.11.6**
- **LuckPerms API**