aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrumeet <yuuta@yuuta.moe>2022-08-10 13:12:44 -0700
committerTrumeet <yuuta@yuuta.moe>2022-08-10 13:12:44 -0700
commite8b3d58b0439b06ec68040cfa326c28db945058e (patch)
tree2a05d4bf05637e84e733dd38c15be92795873de0
parent3f6ec840af28c9d89f579a1b73716f49d639f432 (diff)
downloadacron-e8b3d58b0439b06ec68040cfa326c28db945058e.tar
acron-e8b3d58b0439b06ec68040cfa326c28db945058e.tar.gz
acron-e8b3d58b0439b06ec68040cfa326c28db945058e.tar.bz2
acron-e8b3d58b0439b06ec68040cfa326c28db945058e.zip
feat(mod): use @Inject with capture locals instead of @Redirect
-rw-r--r--mod/src/main/java/moe/ymc/acron/mixin/MinecraftServerMixin.java21
1 files changed, 7 insertions, 14 deletions
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));
}
}