Fix compatibility with Optifine 1.12.2 E1
Optifine has changed some package names, this commit deals with that.
This commit is contained in:
@@ -27,7 +27,13 @@ public class OptifineReflection {
|
|||||||
|
|
||||||
public static void reloadLang() {
|
public static void reloadLang() {
|
||||||
try {
|
try {
|
||||||
Class.forName("Lang").getDeclaredMethod("resourcesReloaded").invoke(null);
|
Class<?> langClass;
|
||||||
|
try {
|
||||||
|
langClass = Class.forName("Lang"); // Pre Optifine 1.12.2 E1
|
||||||
|
} catch (ClassNotFoundException ignore) {
|
||||||
|
langClass = Class.forName("net.optifine.Lang"); // Post Optifine 1.12.2 E1
|
||||||
|
}
|
||||||
|
langClass.getDeclaredMethod("resourcesReloaded").invoke(null);
|
||||||
} catch (ClassNotFoundException ignore) {
|
} catch (ClassNotFoundException ignore) {
|
||||||
// no optifine installed
|
// no optifine installed
|
||||||
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
|
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
|
||||||
|
|||||||
@@ -25,16 +25,19 @@ public class ShaderReflection {
|
|||||||
|
|
||||||
static {
|
static {
|
||||||
try {
|
try {
|
||||||
shaders_frameTimeCounter = Class.forName("shadersmod.client.Shaders")
|
Class<?> shadersClass;
|
||||||
.getDeclaredField("frameTimeCounter");
|
try {
|
||||||
|
shadersClass = Class.forName("shadersmod.client.Shaders"); // Pre Optifine 1.12.2 E1
|
||||||
|
} catch (ClassNotFoundException ignore) {
|
||||||
|
shadersClass = Class.forName("net.optifine.shaders.Shaders"); // Post Optifine 1.12.2 E1
|
||||||
|
}
|
||||||
|
shaders_frameTimeCounter = shadersClass.getDeclaredField("frameTimeCounter");
|
||||||
shaders_frameTimeCounter.setAccessible(true);
|
shaders_frameTimeCounter.setAccessible(true);
|
||||||
|
|
||||||
shaders_isShadowPass = Class.forName("shadersmod.client.Shaders")
|
shaders_isShadowPass = shadersClass.getDeclaredField("isShadowPass");
|
||||||
.getDeclaredField("isShadowPass");
|
|
||||||
shaders_isShadowPass.setAccessible(true);
|
shaders_isShadowPass.setAccessible(true);
|
||||||
|
|
||||||
shaders_beginRender = Class.forName("shadersmod.client.Shaders")
|
shaders_beginRender = shadersClass.getDeclaredMethod("beginRender", Minecraft.class, float.class, long.class);
|
||||||
.getDeclaredMethod("beginRender", Minecraft.class, float.class, long.class);
|
|
||||||
shaders_beginRender.setAccessible(true);
|
shaders_beginRender.setAccessible(true);
|
||||||
|
|
||||||
renderGlobal_chunksToUpdateForced = Class.forName("net.minecraft.client.renderer.RenderGlobal")
|
renderGlobal_chunksToUpdateForced = Class.forName("net.minecraft.client.renderer.RenderGlobal")
|
||||||
|
|||||||
@@ -9,7 +9,10 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
|||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
@Pseudo
|
@Pseudo
|
||||||
@Mixin(targets = "shadersmod/client/ShadersRender", remap = false)
|
@Mixin(targets = {
|
||||||
|
"shadersmod/client/ShadersRender", // Pre Optifine 1.12.2 E1
|
||||||
|
"net/optifine/shaders/ShadersRender" // Post Optifine 1.12.2 E1
|
||||||
|
}, remap = false)
|
||||||
public abstract class MixinShadersRender {
|
public abstract class MixinShadersRender {
|
||||||
|
|
||||||
@Inject(method = "renderHand0", at = @At("HEAD"), cancellable = true)
|
@Inject(method = "renderHand0", at = @At("HEAD"), cancellable = true)
|
||||||
|
|||||||
Reference in New Issue
Block a user