Port to 1.19.4 and overwrite Codec.checkRange to support new options
ci/woodpecker/push/jfmod Pipeline failed Details
ci/woodpecker/tag/jfmod Pipeline was successful Details

This commit is contained in:
Johannes Frohnmeyer 2023-03-14 19:31:01 +01:00
parent a9f5c66c86
commit fc8f14e851
Signed by: Johannes
GPG Key ID: E76429612C2929F4
7 changed files with 43 additions and 9 deletions

View File

@ -13,13 +13,13 @@ repositories {
}
dependencies {
modCompileOnly("maven.modrinth:sodium:mc1.19.3-0.4.6")
modCompileOnly("maven.modrinth:sodium:mc1.19.4-0.4.10")
modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v1:${prop("libjf_version")}")
// For testing in dev environment
modLocalRuntime("net.fabricmc.fabric-api:fabric-api:0.70.0+1.19.3")
modLocalRuntime("net.fabricmc.fabric-api:fabric-api:0.75.3+1.19.4")
modLocalRuntime("io.gitlab.jfronny.libjf:libjf-devutil:${prop("libjf_version")}")
modLocalRuntime("io.gitlab.jfronny.libjf:libjf-config-ui-tiny-v1:${prop("libjf_version")}")
modLocalRuntime("com.terraformersmc:modmenu:5.0.2")
modLocalRuntime("com.terraformersmc:modmenu:6.1.0-rc.1")
}

View File

@ -1,7 +1,7 @@
# https://fabricmc.net/develop/
minecraft_version=1.19.3
yarn_mappings=build.5
loader_version=0.14.12
minecraft_version=1.19.4
yarn_mappings=build.1
loader_version=0.14.17
maven_group=io.gitlab.jfronny
archives_base_name=slyde
@ -13,4 +13,4 @@ curseforge_id=411386
curseforge_required_dependencies=libjf
curseforge_optional_dependencies=modmenu
libjf_version=3.4.1
libjf_version=3.6.0

View File

@ -0,0 +1,11 @@
package io.gitlab.jfronny.slyde;
import com.google.gson.JsonElement;
import com.mojang.serialization.DataResult;
import net.minecraft.client.option.SimpleOption;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
public class JoeException extends RuntimeException {
public <T> JoeException(String key, SimpleOption<T> option, CallbackInfo ci, DataResult<JsonElement> dataResult) {
}
}

View File

@ -0,0 +1,20 @@
package io.gitlab.jfronny.slyde.mixin;
import com.mojang.serialization.Codec;
import com.mojang.serialization.DataResult;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import java.util.function.Function;
@Mixin(Codec.class)
public interface CodecMixin {
/**
* @author JFronny
* @reason No, don't check anything
*/
@Overwrite(remap = false)
static <N extends Number & Comparable<N>> Function<N, DataResult<N>> checkRange(final N minInclusive, final N maxInclusive) {
return DataResult::success;
}
}

View File

@ -1,5 +1,6 @@
package io.gitlab.jfronny.slyde.mixin;
import com.mojang.datafixers.util.Either;
import com.mojang.serialization.*;
import net.minecraft.client.option.*;
import org.spongepowered.asm.mixin.*;
@ -12,7 +13,8 @@ import java.util.*;
public class DoubleSliderCallbacksMixin {
@Redirect(method = "codec", at = @At(value = "INVOKE", target = "Lcom/mojang/serialization/Codec;doubleRange(DD)Lcom/mojang/serialization/Codec;", remap = false))
private Codec<Double> slyde$returnRangelessCodec(double minInclusive, double maxInclusive) {
return Codec.DOUBLE;
return Codec.either(Codec.DOUBLE, Codec.BOOL)
.xmap(either -> either.map(value -> value, value -> value ? 1.0 : 0.0), Either::left);
}
@Inject(method = "validate(Ljava/lang/Double;)Ljava/util/Optional;", at = @At("HEAD"), cancellable = true)

View File

@ -12,7 +12,7 @@ import java.util.function.*;
public class GameOptionsMixin {
@Redirect(method = "accept", at = @At(value = "INVOKE", target = "Ljava/util/Optional;ifPresent(Ljava/util/function/Consumer;)V", ordinal = 1))
private <T> void slyde$replaceSetter(Optional<T> value, Consumer<T> originalSetter, String key, SimpleOption<T> option) {
value.ifPresent((realValue) -> {
value.ifPresent(realValue -> {
if (option.getCallbacks() instanceof SimpleOption.SliderCallbacks) {
if (!MinecraftClient.getInstance().isRunning()) {
option.value = realValue;

View File

@ -5,6 +5,7 @@
"compatibilityLevel": "JAVA_17",
"plugin": "io.gitlab.jfronny.slyde.Plugin",
"client": [
"CodecMixin",
"DoubleSliderCallbacksMixin",
"GameOptionsMixin",
"SliderWidgetMixin",