- 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.
32 lines
1 KiB
Java
32 lines
1 KiB
Java
package dev.loki.loparkour.schematic.config;
|
|
|
|
import dev.loki.loparkour.config.core.Config;
|
|
import dev.loki.loparkour.schematic.core.SchematicManager;
|
|
import org.bukkit.configuration.file.YamlConfiguration;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
|
|
/**
|
|
* Writes entries to {@code schematics/schematics.yml} and reloads {@link Config#SCHEMATICS}.
|
|
*/
|
|
public final class SchematicDifficultyConfig {
|
|
|
|
private SchematicDifficultyConfig() {
|
|
}
|
|
|
|
public static void setDifficulty(@NotNull String fileStem, double difficulty) throws IOException {
|
|
final File configFile = Config.SCHEMATICS.path();
|
|
if (configFile == null) {
|
|
throw new IOException("Schematics config path is not initialized");
|
|
}
|
|
|
|
final YamlConfiguration yaml = YamlConfiguration.loadConfiguration(configFile);
|
|
final String key = SchematicManager.configKey(fileStem);
|
|
yaml.set("difficulty." + key, difficulty);
|
|
yaml.save(configFile);
|
|
|
|
Config.SCHEMATICS.load();
|
|
}
|
|
}
|