refactor: decompose god-classes, add lint gates, restructure packages

- Decompose all 11 god-classes (>200 lines) into facade + collaborators
  (command/, schematic/, config/, generator/, mode/, papi/, adaptive/,
  storage/, player/, leaderboard/) — every file is now <=200 lines
- Add PMD 7 (report-only) + stricter checkstyle rules (NPath, IllegalCatch,
  NestedDepth, Whitespace, MissingOverride); fix real bugs found
  (printStackTrace, resource leaks in ConfigLoader/SQLStatsStorage)
- docs/ARCHITECTURE.md: target structure + 'one folder = one purpose' rule
- Pilot restructure: command/core|util/, mode/impl/solo|multi|barrier/,
  hook/papi/resolver/; cross-package classes made public
- TODO.md: track warning cleanup (132-138) + restructure progress
This commit is contained in:
loki5512344 2026-08-05 18:33:21 +02:00
parent 1d57972038
commit 81788e71ed
Signed by: boba
GPG key ID: 253067914055423B
70 changed files with 3428 additions and 1701 deletions

View file

@ -0,0 +1,23 @@
package dev.loki.loparkour.hook.papi;
import dev.loki.loparkour.hook.papi.resolver.GlobalPlaceholderResolver;
import dev.loki.loparkour.hook.papi.resolver.PlayerPlaceholderResolver;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
class PlaceholderDispatcher {
private final GlobalPlaceholderResolver globalResolver = new GlobalPlaceholderResolver();
private final PlayerPlaceholderResolver playerResolver = new PlayerPlaceholderResolver();
String dispatch(Player player, @NotNull String params) {
String resolved = globalResolver.resolve(params);
if (resolved != null) {
return resolved;
}
if (player == null) {
return "player doesn't exist";
}
return playerResolver.resolve(player, params);
}
}