类 ServerWorldMixin
java.lang.Object
cn.korostudio.c3h6n6o6.mixin.ServerWorldMixin
被撅的最狠的一个类,谁叫MJ优化差!
-
字段概要
修饰符和类型字段说明(专用程序包) boolean
duringListenerUpdate镜像private ReentrantLock
锁~~~(专用程序包) ConcurrentLinkedDeque<net.minecraft.server.world.BlockEvent>
缓存 -
构造器概要
-
方法概要
修饰符和类型方法说明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上锁~~~private boolean
overwriteEmptyCheck
(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet) 啊吧啊吧private void
overwriteEntityTicking
(net.minecraft.entity.Entity entity) 拦截实体Tickprivate boolean
overwriteQueueAdd
(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet, Object object) 啊吧啊吧private boolean
overwriteQueueAddAll
(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> instance, Collection<? extends net.minecraft.server.world.BlockEvent> c) 啊吧啊吧private Object
overwriteQueueRemoveFirst
(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet) 啊吧啊吧private boolean
overwriteQueueRemoveIf
(it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet<net.minecraft.server.world.BlockEvent> objectLinkedOpenHashSet, Predicate<net.minecraft.server.world.BlockEvent> filter) 啊吧啊吧private void
tickEnd
(BooleanSupplier shouldKeepTicking, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) Tick结束private void
tickStart
(BooleanSupplier shouldKeepTicking, org.spongepowered.asm.mixin.injection.callback.CallbackInfo ci) Tick开始(和MCMT不一样,吾把线程池Tick范围固定在实体tick内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解锁~~~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解锁~~~
-
字段详细资料
-
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
- 问海绵组去
-