Skip to content

Commit 1e6ea16

Browse files
committed
Add full number range validation
1 parent ad614b8 commit 1e6ea16

File tree

2 files changed

+53
-17
lines changed

2 files changed

+53
-17
lines changed

common/src/main/java/dev/terminalmc/clientsort/config/Config.java

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ public static Options options() {
4646

4747
public static class Options {
4848
// General
49+
public static final int interactionRateMin = 1;
50+
public static final int interactionRateMax = 100;
4951
public static final int interactionRateServerDefault = 10;
5052
public int interactionRateServer = interactionRateServerDefault;
5153

@@ -54,10 +56,6 @@ public static class Options {
5456

5557
public static final HotbarMode hotbarModeDefault = HotbarMode.HARD;
5658
public HotbarMode hotbarMode = hotbarModeDefault;
57-
58-
public static final ExtraSlotMode extraSlotModeDefault = ExtraSlotMode.NONE;
59-
public ExtraSlotMode extraSlotMode = extraSlotModeDefault;
60-
6159
public enum HotbarMode {
6260
NONE,
6361
HARD,
@@ -72,6 +70,8 @@ public String lowerName() {
7270
}
7371
}
7472

73+
public static final ExtraSlotMode extraSlotModeDefault = ExtraSlotMode.NONE;
74+
public ExtraSlotMode extraSlotMode = extraSlotModeDefault;
7575
public enum ExtraSlotMode {
7676
NONE,
7777
HOTBAR,
@@ -119,13 +119,17 @@ public String lowerName() {
119119

120120
public static final int soundRateDefault = 1;
121121
public int soundRate = soundRateDefault;
122-
122+
123+
public static final float soundPitchMin = 0.5F;
124+
public static final float soundPitchMax = 2.0F;
123125
public static final float soundMinPitchDefault = 0.5F;
124126
public float soundMinPitch = soundMinPitchDefault;
125127

126128
public static final float soundMaxPitchDefault = 2.0F;
127129
public float soundMaxPitch = soundMaxPitchDefault;
128-
130+
131+
public static final float soundVolumeMin = 0.0F;
132+
public static final float soundVolumeMax = 1.0F;
129133
public static final float soundVolumeDefault = 0.2F;
130134
public float soundVolume = soundVolumeDefault;
131135

@@ -136,7 +140,39 @@ public String lowerName() {
136140
// Cleanup
137141

138142
private void cleanup() {
139-
// Called before config is saved
143+
// interactionRateServer
144+
if (options.interactionRateServer < Options.interactionRateMin)
145+
options.interactionRateServer = Options.interactionRateMin;
146+
if (options.interactionRateServer > Options.interactionRateMax)
147+
options.interactionRateServer = Options.interactionRateMax;
148+
// interactionRateClient
149+
if (options.interactionRateClient < Options.interactionRateMin)
150+
options.interactionRateClient = Options.interactionRateMin;
151+
if (options.interactionRateClient > Options.interactionRateMax)
152+
options.interactionRateClient = Options.interactionRateMax;
153+
// soundRate
154+
if (options.soundRate < Options.interactionRateMin)
155+
options.soundRate = Options.interactionRateMin;
156+
if (options.soundRate > Options.interactionRateMax)
157+
options.soundRate = Options.interactionRateMax;
158+
// soundMinPitch
159+
if (options.soundMinPitch < Options.soundPitchMin)
160+
options.soundMinPitch = Options.soundPitchMin;
161+
if (options.soundMinPitch > Options.soundPitchMax)
162+
options.soundMinPitch = Options.soundPitchMax;
163+
// soundMaxPitch
164+
if (options.soundMaxPitch < Options.soundPitchMin)
165+
options.soundMaxPitch = Options.soundPitchMin;
166+
if (options.soundMaxPitch > Options.soundPitchMax)
167+
options.soundMaxPitch = Options.soundPitchMax;
168+
// also validate against min pitch
169+
if (options.soundMaxPitch < options.soundMinPitch)
170+
options.soundMaxPitch = options.soundMinPitch;
171+
// soundVolume
172+
if (options.soundVolume < Options.soundVolumeMin)
173+
options.soundVolume = Options.soundVolumeMin;
174+
if (options.soundVolume > Options.soundVolumeMax)
175+
options.soundVolume = Options.soundVolumeMax;
140176
}
141177

142178
// Instance management

common/src/main/java/dev/terminalmc/clientsort/gui/screen/ClothScreenProvider.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ static Screen getConfigScreen(Screen parent) {
5555
options.interactionRateServer)
5656
.setTooltip(localized("option", "interactionRate.tooltip"))
5757
.setErrorSupplier(val -> {
58-
if (val < 1) return Optional.of(
58+
if (val < Config.Options.interactionRateMin) return Optional.of(
5959
localized("option", "error.low"));
60-
else if (val > 100) return Optional.of(
60+
else if (val > Config.Options.interactionRateMax) return Optional.of(
6161
localized("option", "error.high"));
6262
else return Optional.empty();
6363
})
@@ -69,9 +69,9 @@ else if (val > 100) return Optional.of(
6969
options.interactionRateClient)
7070
.setTooltip(localized("option", "interactionRate.tooltip"))
7171
.setErrorSupplier(val -> {
72-
if (val < 1) return Optional.of(
72+
if (val < Config.Options.interactionRateMin) return Optional.of(
7373
localized("option", "error.low"));
74-
else if (val > 100) return Optional.of(
74+
else if (val > Config.Options.interactionRateMax) return Optional.of(
7575
localized("option", "error.high"));
7676
else return Optional.empty();
7777
})
@@ -173,9 +173,9 @@ else if (val > 100) return Optional.of(
173173
options.soundRate)
174174
.setTooltip(localized("option", "soundRate.tooltip"))
175175
.setErrorSupplier(val -> {
176-
if (val < 1) return Optional.of(
176+
if (val < Config.Options.interactionRateMin) return Optional.of(
177177
localized("option", "error.low"));
178-
else if (val > 100) return Optional.of(
178+
else if (val > Config.Options.interactionRateMax) return Optional.of(
179179
localized("option", "error.high"));
180180
else return Optional.empty();
181181
})
@@ -187,7 +187,7 @@ else if (val > 100) return Optional.of(
187187
options.soundMinPitch)
188188
.setTooltip(localized("option", "soundMinPitch.tooltip"))
189189
.setErrorSupplier(val -> {
190-
if (val < 0.5) return Optional.of(
190+
if (val < Config.Options.soundPitchMin) return Optional.of(
191191
localized("option", "error.low"));
192192
else if (val > options.soundMaxPitch) return Optional.of(
193193
localized("option", "error.high"));
@@ -203,7 +203,7 @@ else if (val > options.soundMaxPitch) return Optional.of(
203203
.setErrorSupplier(val -> {
204204
if (val < options.soundMinPitch) return Optional.of(
205205
localized("option", "error.low"));
206-
else if (val > 2) return Optional.of(
206+
else if (val > Config.Options.soundPitchMax) return Optional.of(
207207
localized("option", "error.high"));
208208
else return Optional.empty();
209209
})
@@ -214,9 +214,9 @@ else if (val > 2) return Optional.of(
214214
sound.addEntry(eb.startFloatField(localized("option", "soundVolume"),
215215
options.soundVolume)
216216
.setErrorSupplier(val -> {
217-
if (val < 0.0F) return Optional.of(
217+
if (val < Config.Options.soundVolumeMin) return Optional.of(
218218
localized("option", "error.low"));
219-
else if (val > 1.0F) return Optional.of(
219+
else if (val > Config.Options.soundVolumeMax) return Optional.of(
220220
localized("option", "error.high"));
221221
else return Optional.empty();
222222
})

0 commit comments

Comments
 (0)