refactor: apply 'one folder = one purpose' rule to overflowed packages
- Split by sub-purpose: storage/sql -> schema/+query/+repo/, adaptive/core -> calc/+metrics/+model/, command/admin -> ops/+support/, api/event -> session/+score/+generation/, menu/core -> screen/, config/core -> merge/, config/options -> section/, player/service -> ui/, hook/papi -> resolver/ (done), mode/impl -> solo/+multi/+barrier/ (done) - Move util/gui migration stubs -> menu/gui; lpschem POJOs -> pojo/ - Cross-package classes made public (signatures unchanged); fixed imports - docs/ARCHITECTURE.md + TODO.md updated - Build green: checkstyle 0 errors, PMD 34
This commit is contained in:
parent
81788e71ed
commit
de47bce56e
88 changed files with 228 additions and 167 deletions
|
|
@ -140,20 +140,35 @@ dev.loki.loparkour
|
|||
└── util/ # Общие утилиты: gui/, item/, misc/, particle/, text/, world/
|
||||
```
|
||||
|
||||
### Текущее состояние (после пилотной реструктуризации)
|
||||
### Текущее состояние (после реструктуризации)
|
||||
|
||||
Правило «одна папка = одна цель» применено к 3 пилотным областям (остальные — в работе):
|
||||
Правило «одна папка = одна цель» применено к переполненным пакетам:
|
||||
|
||||
- **`command/`** — `core/` (LoParkourCommand, CommandRouter, CommandTabCompleter — вход/роутинг/табы),
|
||||
`player/` (PlayerCommandHandler, JoinCommandExecutor, LeaderboardCommandExecutor),
|
||||
`util/` (CommandUtil), `admin/`, `schematic/`.
|
||||
`util/` (CommandUtil), `player/` (PlayerCommandHandler, Join, Leaderboard), `admin/` (`ops/` — Force*/Reset/
|
||||
RecoverInventory, `support/` — TargetResolver, Responses), `schematic/` (одна цель — схематик-команды).
|
||||
- **`mode/impl/`** — `solo/` (DefaultMode, SpeedrunMode, GravityShiftMode), `multi/` (CoopMode, RaceMode,
|
||||
SpectatorMode), `barrier/` (InvisibleBarrierMode, BarrierGenerator, BarrierRenderer).
|
||||
- **`hook/papi/`** — `PAPIHook`+`PlaceholderDispatcher` (вход/диспатч), `resolver/` (Global/Player/ScoreRank
|
||||
резолверы + PlaceholderFormatters).
|
||||
- **`storage/sql/`** — корень (StorageSQL, SQLConnectionManager, SQLDataMapper), `schema/` (SQLSchemaManager,
|
||||
SQLMigrationManager), `query/` (SQLQueryBuilder, SQLQueryExecutor), `repo/` (SQLPlayerRepository,
|
||||
SQLScoreRepository).
|
||||
- **`adaptive/core/`** — корень (AdaptiveDifficulty, MetricsCollector), `calc/` (DifficultyCalculator/
|
||||
Adjuster/SkillAnalyzer), `metrics/` (MetricEventCollector, MetricsCacheStore, JumpTimingTracker), `model/`
|
||||
(DifficultyWeights).
|
||||
- **`api/event/`** — `session/` (Join/Leave/Spectate), `score/` (Score/Fall), `generation/` (Block/Schematic).
|
||||
- **`config/core/`** — корень (Config, ConfigLoader, ConfigAccessor), `merge/` (ConfigUpdater,
|
||||
ConfigMergeParser, ConfigMergeProcessor).
|
||||
- **`config/options/`** — корень (Option, OptionGeneral), `section/` (Generation/Particles/SQL/Styles).
|
||||
- **`player/service/`** — корень (UserRegistry, PlayerSettingsManager, BungeeUtil), `ui/` (ParkourHotbar,
|
||||
ScoreboardManager).
|
||||
- **`menu/core/`** — корень (LPMenu, Menus, MenuStub), `screen/` (MainMenu, DynamicMenu, ParkourOption);
|
||||
`util/gui/` переехали в **`menu/gui/`** (GUI migration-стабы).
|
||||
- **`schematic/legacy/lpschem/`** — `LPSchematicLegacy` + `pojo/` (5 Gson-моделей).
|
||||
|
||||
Пересекающие пакеты классы стали `public` (JoinCommandExecutor, LeaderboardCommandExecutor, CommandUtil,
|
||||
резолверы) — сигнатуры методов не менялись, только видимость.
|
||||
Пересекающие пакеты классы стали `public` (сигнатуры методов не менялись, только видимость). Оставшиеся
|
||||
папки с 4–6 файлами — цельные по смыслу (jump-расчёты, block-placement, player-core, pojo и т.п.) — не дробятся.
|
||||
|
||||
## Карта миграции
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue