From e8b3d58b0439b06ec68040cfa326c28db945058e Mon Sep 17 00:00:00 2001 From: Trumeet Date: Wed, 10 Aug 2022 13:12:44 -0700 Subject: feat(mod): use @Inject with capture locals instead of @Redirect --- .../moe/ymc/acron/mixin/MinecraftServerMixin.java | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'mod') diff --git a/mod/src/main/java/moe/ymc/acron/mixin/MinecraftServerMixin.java b/mod/src/main/java/moe/ymc/acron/mixin/MinecraftServerMixin.java index b602d95..b0d7b0d 100644 --- a/mod/src/main/java/moe/ymc/acron/mixin/MinecraftServerMixin.java +++ b/mod/src/main/java/moe/ymc/acron/mixin/MinecraftServerMixin.java @@ -7,26 +7,19 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; @Mixin(MinecraftServer.class) public class MinecraftServerMixin { private static final Logger AC_LOGGER = LogManager.getLogger(); - @Redirect(method = "runServer()V", + @Inject(method = "runServer()V", + locals = LocalCapture.CAPTURE_FAILHARD, at = @At(value = "INVOKE", target = "Lorg/apache/logging/log4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V")) - private void startServer(Logger instance, String s, Object o1, Object o2) { - instance.warn(s, o1, o2); - if (s.equals("Can't keep up! " + - "Is the server overloaded? " + - "Running {}ms or {} ticks behind") && - o1 instanceof Long && - o2 instanceof Long) { - AC_LOGGER.debug("Lag: {}ms, {} ticks", - o1, - o2); - EventQueue.enqueue(new EventLagging((long) o1, (long) o2)); - } + private void startServer(CallbackInfo ci, long l, long m) { + EventQueue.enqueue(new EventLagging(l, m)); } } -- cgit v1.2.3