Skip to content

Commit

Permalink
Fix neoforge config
Browse files Browse the repository at this point in the history
  • Loading branch information
dima-dencep committed Jul 23, 2024
1 parent f30a1fb commit ced63dc
Showing 1 changed file with 0 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,10 @@

package org.redlance.dima_dencep.mods.rrls.forge.mixins.config;

import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import com.llamalad7.mixinextras.sugar.Local;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
import net.neoforged.fml.config.ModConfig;
import net.neoforged.neoforge.client.gui.ConfigurationScreen;
import net.neoforged.neoforge.common.ModConfigSpec;
import org.redlance.dima_dencep.mods.rrls.Rrls;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
Expand All @@ -27,27 +23,11 @@
import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.function.Supplier;

@Mixin(value = ConfigurationScreen.ConfigurationSectionScreen.class, remap = false)
public abstract class ConfigurationSectionScreenMixin {
@Shadow
@Final
protected ConfigurationScreen.ConfigurationSectionScreen.Context context;

@Shadow
protected abstract ConfigurationScreen.ConfigurationSectionScreen.Element createBooleanValue(String key, ModConfigSpec.ValueSpec spec, Supplier<Boolean> source, Consumer<Boolean> target);
@Shadow
protected abstract ConfigurationScreen.ConfigurationSectionScreen.Element createIntegerValue(String key, ModConfigSpec.ValueSpec spec, Supplier<Integer> source, Consumer<Integer> target);
@Shadow
protected abstract ConfigurationScreen.ConfigurationSectionScreen.Element createLongValue(String key, ModConfigSpec.ValueSpec spec, Supplier<Long> source, Consumer<Long> target);
@Shadow
protected abstract ConfigurationScreen.ConfigurationSectionScreen.Element createDoubleValue(String key, ModConfigSpec.ValueSpec spec, Supplier<Double> source, Consumer<Double> target);
@Shadow
protected abstract ConfigurationScreen.ConfigurationSectionScreen.Element createStringValue(String key, Predicate<String> tester, Supplier<String> source, Consumer<String> target);

@Shadow
protected ConfigurationScreen.RestartType needsRestart;

Expand Down Expand Up @@ -77,26 +57,4 @@ public abstract class ConfigurationSectionScreenMixin {

return value;
}

@WrapOperation(
method = "rebuild",
at = @At(
value = "INVOKE",
target = "Lnet/neoforged/neoforge/client/gui/ConfigurationScreen$ConfigurationSectionScreen;createOtherValue(Ljava/lang/String;Lnet/neoforged/neoforge/common/ModConfigSpec$ConfigValue;)Lnet/neoforged/neoforge/client/gui/ConfigurationScreen$ConfigurationSectionScreen$Element;"
)
)
public ConfigurationScreen.ConfigurationSectionScreen.Element rrls$fixValues(ConfigurationScreen.ConfigurationSectionScreen instance, String key, ModConfigSpec.ConfigValue value, Operation<ConfigurationScreen.ConfigurationSectionScreen.Element> original, @Local(ordinal = 0) ModConfigSpec.ValueSpec valueSpec) {
if (Rrls.MOD_ID.equals(this.context.modId())) {
return switch (valueSpec.getDefault()) {
case Boolean b -> createBooleanValue(key, valueSpec, value, value::set);
case Integer i -> createIntegerValue(key, valueSpec, value, value::set);
case Long l -> createLongValue(key, valueSpec, value, value::set);
case Double d -> createDoubleValue(key, valueSpec, value, value::set);
case String s -> createStringValue(key, valueSpec::test, value, value::set);
default -> original.call(instance, key, value);
};
}

return original.call(instance, key, value);
}
}

0 comments on commit ced63dc

Please sign in to comment.