gmod-title-screen/src/main/java/zone/oat/gmodtitlescreen/mixin/RedirectTitleScreenMixin.java

28 lines
1.2 KiB
Java

package zone.oat.gmodtitlescreen.mixin;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.TitleScreen;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import zone.oat.gmodtitlescreen.screen.CustomTitleScreen;
// this sucks. lmao.
@Mixin(MinecraftClient.class)
public class RedirectTitleScreenMixin {
@Redirect(method = "setScreen", at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;", opcode = Opcodes.PUTFIELD))
private void injected(MinecraftClient instance, Screen value) {
if (value instanceof TitleScreen) {
//instance.currentScreen = new CustomTitleScreen();
// this causes a fabric api error of all things, so let's do a little redundancy, shall we?
instance.setScreen(new CustomTitleScreen());
// yes. Wonderful. let's fucking call it Twice.
// (i genuinely could not find anything that Isn't this)
} else {
instance.currentScreen = value;
}
}
}