Skip to content

Commit

Permalink
Handle GUI injector patch offset difference
Browse files Browse the repository at this point in the history
Update adapter definition to 1.11.28

Fixes #864
  • Loading branch information
Su5eD committed Mar 3, 2024
1 parent efc9b3b commit e16ea2e
Show file tree
Hide file tree
Showing 15 changed files with 59 additions and 59 deletions.
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -316,9 +316,9 @@ dependencies {
shade(group = "net.minecraftforge", name = "srgutils", version = "0.5.4")
shade(group = "net.fabricmc", name = "access-widener", version = versionAccessWidener)
shade(group = "dev.su5ed.sinytra", name = "ForgeAutoRenamingTool", version = versionForgeAutoRenamingTool)
shade(group = "dev.su5ed.sinytra.adapter", name = "definition", version = versionAdapterDefinition) { isTransitive = false }
shade(group = "org.sinytra.adapter", name = "definition", version = versionAdapterDefinition) { isTransitive = false }
shade(group = "io.github.steelwoolmc", name = "mixin-transmogrifier", version = versionMixinTransmog)
adapterData(group = "dev.su5ed.sinytra.adapter", name = "adapter", version = versionAdapter)
adapterData(group = "org.sinytra.adapter", name = "adapter", version = versionAdapter)

annotationProcessor(group = "net.fabricmc", name = "sponge-mixin", version = versionMixin)
compileOnly(group = "net.fabricmc", name = "sponge-mixin", version = versionMixin)
Expand Down
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ org.gradle.daemon=true

# Versions
versionConnector=1.0.0-beta.38
versionAdapter=1.11.19-1.20.1-20240126.215012
versionAdapterDefinition=1.11.26
versionAdapter=1.11.28-1.20.1-20240303.100300
versionAdapterDefinition=1.11.28

versionMc=1.20.1
versionForge=47.1.3
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dev.su5ed.sinytra.connector.transformer;

import dev.su5ed.sinytra.adapter.patch.api.MethodContext;
import dev.su5ed.sinytra.adapter.patch.api.Patch;
import dev.su5ed.sinytra.adapter.patch.api.PatchContext;
import dev.su5ed.sinytra.adapter.patch.api.PatchEnvironment;
import org.sinytra.adapter.patch.api.MethodContext;
import org.sinytra.adapter.patch.api.Patch;
import org.sinytra.adapter.patch.api.PatchContext;
import org.sinytra.adapter.patch.api.PatchEnvironment;
import dev.su5ed.sinytra.connector.transformer.patch.ClassNodeTransformer;
import dev.su5ed.sinytra.connector.transformer.patch.RedirectAccessorToMethod;
import net.minecraftforge.coremod.api.ASMAPI;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.google.common.collect.ImmutableMap;
import com.mojang.logging.LogUtils;
import dev.su5ed.sinytra.adapter.patch.api.Patch;
import org.sinytra.adapter.patch.api.Patch;
import dev.su5ed.sinytra.connector.transformer.patch.ClassNodeTransformer;
import net.fabricmc.accesswidener.AccessWidenerReader;
import net.fabricmc.accesswidener.AccessWidenerVisitor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,19 @@
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.mojang.logging.LogUtils;
import dev.su5ed.sinytra.adapter.patch.LVTOffsets;
import dev.su5ed.sinytra.adapter.patch.api.ClassTransform;
import dev.su5ed.sinytra.adapter.patch.api.MixinClassGenerator;
import dev.su5ed.sinytra.adapter.patch.api.Patch;
import dev.su5ed.sinytra.adapter.patch.api.PatchContext;
import dev.su5ed.sinytra.adapter.patch.api.PatchEnvironment;
import dev.su5ed.sinytra.adapter.patch.fixes.FieldTypePatchTransformer;
import dev.su5ed.sinytra.adapter.patch.fixes.FieldTypeUsageTransformer;
import dev.su5ed.sinytra.adapter.patch.transformer.dynamic.DynamicAnonymousShadowFieldTypePatch;
import dev.su5ed.sinytra.adapter.patch.transformer.dynamic.DynamicInheritedInjectionPointPatch;
import dev.su5ed.sinytra.adapter.patch.transformer.dynamic.DynamicInjectorOrdinalPatch;
import dev.su5ed.sinytra.adapter.patch.transformer.dynamic.DynamicLVTPatch;
import dev.su5ed.sinytra.adapter.patch.transformer.dynamic.DynamicModifyVarAtReturnPatch;
import org.sinytra.adapter.patch.LVTOffsets;
import org.sinytra.adapter.patch.api.ClassTransform;
import org.sinytra.adapter.patch.api.MixinClassGenerator;
import org.sinytra.adapter.patch.api.Patch;
import org.sinytra.adapter.patch.api.PatchContext;
import org.sinytra.adapter.patch.api.PatchEnvironment;
import org.sinytra.adapter.patch.fixes.FieldTypePatchTransformer;
import org.sinytra.adapter.patch.fixes.FieldTypeUsageTransformer;
import org.sinytra.adapter.patch.transformer.dynamic.DynamicAnonymousShadowFieldTypePatch;
import org.sinytra.adapter.patch.transformer.dynamic.DynamicInheritedInjectionPointPatch;
import org.sinytra.adapter.patch.transformer.dynamic.DynamicInjectorOrdinalPatch;
import org.sinytra.adapter.patch.transformer.dynamic.DynamicLVTPatch;
import org.sinytra.adapter.patch.transformer.dynamic.DynamicModifyVarAtReturnPatch;
import dev.su5ed.sinytra.connector.ConnectorUtil;
import dev.su5ed.sinytra.connector.transformer.patch.EnvironmentStripperTransformer;
import net.minecraftforge.fart.api.Transformer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package dev.su5ed.sinytra.connector.transformer;

import dev.su5ed.sinytra.adapter.patch.api.MixinConstants;
import dev.su5ed.sinytra.adapter.patch.api.Patch;
import dev.su5ed.sinytra.adapter.patch.transformer.ModifyMethodAccess;
import dev.su5ed.sinytra.adapter.patch.transformer.ModifyMethodParams;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
import org.objectweb.asm.tree.AbstractInsnNode;
Expand All @@ -15,6 +11,10 @@
import org.objectweb.asm.tree.MethodInsnNode;
import org.objectweb.asm.tree.TypeInsnNode;
import org.objectweb.asm.tree.VarInsnNode;
import org.sinytra.adapter.patch.api.MixinConstants;
import org.sinytra.adapter.patch.api.Patch;
import org.sinytra.adapter.patch.transformer.ModifyMethodAccess;
import org.sinytra.adapter.patch.transformer.ModifyMethodParams;

import java.util.List;
import java.util.ListIterator;
Expand Down Expand Up @@ -214,9 +214,9 @@ public static List<Patch> getPatches() {
.targetInjectionPoint("TAIL", "")
.modifyTarget("connector_postRender")
.build(),
buildGuiPatch(2, 2, "renderFood", "Lnet/minecraft/client/Minecraft;m_91307_()Lnet/minecraft/util/profiling/ProfilerFiller;"),
buildGuiPatch(3, 3, "renderAir", "Lnet/minecraft/client/Minecraft;m_91307_()Lnet/minecraft/util/profiling/ProfilerFiller;"),
buildGuiPatch(3, 5, "renderFood", "Lnet/minecraft/client/gui/GuiGraphics;m_280218_(Lnet/minecraft/resources/ResourceLocation;IIIIII)V"),
buildGuiPatch(2, 2, "renderFood", "Lnet/minecraft/client/Minecraft;m_91307_()Lnet/minecraft/util/profiling/ProfilerFiller;", false),
buildGuiPatch(3, 3, "renderAir", "Lnet/minecraft/client/Minecraft;m_91307_()Lnet/minecraft/util/profiling/ProfilerFiller;", false),
buildGuiPatch(3, 5, "renderFood", "Lnet/minecraft/client/gui/GuiGraphics;m_280218_(Lnet/minecraft/resources/ResourceLocation;IIIIII)V", true),
Patch.builder()
.targetClass("net/minecraft/client/gui/Gui")
.targetMethod("m_280173_(Lnet/minecraft/client/gui/GuiGraphics;)V")
Expand Down Expand Up @@ -543,7 +543,7 @@ public static List<Patch> getPatches() {
.collect(Collectors.toList()); // Mutable list
}

private static Patch buildGuiPatch(int minOrdinal, int maxOrdinal, String targetMethodName, String injectionPoint) {
private static Patch buildGuiPatch(int minOrdinal, int maxOrdinal, String targetMethodName, String injectionPoint, boolean offsetOrdinal) {
return Patch.builder()
.targetClass("net/minecraft/client/gui/Gui")
.targetMethod("m_280173_(Lnet/minecraft/client/gui/GuiGraphics;)V")
Expand All @@ -555,7 +555,7 @@ private static Patch buildGuiPatch(int minOrdinal, int maxOrdinal, String target
.transform((classNode, methodNode, methodContext, context) -> {
methodContext.injectionPointAnnotation()
.<Integer>getValue("ordinal")
.ifPresent(o -> o.set(0));
.ifPresent(o -> o.set(offsetOrdinal ? o.get() - minOrdinal : 0));
return Patch.Result.APPLY;
})
.build();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.su5ed.sinytra.connector.transformer;

import dev.su5ed.sinytra.adapter.patch.selector.AnnotationHandle;
import dev.su5ed.sinytra.adapter.patch.util.MethodQualifier;
import org.sinytra.adapter.patch.selector.AnnotationHandle;
import org.sinytra.adapter.patch.util.MethodQualifier;
import dev.su5ed.sinytra.connector.transformer.jar.IntermediateMapping;
import net.minecraftforge.fart.api.ClassProvider;
import net.minecraftforge.fart.api.Transformer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dev.su5ed.sinytra.connector.transformer.jar;

import com.mojang.datafixers.util.Pair;
import dev.su5ed.sinytra.adapter.patch.fixes.BytecodeFixerUpper;
import dev.su5ed.sinytra.adapter.patch.fixes.SimpleTypeAdapter;
import dev.su5ed.sinytra.adapter.patch.fixes.TypeAdapter;
import org.sinytra.adapter.patch.fixes.BytecodeFixerUpper;
import org.sinytra.adapter.patch.fixes.SimpleTypeAdapter;
import org.sinytra.adapter.patch.fixes.TypeAdapter;
import dev.su5ed.sinytra.connector.ConnectorUtil;
import net.minecraftforge.coremod.api.ASMAPI;
import net.minecraftforge.forgespi.locating.IModFile;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
import com.google.gson.JsonElement;
import com.mojang.logging.LogUtils;
import com.mojang.serialization.JsonOps;
import dev.su5ed.sinytra.adapter.patch.LVTOffsets;
import dev.su5ed.sinytra.adapter.patch.api.GlobalReferenceMapper;
import dev.su5ed.sinytra.adapter.patch.api.Patch;
import dev.su5ed.sinytra.adapter.patch.api.PatchEnvironment;
import dev.su5ed.sinytra.adapter.patch.serialization.PatchSerialization;
import dev.su5ed.sinytra.adapter.patch.util.provider.ClassLookup;
import dev.su5ed.sinytra.adapter.patch.util.provider.ZipClassLookup;
import org.sinytra.adapter.patch.LVTOffsets;
import org.sinytra.adapter.patch.api.GlobalReferenceMapper;
import org.sinytra.adapter.patch.api.Patch;
import org.sinytra.adapter.patch.api.PatchEnvironment;
import org.sinytra.adapter.patch.serialization.PatchSerialization;
import org.sinytra.adapter.patch.util.provider.ClassLookup;
import org.sinytra.adapter.patch.util.provider.ZipClassLookup;
import dev.su5ed.sinytra.connector.locator.EmbeddedDependencies;
import dev.su5ed.sinytra.connector.service.FabricMixinBootstrap;
import dev.su5ed.sinytra.connector.transformer.AccessWidenerTransformer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.su5ed.sinytra.connector.transformer.jar;

import dev.su5ed.sinytra.adapter.patch.util.provider.ClassLookup;
import org.sinytra.adapter.patch.util.provider.ClassLookup;
import net.minecraftforge.fart.api.ClassProvider;
import net.minecraftforge.fart.internal.EnhancedClassRemapper;
import net.minecraftforge.fart.internal.EnhancedRemapper;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.su5ed.sinytra.connector.transformer.patch;

import dev.su5ed.sinytra.adapter.patch.analysis.MethodCallAnalyzer;
import dev.su5ed.sinytra.adapter.patch.api.Patch;
import dev.su5ed.sinytra.adapter.patch.util.MethodQualifier;
import org.sinytra.adapter.patch.analysis.MethodCallAnalyzer;
import org.sinytra.adapter.patch.api.Patch;
import org.sinytra.adapter.patch.util.MethodQualifier;
import dev.su5ed.sinytra.connector.transformer.jar.IntermediateMapping;
import net.minecraftforge.srgutils.IMappingFile;
import org.jetbrains.annotations.Nullable;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.su5ed.sinytra.connector.transformer.patch;

import dev.su5ed.sinytra.adapter.patch.api.Patch;
import org.sinytra.adapter.patch.api.Patch;
import net.minecraftforge.fart.api.Transformer;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.su5ed.sinytra.connector.transformer.patch;

import dev.su5ed.sinytra.adapter.patch.api.RefmapHolder;
import org.sinytra.adapter.patch.api.RefmapHolder;
import dev.su5ed.sinytra.connector.transformer.SrgRemappingReferenceMapper;

import java.util.HashSet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dev.su5ed.sinytra.connector.transformer.patch;

import dev.su5ed.sinytra.adapter.patch.api.ClassTransform;
import dev.su5ed.sinytra.adapter.patch.api.Patch;
import dev.su5ed.sinytra.adapter.patch.api.PatchContext;
import dev.su5ed.sinytra.adapter.patch.selector.AnnotationValueHandle;
import org.sinytra.adapter.patch.api.ClassTransform;
import org.sinytra.adapter.patch.api.Patch;
import org.sinytra.adapter.patch.api.PatchContext;
import org.sinytra.adapter.patch.selector.AnnotationValueHandle;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.loader.api.FabricLoader;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package dev.su5ed.sinytra.connector.transformer.patch;

import com.mojang.logging.LogUtils;
import dev.su5ed.sinytra.adapter.patch.api.MethodContext;
import dev.su5ed.sinytra.adapter.patch.api.MethodTransform;
import dev.su5ed.sinytra.adapter.patch.api.MixinConstants;
import dev.su5ed.sinytra.adapter.patch.api.Patch;
import dev.su5ed.sinytra.adapter.patch.api.PatchContext;
import org.sinytra.adapter.patch.api.MethodContext;
import org.sinytra.adapter.patch.api.MethodTransform;
import org.sinytra.adapter.patch.api.MixinConstants;
import org.sinytra.adapter.patch.api.Patch;
import org.sinytra.adapter.patch.api.PatchContext;
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.tree.ClassNode;
import org.objectweb.asm.tree.MethodNode;
Expand All @@ -14,7 +14,7 @@
import java.util.Collection;
import java.util.Set;

import static dev.su5ed.sinytra.adapter.patch.PatchInstance.MIXINPATCH;
import static org.sinytra.adapter.patch.PatchInstance.MIXINPATCH;

public record RedirectAccessorToMethod(String value) implements MethodTransform {
private static final Logger LOGGER = LogUtils.getLogger();
Expand Down

0 comments on commit e16ea2e

Please sign in to comment.