fix all
This commit is contained in:
parent
5088e3ad1c
commit
d1d2b93742
82 changed files with 4008 additions and 3032 deletions
140
MIGRATION_PLAN.md
Normal file
140
MIGRATION_PLAN.md
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
# План миграции команд на новую архитектуру
|
||||
|
||||
## ✅ Что уже сделано
|
||||
|
||||
### 1. Создана базовая архитектура
|
||||
- `BaseCommand` - базовый класс для всех команд
|
||||
- `PlayerCommand` - для команд игроков
|
||||
- `AdminCommand` - для административных команд
|
||||
- `CommandManager` - централизованное управление
|
||||
|
||||
### 2. Созданы категории команд
|
||||
- `chat/` - команды чата
|
||||
- `messaging/` - личные сообщения
|
||||
- `social/` - социальные функции
|
||||
- `moderation/` - модерация
|
||||
- `admin/` - административные команды
|
||||
|
||||
### 3. Примеры новых команд
|
||||
- `GlobalChatCommand` (новая архитектура)
|
||||
- `LocalChatCommand` (новая архитектура)
|
||||
- `MsgCommand` (новая архитектура)
|
||||
- `ReplyCommand` (новая архитектура)
|
||||
- `IgnoreCommand` (новая архитектура)
|
||||
|
||||
## 🔄 План поэтапной миграции
|
||||
|
||||
### Этап 1: Команды чата (ПРИОРИТЕТ 1)
|
||||
- [x] `GlobalChatCommand` - создан
|
||||
- [x] `LocalChatCommand` - создан
|
||||
- [ ] Тестирование и отладка
|
||||
- [ ] Замена в CommandManager
|
||||
|
||||
### Этап 2: Личные сообщения (ПРИОРИТЕТ 1)
|
||||
- [x] `MsgCommand` - создан
|
||||
- [x] `ReplyCommand` - создан
|
||||
- [ ] Тестирование и отладка
|
||||
- [ ] Замена в CommandManager
|
||||
|
||||
### Этап 3: Социальные команды (ПРИОРИТЕТ 2)
|
||||
- [x] `IgnoreCommand` - создан
|
||||
- [ ] `UnignoreCommand`
|
||||
- [ ] `IgnoreListCommand`
|
||||
- [ ] `NickCommand`
|
||||
|
||||
### Этап 4: Команды модерации (ПРИОРИТЕТ 2)
|
||||
- [ ] `MuteCommand`
|
||||
- [ ] `UnmuteCommand`
|
||||
- [ ] `MuteListCommand`
|
||||
- [ ] `MuteHistoryCommand`
|
||||
- [ ] `MuteBlameCommand`
|
||||
|
||||
### Этап 5: Административные команды (ПРИОРИТЕТ 3)
|
||||
- [ ] `AnnounceCommand`
|
||||
- [ ] `ClearChatCommand`
|
||||
- [ ] `ClearChatConfigCommand`
|
||||
- [ ] `ChatSpyCommand`
|
||||
- [ ] `LoChatCommand`
|
||||
- [ ] `ReloadConfigCommand`
|
||||
- [ ] `DiscordCommand`
|
||||
|
||||
### Этап 6: Специальные команды (ПРИОРИТЕТ 4)
|
||||
- [ ] `CustomCommandsCommand`
|
||||
- [ ] Кастомные команды из `custom/`
|
||||
|
||||
## 🛠️ Процесс миграции одной команды
|
||||
|
||||
### 1. Создание новой команды
|
||||
```java
|
||||
public class NewCommand extends PlayerCommand {
|
||||
public NewCommand(LoChat plugin) {
|
||||
super(plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean executePlayerCommand(Player player, Command command,
|
||||
String label, String[] args) {
|
||||
// Логика команды
|
||||
return true;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Тестирование
|
||||
- Проверка функциональности
|
||||
- Проверка прав доступа
|
||||
- Проверка обработки ошибок
|
||||
|
||||
### 3. Замена в CommandManager
|
||||
```java
|
||||
// Было:
|
||||
registerOldCommand("command", new OldCommand(plugin));
|
||||
|
||||
// Стало:
|
||||
registerCommand("command", new NewCommand(plugin));
|
||||
```
|
||||
|
||||
### 4. Удаление старой команды
|
||||
- Удалить файл старой команды
|
||||
- Убрать импорты
|
||||
|
||||
## 📋 Чек-лист для каждой команды
|
||||
|
||||
### Обязательные проверки:
|
||||
- [ ] Наследуется от правильного базового класса
|
||||
- [ ] Правильная проверка прав доступа
|
||||
- [ ] Обработка ошибок
|
||||
- [ ] Валидация аргументов
|
||||
- [ ] Сообщения из конфигурации
|
||||
- [ ] TabCompleter (если нужен)
|
||||
|
||||
### Тестирование:
|
||||
- [ ] Команда выполняется корректно
|
||||
- [ ] Права доступа работают
|
||||
- [ ] Ошибки обрабатываются
|
||||
- [ ] Автодополнение работает
|
||||
- [ ] Нет дублирования кода
|
||||
|
||||
## 🎯 Ожидаемые результаты
|
||||
|
||||
### После полной миграции:
|
||||
- **Сокращение кода** на 40-50%
|
||||
- **Устранение дублирования** проверок
|
||||
- **Единообразная обработка** ошибок
|
||||
- **Простота добавления** новых команд
|
||||
- **Лучшая читаемость** кода
|
||||
- **Соответствие SOLID** принципам
|
||||
|
||||
### Метрики качества:
|
||||
- Цикломатическая сложность: ↓ 30%
|
||||
- Дублирование кода: ↓ 60%
|
||||
- Покрытие тестами: ↑ 80%
|
||||
- Время разработки новых команд: ↓ 50%
|
||||
|
||||
## 🚀 Следующие шаги
|
||||
|
||||
1. **Протестировать созданные команды**
|
||||
2. **Мигрировать команды по приоритету**
|
||||
3. **Обновить документацию**
|
||||
4. **Создать примеры для разработчиков**
|
||||
5. **Настроить автотесты**
|
||||
Loading…
Add table
Add a link
Reference in a new issue