Skip to content

Commit 57b3445

Browse files
committed
registry item value fallback for null
1 parent f624f11 commit 57b3445

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

src/main/java/meteordevelopment/meteorclient/settings/AbstractRegistryItemSetting.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@
99
import net.minecraft.registry.Registry;
1010
import net.minecraft.util.Identifier;
1111

12+
import javax.annotation.Nullable;
1213
import java.util.function.Consumer;
1314
import java.util.function.Predicate;
1415

1516
public abstract class AbstractRegistryItemSetting<V> extends Setting<V> {
16-
public final Predicate<V> filter;
17+
public final @Nullable Predicate<V> filter;
1718
public final Registry<V> registry;
1819

19-
protected AbstractRegistryItemSetting(String name, String description, V defaultValue, Consumer<V> onChanged, Consumer<Setting<V>> onModuleActivated, IVisible visible, Predicate<V> filter, Registry<V> registry) {
20+
protected AbstractRegistryItemSetting(String name, String description, V defaultValue, Consumer<V> onChanged, Consumer<Setting<V>> onModuleActivated, IVisible visible, @Nullable Predicate<V> filter, Registry<V> registry) {
2021
super(name, description, defaultValue, onChanged, onModuleActivated, visible);
2122

2223
this.filter = filter;
@@ -47,15 +48,14 @@ protected final NbtCompound save(NbtCompound tag) {
4748

4849
@Override
4950
protected final V load(NbtCompound tag) {
50-
value = registry.get(Identifier.of(tag.getString("value", "")));
51-
52-
if (filter != null && !filter.test(value)) {
53-
for (V t : registry) {
54-
if (filter.test(t)) {
55-
value = t;
56-
break;
57-
}
58-
}
51+
V value = registry.get(Identifier.of(tag.getString("value", "")));
52+
53+
if (value == null) {
54+
resetImpl();
55+
} else if (filter != null && !filter.test(value)) {
56+
resetImpl();
57+
} else {
58+
this.value = value;
5959
}
6060

6161
return get();

src/main/java/meteordevelopment/meteorclient/settings/AbstractRegistryListSetting.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import net.minecraft.registry.Registry;
1313
import net.minecraft.util.Identifier;
1414
import org.apache.commons.lang3.StringUtils;
15+
import org.jetbrains.annotations.Nullable;
1516

1617
import java.util.ArrayList;
1718
import java.util.Collection;
@@ -20,10 +21,10 @@
2021
import java.util.function.Predicate;
2122

2223
public abstract class AbstractRegistryListSetting<C extends Collection<V>, V> extends Setting<C> {
23-
public final Predicate<V> filter;
24+
public final @Nullable Predicate<V> filter;
2425
public final Registry<V> registry;
2526

26-
protected AbstractRegistryListSetting(String name, String description, C defaultValue, Consumer<C> onChanged, Consumer<Setting<C>> onModuleActivated, IVisible visible, Predicate<V> filter, Registry<V> registry) {
27+
protected AbstractRegistryListSetting(String name, String description, C defaultValue, Consumer<C> onChanged, Consumer<Setting<C>> onModuleActivated, IVisible visible, @Nullable Predicate<V> filter, Registry<V> registry) {
2728
super(name, description, defaultValue, onChanged, onModuleActivated, visible);
2829
this.filter = filter;
2930
this.registry = registry;

0 commit comments

Comments
 (0)