Eliminate need to use platform hook to retrieve server here
This commit is contained in:
parent
a6e2fc94b4
commit
b611830b7e
|
|
@ -1,10 +1,11 @@
|
||||||
package org.embeddedt.modernfix.common.mixin.bugfix.paper_chunk_patches;
|
package org.embeddedt.modernfix.common.mixin.bugfix.paper_chunk_patches;
|
||||||
|
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.server.level.ChunkHolder;
|
import net.minecraft.server.level.ChunkHolder;
|
||||||
import net.minecraft.server.level.ChunkMap;
|
import net.minecraft.server.level.ChunkMap;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.util.thread.BlockableEventLoop;
|
import net.minecraft.util.thread.BlockableEventLoop;
|
||||||
import org.embeddedt.modernfix.duck.IPaperChunkHolder;
|
import org.embeddedt.modernfix.duck.IPaperChunkHolder;
|
||||||
import org.embeddedt.modernfix.platform.ModernFixPlatformHooks;
|
|
||||||
import org.spongepowered.asm.mixin.Final;
|
import org.spongepowered.asm.mixin.Final;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
@ -23,12 +24,14 @@ import java.util.function.Function;
|
||||||
public class ChunkMapMixin {
|
public class ChunkMapMixin {
|
||||||
@Shadow @Final private BlockableEventLoop<Runnable> mainThreadExecutor;
|
@Shadow @Final private BlockableEventLoop<Runnable> mainThreadExecutor;
|
||||||
|
|
||||||
|
@Shadow @Final private ServerLevel level;
|
||||||
private Executor mainInvokingExecutor;
|
private Executor mainInvokingExecutor;
|
||||||
|
|
||||||
@Inject(method = "<init>", at = @At("RETURN"))
|
@Inject(method = "<init>", at = @At("RETURN"))
|
||||||
private void setup(CallbackInfo ci) {
|
private void setup(CallbackInfo ci) {
|
||||||
|
MinecraftServer server = this.level.getServer();
|
||||||
this.mainInvokingExecutor = (runnable) -> {
|
this.mainInvokingExecutor = (runnable) -> {
|
||||||
if(ModernFixPlatformHooks.getCurrentServer().isSameThread())
|
if(server.isSameThread())
|
||||||
runnable.run();
|
runnable.run();
|
||||||
else
|
else
|
||||||
this.mainThreadExecutor.execute(runnable);
|
this.mainThreadExecutor.execute(runnable);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user