mirror of
https://github.com/chylex/Better-Controls.git
synced 2025-04-21 15:15:46 +02:00
Save configuration file after migrating legacy options
This commit is contained in:
parent
b720769df2
commit
e53d76d158
src/main/java/chylex/bettercontrols/config
@ -6,10 +6,18 @@ import java.nio.file.Path;
|
||||
|
||||
public final class BetterControlsConfig {
|
||||
public static BetterControlsConfig load(final Path path) {
|
||||
return ConfigSerializer.deserialize(path).setPath(path);
|
||||
final BetterControlsConfig cfg = ConfigSerializer.read(path);
|
||||
cfg.path = path;
|
||||
|
||||
if (cfg.wasMigrated) {
|
||||
cfg.save();
|
||||
}
|
||||
|
||||
return cfg;
|
||||
}
|
||||
|
||||
private Path path;
|
||||
boolean wasMigrated = false;
|
||||
|
||||
public final KeyBindingWithModifier keyToggleSprint = new KeyBindingWithModifier("key.bettercontrols.toggle_sprint");
|
||||
public SprintMode sprintMode = SprintMode.TAP_TO_START;
|
||||
@ -40,11 +48,6 @@ public final class BetterControlsConfig {
|
||||
|
||||
BetterControlsConfig() {}
|
||||
|
||||
private BetterControlsConfig setPath(final Path path) {
|
||||
this.path = path;
|
||||
return this;
|
||||
}
|
||||
|
||||
public KeyBindingWithModifier[] getAllKeyBindings() {
|
||||
return new KeyBindingWithModifier[] {
|
||||
keyToggleSprint,
|
||||
@ -58,6 +61,6 @@ public final class BetterControlsConfig {
|
||||
}
|
||||
|
||||
public void save() {
|
||||
ConfigSerializer.serialize(path, this);
|
||||
ConfigSerializer.write(path, this);
|
||||
}
|
||||
}
|
||||
|
@ -89,10 +89,10 @@ final class ConfigSerializer implements JsonSerializer<BetterControlsConfig>, Js
|
||||
cfg.flightHorizontalSpeedMpCreativeSprinting = readHorizontalSpeedMultiplier(obj, "Flight.SpeedMp.Creative.Sprinting", cfg.flightHorizontalSpeedMpCreativeSprinting);
|
||||
cfg.flightHorizontalSpeedMpSpectatorDefault = readHorizontalSpeedMultiplier(obj, "Flight.SpeedMp.Spectator.Default", cfg.flightHorizontalSpeedMpSpectatorDefault);
|
||||
cfg.flightHorizontalSpeedMpSpectatorSprinting = readHorizontalSpeedMultiplier(obj, "Flight.SpeedMp.Spectator.Sprinting", cfg.flightHorizontalSpeedMpSpectatorSprinting);
|
||||
cfg.flightVerticalSpeedMpCreativeDefault = readVerticalSpeedMultiplier(obj, "Flight.VerticalSpeedMp.Creative.Default", "Flight.VerticalBoost.Creative.Default", cfg.flightVerticalSpeedMpCreativeDefault);
|
||||
cfg.flightVerticalSpeedMpCreativeSprinting = readVerticalSpeedMultiplier(obj, "Flight.VerticalSpeedMp.Creative.Sprinting", "Flight.VerticalBoost.Creative.Sprinting", cfg.flightVerticalSpeedMpCreativeSprinting);
|
||||
cfg.flightVerticalSpeedMpSpectatorDefault = readVerticalSpeedMultiplier(obj, "Flight.VerticalSpeedMp.Spectator.Default", "Flight.VerticalBoost.Spectator.Default", cfg.flightVerticalSpeedMpSpectatorDefault);
|
||||
cfg.flightVerticalSpeedMpSpectatorSprinting = readVerticalSpeedMultiplier(obj, "Flight.VerticalSpeedMp.Spectator.Sprinting", "Flight.VerticalBoost.Spectator.Sprinting", cfg.flightVerticalSpeedMpSpectatorSprinting);
|
||||
cfg.flightVerticalSpeedMpCreativeDefault = readVerticalSpeedMultiplier(obj, cfg, "Flight.VerticalSpeedMp.Creative.Default", "Flight.VerticalBoost.Creative.Default", cfg.flightVerticalSpeedMpCreativeDefault);
|
||||
cfg.flightVerticalSpeedMpCreativeSprinting = readVerticalSpeedMultiplier(obj, cfg, "Flight.VerticalSpeedMp.Creative.Sprinting", "Flight.VerticalBoost.Creative.Sprinting", cfg.flightVerticalSpeedMpCreativeSprinting);
|
||||
cfg.flightVerticalSpeedMpSpectatorDefault = readVerticalSpeedMultiplier(obj, cfg, "Flight.VerticalSpeedMp.Spectator.Default", "Flight.VerticalBoost.Spectator.Default", cfg.flightVerticalSpeedMpSpectatorDefault);
|
||||
cfg.flightVerticalSpeedMpSpectatorSprinting = readVerticalSpeedMultiplier(obj, cfg, "Flight.VerticalSpeedMp.Spectator.Sprinting", "Flight.VerticalBoost.Spectator.Sprinting", cfg.flightVerticalSpeedMpSpectatorSprinting);
|
||||
|
||||
Json.readKeyBinding(obj, "Misc.KeyToggleWalkForward", cfg.keyToggleWalkForward);
|
||||
Json.readKeyBinding(obj, "Misc.KeyToggleJump", cfg.keyToggleJump);
|
||||
@ -106,11 +106,13 @@ final class ConfigSerializer implements JsonSerializer<BetterControlsConfig>, Js
|
||||
return Json.getFloat(obj, key, defaultValue, 0.25F, 8F);
|
||||
}
|
||||
|
||||
private static float readVerticalSpeedMultiplier(final JsonObject obj, final String newKey, final String legacyBoostKey, final float defaultValue) {
|
||||
private static float readVerticalSpeedMultiplier(final JsonObject obj, final BetterControlsConfig cfg, final String newKey, final String legacyBoostKey, final float defaultValue) {
|
||||
if (obj.has(newKey)) {
|
||||
return Json.getFloat(obj, newKey, defaultValue, 0.25F, 8F);
|
||||
}
|
||||
else if (obj.has(legacyBoostKey)) {
|
||||
cfg.wasMigrated = true;
|
||||
|
||||
final float value = 1F + Json.getFloat(obj, legacyBoostKey, 0F, 0F, 3F);
|
||||
// 1.25x, 1.75x, 2.5x, and 3.5x are not supported
|
||||
if (Mth.equal(value, 1.25F) || Mth.equal(value, 1.75F)) {
|
||||
@ -131,7 +133,7 @@ final class ConfigSerializer implements JsonSerializer<BetterControlsConfig>, Js
|
||||
}
|
||||
}
|
||||
|
||||
static void serialize(final Path path, final BetterControlsConfig config) {
|
||||
static void write(final Path path, final BetterControlsConfig config) {
|
||||
try (final JsonWriter writer = gson.newJsonWriter(Files.newBufferedWriter(path, StandardCharsets.UTF_8))) {
|
||||
gson.getAdapter(BetterControlsConfig.class).write(writer, config);
|
||||
} catch (final IOException e) {
|
||||
@ -139,7 +141,7 @@ final class ConfigSerializer implements JsonSerializer<BetterControlsConfig>, Js
|
||||
}
|
||||
}
|
||||
|
||||
static BetterControlsConfig deserialize(final Path path) {
|
||||
static BetterControlsConfig read(final Path path) {
|
||||
try (final JsonReader jsonReader = new JsonReader(Files.newBufferedReader(path, StandardCharsets.UTF_8))) {
|
||||
return gson.getAdapter(BetterControlsConfig.class).read(jsonReader);
|
||||
} catch (final FileNotFoundException | NoSuchFileException ignored) {
|
||||
|
Loading…
Reference in New Issue
Block a user