类 ServerWorldMixin
java.lang.Object
cn.korostudio.c3h6n6o6.mixin.ServerWorldMixin
被撅的最狠的一个类,谁叫MJ优化差!
-
字段概要
字段修饰符和类型字段说明(专用程序包) booleanduringListenerUpdate镜像private ReentrantLock锁~~~(专用程序包) ConcurrentLinkedDeque<net.minecraft.server.world.BlockEvent>缓存 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明private voidlockUpdateListeners(net.minecraft.util.math.BlockPos pos, net.minecraft.block.BlockState oldState, net.minecraft.block.BlockState newState, int flags, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) 给不听话的非线程安全updateListeners上锁~~~private booleanoverwriteEmptyCheck(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet) 啊吧啊吧private voidoverwriteEntityTicking(net.minecraft.entity.Entity entity) 拦截实体Tickprivate booleanoverwriteQueueAdd(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet, Object object) 啊吧啊吧private booleanoverwriteQueueAddAll(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> instance, Collection<? extends net.minecraft.server.world.BlockEvent> c) 啊吧啊吧private ObjectoverwriteQueueRemoveFirst(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet) 啊吧啊吧private booleanoverwriteQueueRemoveIf(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet, Predicate<net.minecraft.server.world.BlockEvent> filter) 啊吧啊吧private voidtickEnd(BooleanSupplier shouldKeepTicking, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) Tick结束private voidtickStart(BooleanSupplier shouldKeepTicking, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) Tick开始(和MCMT不一样,吾把线程池Tick范围固定在实体tick内private voidunlockInError(net.minecraft.util.math.BlockPos pos, net.minecraft.block.BlockState oldState, net.minecraft.block.BlockState newState, int flags, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) 给不听话的而且还抛异常的非线程安全updateListeners解锁~~~private voidunlockUpdateListeners(net.minecraft.util.math.BlockPos pos, net.minecraft.block.BlockState oldState, net.minecraft.block.BlockState newState, int flags, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) 给不听话的非线程安全updateListeners解锁~~~
-
字段详细资料
-
syncedBlockEventCLinkedQueue
ConcurrentLinkedDeque<net.minecraft.server.world.BlockEvent> syncedBlockEventCLinkedQueue缓存 -
duringListenerUpdate
volatile boolean duringListenerUpdateduringListenerUpdate镜像 -
lock
锁~~~
-
-
构造器详细资料
-
ServerWorldMixin
public ServerWorldMixin()
-
-
方法详细资料
-
overwriteEntityTicking
private void overwriteEntityTicking(net.minecraft.entity.Entity entity) 拦截实体Tick- 参数:
entity- 实体对象
-
tickStart
private void tickStart(BooleanSupplier shouldKeepTicking, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) Tick开始(和MCMT不一样,吾把线程池Tick范围固定在实体tick内- 参数:
shouldKeepTicking- 问MJ去ci- 问海绵组去
-
tickEnd
private void tickEnd(BooleanSupplier shouldKeepTicking, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) Tick结束- 参数:
shouldKeepTicking- 问MJ去ci- 问海绵组去
-
overwriteQueueAddAll
private boolean overwriteQueueAddAll(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> instance, Collection<? extends net.minecraft.server.world.BlockEvent> c) 啊吧啊吧 -
overwriteQueueAdd
private boolean overwriteQueueAdd(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet, Object object) 啊吧啊吧 -
overwriteQueueRemoveIf
private boolean overwriteQueueRemoveIf(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet, Predicate<net.minecraft.server.world.BlockEvent> filter) 啊吧啊吧 -
overwriteEmptyCheck
private boolean overwriteEmptyCheck(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet) 啊吧啊吧 -
overwriteQueueRemoveFirst
private Object overwriteQueueRemoveFirst(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet) 啊吧啊吧 -
lockUpdateListeners
private void lockUpdateListeners(net.minecraft.util.math.BlockPos pos, net.minecraft.block.BlockState oldState, net.minecraft.block.BlockState newState, int flags, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) 给不听话的非线程安全updateListeners上锁~~~- 参数:
pos- 问MJ去oldState- 问MJ去newState- 问MJ去flags- 问MJ去ci- 问海绵组去
-
unlockUpdateListeners
private void unlockUpdateListeners(net.minecraft.util.math.BlockPos pos, net.minecraft.block.BlockState oldState, net.minecraft.block.BlockState newState, int flags, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) 给不听话的非线程安全updateListeners解锁~~~- 参数:
pos- 问MJ去oldState- 问MJ去newState- 问MJ去flags- 问MJ去ci- 问海绵组去
-
unlockInError
private void unlockInError(net.minecraft.util.math.BlockPos pos, net.minecraft.block.BlockState oldState, net.minecraft.block.BlockState newState, int flags, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) 给不听话的而且还抛异常的非线程安全updateListeners解锁~~~- 参数:
pos- 问MJ去oldState- 问MJ去newState- 问MJ去flags- 问MJ去ci- 问海绵组去
-