fabric-lifecycle-events-v1-2.6.9+33df5e6e6f.jar

Download file
    package net.fabricmc.fabric.mixin.event.lifecycle.client;

import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientWorldEvents;
import net.minecraft.class_310;
import net.minecraft.class_638;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.At.Shift;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Environment(EnvType.CLIENT)
@Mixin({class_310.class})
public abstract class MinecraftClientMixin {
   @Inject(
      at = {@At("HEAD")},
      method = {"method_1574()V"}
   )
   private void onStartTick(CallbackInfo info) {
      ((ClientTickEvents.StartTick)ClientTickEvents.START_CLIENT_TICK.invoker()).onStartTick((class_310)this);
   }

   @Inject(
      at = {@At("RETURN")},
      method = {"method_1574()V"}
   )
   private void onEndTick(CallbackInfo info) {
      ((ClientTickEvents.EndTick)ClientTickEvents.END_CLIENT_TICK.invoker()).onEndTick((class_310)this);
   }

   @Inject(
      at = {@At(
   value = "INVOKE",
   target = "Lorg/slf4j/Logger;info(Ljava/lang/String;)V",
   shift = Shift.AFTER
)},
      method = {"method_1490()V"}
   )
   private void onStopping(CallbackInfo ci) {
      ((ClientLifecycleEvents.ClientStopping)ClientLifecycleEvents.CLIENT_STOPPING.invoker()).onClientStopping((class_310)this);
   }

   @Inject(
      at = {@At(
   value = "FIELD",
   target = "Lnet/minecraft/class_310;field_1696:Ljava/lang/Thread;",
   shift = Shift.AFTER,
   ordinal = 0
)},
      method = {"method_1514()V"}
   )
   private void onStart(CallbackInfo ci) {
      ((ClientLifecycleEvents.ClientStarted)ClientLifecycleEvents.CLIENT_STARTED.invoker()).onClientStarted((class_310)this);
   }

   @Inject(
      method = {"method_18097(Lnet/minecraft/class_638;)V"},
      at = {@At("TAIL")}
   )
   private void afterClientWorldChange(class_638 world, CallbackInfo ci) {
      if (world != null) {
         class_310 client = (class_310)this;
         ((ClientWorldEvents.AfterClientWorldChange)ClientWorldEvents.AFTER_CLIENT_WORLD_CHANGE.invoker()).afterWorldChange(client, world);
      }

   }
}
    
Download file