Use WrapOperation
This commit is contained in:
parent
c7a2205cb2
commit
37b756c99e
|
|
@ -1,6 +1,7 @@
|
||||||
package org.embeddedt.modernfix.common.mixin.perf.fix_loop_spin_waiting;
|
package org.embeddedt.modernfix.common.mixin.perf.fix_loop_spin_waiting;
|
||||||
|
|
||||||
import com.llamalad7.mixinextras.injector.WrapWithCondition;
|
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
|
||||||
|
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
|
||||||
import net.minecraft.Util;
|
import net.minecraft.Util;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.util.thread.ReentrantBlockableEventLoop;
|
import net.minecraft.util.thread.ReentrantBlockableEventLoop;
|
||||||
|
|
@ -20,14 +21,14 @@ public abstract class MinecraftServerMixin {
|
||||||
@Unique
|
@Unique
|
||||||
private boolean mfix$isWaitingForNextTick = false;
|
private boolean mfix$isWaitingForNextTick = false;
|
||||||
|
|
||||||
@WrapWithCondition(
|
@WrapOperation(
|
||||||
method = "waitUntilNextTick",
|
method = "waitUntilNextTick",
|
||||||
at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;managedBlock(Ljava/util/function/BooleanSupplier;)V")
|
at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;managedBlock(Ljava/util/function/BooleanSupplier;)V")
|
||||||
)
|
)
|
||||||
private boolean manageBlockWithCondition(MinecraftServer instance, BooleanSupplier booleanSupplier) {
|
private void managedBlock(MinecraftServer instance, BooleanSupplier isDone, Operation<Void> original) {
|
||||||
try {
|
try {
|
||||||
this.mfix$isWaitingForNextTick = true;
|
this.mfix$isWaitingForNextTick = true;
|
||||||
return true;
|
original.call(instance, isDone);
|
||||||
} finally {
|
} finally {
|
||||||
this.mfix$isWaitingForNextTick = false;
|
this.mfix$isWaitingForNextTick = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user