diff --git a/Forge/src/main/resources/META-INF/mods.toml b/Forge/src/main/resources/META-INF/mods.toml index 8362536..cd9854b 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/Forge/src/main/resources/META-INF/mods.toml @@ -1,15 +1,15 @@ modLoader = "javafml" loaderVersion = "[0,)" -authors = "${author}" license = "${license}" issueTrackerURL = "${issuesURL}" [[mods]] modId = "${id}" -version = "${version}" displayName = "${name}" description = "${description}" +authors = "${author}" +version = "${version}" logoFile = "icon.png" [[dependencies.${id}]] diff --git a/src/main/java/chylex/bettercontrols/config/Json.java b/src/main/java/chylex/bettercontrols/config/Json.java index 739a0ce..ce70d93 100644 --- a/src/main/java/chylex/bettercontrols/config/Json.java +++ b/src/main/java/chylex/bettercontrols/config/Json.java @@ -24,10 +24,12 @@ final class Json { return obj.has(key) ? obj.get(key).getAsBoolean() : defaultValue; } + @SuppressWarnings("SameParameterValue") static <T extends Enum<T>> void setEnum(final JsonObject obj, final String key, final T value) { obj.addProperty(key, value.name()); } + @SuppressWarnings("SameParameterValue") static <T extends Enum<T>> T getEnum(final JsonObject obj, final String key, final T defaultValue, final Class<T> enumClass) { if (!obj.has(key)) { return defaultValue; diff --git a/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java b/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java index 77ed475..28edf89 100644 --- a/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java +++ b/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java @@ -8,6 +8,7 @@ import chylex.bettercontrols.gui.elements.TextWidget; import chylex.bettercontrols.input.KeyBindingWithModifier; import chylex.bettercontrols.input.ModifierKey; import chylex.bettercontrols.input.SprintMode; +import com.google.common.collect.ImmutableList; import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.vertex.PoseStack; import it.unimi.dsi.fastutil.booleans.BooleanConsumer; @@ -88,7 +89,7 @@ public class BetterControlsScreen extends OptionsSubScreen { private int generateFlightOptions(int y, final List<GuiEventListener> elements) { final BetterControlsConfig cfg = BetterControlsCommon.getConfig(); - final List<Option<Float>> flightSpeedOptions = Arrays.asList( + final ImmutableList<Option<Float>> flightSpeedOptions = ImmutableList.of( new Option<>(Float.valueOf(0.25F), text("0.25x")), new Option<>(Float.valueOf(0.50F), text("0.5x")), new Option<>(Float.valueOf(0.75F), text("0.75x")), @@ -103,7 +104,7 @@ public class BetterControlsScreen extends OptionsSubScreen { new Option<>(Float.valueOf(8.00F), text("8x")) ); - final List<Option<Float>> flightVerticalBoostOptions = Arrays.asList( + final ImmutableList<Option<Float>> flightVerticalBoostOptions = ImmutableList.of( new Option<>(Float.valueOf(0.00F), text("None")), new Option<>(Float.valueOf(0.25F), text("+25%")), new Option<>(Float.valueOf(0.50F), text("+50%")), @@ -219,6 +220,7 @@ public class BetterControlsScreen extends OptionsSubScreen { private KeyBindingWidget editingKeyBinding; private final List<KeyBindingWidget> allKeyBindings = new ArrayList<>(); + @SuppressWarnings("DataFlowIssue") public BetterControlsScreen(@Nullable final Screen parentScreen) { super(parentScreen, Minecraft.getInstance().options, TITLE); } @@ -242,7 +244,9 @@ public class BetterControlsScreen extends OptionsSubScreen { elements.add(new TextWidget(0, y, ROW_WIDTH, ROW_HEIGHT, text("Miscellaneous"), CENTER)); y = generateMiscellaneousOptions(y + ROW_HEIGHT, elements) + TITLE_MARGIN_TOP; + //noinspection DataFlowIssue addRenderableWidget(Button.builder(CommonComponents.GUI_DONE, btn -> minecraft.setScreen(lastScreen)).pos(width / 2 - 99, height - 29).size(200, 20).build()); + addWidget(optionsWidget = new OptionListWidget(21, height - 32, width, height, elements, y - TITLE_MARGIN_TOP + BOTTOM_PADDING)); } diff --git a/src/main/java/chylex/bettercontrols/gui/elements/DiscreteValueSliderWidget.java b/src/main/java/chylex/bettercontrols/gui/elements/DiscreteValueSliderWidget.java index bb926e4..36cd71c 100644 --- a/src/main/java/chylex/bettercontrols/gui/elements/DiscreteValueSliderWidget.java +++ b/src/main/java/chylex/bettercontrols/gui/elements/DiscreteValueSliderWidget.java @@ -1,19 +1,19 @@ package chylex.bettercontrols.gui.elements; +import com.google.common.collect.ImmutableList; import net.minecraft.client.gui.components.AbstractSliderButton; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; import net.minecraft.util.Mth; import org.jetbrains.annotations.NotNull; -import java.util.List; import java.util.function.Consumer; public final class DiscreteValueSliderWidget<T> extends AbstractSliderButton { private final Component narration; - private final List<Option<T>> options; + private final ImmutableList<Option<T>> options; private final Consumer<T> onChanged; private T selectedValue; - public DiscreteValueSliderWidget(final int x, final int y, final int width, final int height, final Component narration, final List<Option<T>> options, final T selectedValue, final Consumer<T> onChanged) { + public DiscreteValueSliderWidget(final int x, final int y, final int width, final int height, final Component narration, final ImmutableList<Option<T>> options, final T selectedValue, final Consumer<T> onChanged) { super(x, y, width, height, Option.find(options, selectedValue).text(), options.indexOf(Option.find(options, selectedValue)) / (options.size() - 1.0)); this.narration = narration; this.options = options; @@ -21,7 +21,7 @@ public final class DiscreteValueSliderWidget<T> extends AbstractSliderButton { this.onChanged = onChanged; } - public DiscreteValueSliderWidget(final int x, final int y, final int width, final Component narration, final List<Option<T>> options, final T selectedValue, final Consumer<T> onChanged) { + public DiscreteValueSliderWidget(final int x, final int y, final int width, final Component narration, final ImmutableList<Option<T>> options, final T selectedValue, final Consumer<T> onChanged) { this(x, y, width, 20, narration, options, selectedValue, onChanged); } diff --git a/src/main/java/chylex/bettercontrols/player/PlayerTicker.java b/src/main/java/chylex/bettercontrols/player/PlayerTicker.java index fd641c9..840c415 100644 --- a/src/main/java/chylex/bettercontrols/player/PlayerTicker.java +++ b/src/main/java/chylex/bettercontrols/player/PlayerTicker.java @@ -149,6 +149,7 @@ public final class PlayerTicker { public void afterInputAssignsPressingForward(final Input input) { if (MINECRAFT.screen == null) { + //noinspection NonShortCircuitBooleanExpression input.up |= toggleWalkForward.tick(); } } @@ -157,6 +158,7 @@ public final class PlayerTicker { final Input input = player.input; if (MINECRAFT.screen == null && !player.getAbilities().flying) { + //noinspection NonShortCircuitBooleanExpression input.jumping |= toggleJump.tick(); }