Commit graph

2 commits

Author SHA1 Message Date
02e2947f47
refactor(player): encapsulate game state behind PlayerSettings, clear VisibilityModifier and HiddenField
- ParkourUser/ParkourPlayer/GeneratorState public mutable fields -> private + short accessors
- per-player settings extracted to player/data/PlayerSettings (ParkourPlayer 188 -> 96 lines,
  PMD-counted methods 20 -> 9); this is what fixed the TooManyMethods violation that the
  encapsulation itself introduced — by decomposition, not by lowering the threshold
- disk storage reads and writes the same canonical 12-key map as the SQL JSON column;
  legacy key names normalized on read, @Expose dropped from domain classes
- 39 settings call sites rewritten across 7 files
- HiddenField backlog cleared (Config, ObstacleGenerator, GhostService, Leaderboard,
  PagedMenu, Reward, ParticleData, World)
- checkstyle ratchet: VisibilityModifier, HiddenField, EmptyLineSeparator and
  MissingDeprecated flipped to error once their counters hit zero; suppressions.xml empty
- javac -Xmaxwarns raised so NullAway/Error Prone counts are honest
  (baseline 165/289, now 164/265)

checkstyle 0 errors / 135 warnings, PMD 0 violations, tests 94/0 fail, ./gradlew check green.
TODO.md: items 30 and 107 updated, new items 167-170, ПРОГРЕСС-6/7 recorded.
2026-10-06 18:57:39 +02:00
4263df50a2
refactor: split 6 oversized packages into semantic subpackages
Structure debt list is now empty (FOLDER_DEBT = Set.of()), every folder
holds at most 4 java files:

- elytra/{mode,generator} -> elytra/core plus per-mode slices (close,
  minspeed, obstacle, speeddemon, timetrial), 2 files each
- command/schematic -> command/schematic (4) + wand/ (2)
- generator/jump: JumpType -> jump/model/, SchematicBlockPlacer ->
  jump/placement/schematic/
- player/core -> player/core (4) + PlayerSpawnSetup -> player/service (4)

18 files moved, imports/tests updated, 5 classes widened to public for
cross-package calls. No behavior change; check and build stay green.
2026-10-06 15:00:04 +02:00
Renamed from src/main/java/dev/loki/loparkour/elytra/mode/ObstacleMode.java (Browse further)