28 lines
1.2 KiB
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;
|
|
}
|
|
}
|
|
}
|