Skip to content

Commit c91858d

Browse files
committed
perf: more faster
1 parent 9207f96 commit c91858d

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

c2me-rewrites-chunk-system/src/main/java/com/ishland/c2me/rewrites/chunksystem/mixin/MixinChunkLevelManager.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import net.minecraft.server.world.ChunkLevelManager;
99
import net.minecraft.server.world.ThrottledChunkTaskScheduler;
1010
import net.minecraft.util.thread.TaskExecutor;
11+
import org.objectweb.asm.Opcodes;
1112
import org.spongepowered.asm.mixin.Dynamic;
1213
import org.spongepowered.asm.mixin.Mixin;
1314
import org.spongepowered.asm.mixin.injection.At;
@@ -28,6 +29,26 @@ private int fakeLevel(ChunkHolder instance) {
2829
return Integer.MAX_VALUE;
2930
}
3031

32+
@Dynamic
33+
@TargetHandler(
34+
mixin = "com.ishland.vmp.mixins.ticketsystem.ticketpropagator.MixinChunkLevelManager",
35+
name = "tickTickets"
36+
)
37+
@Redirect(method = "@MixinSquared:Handler", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/world/ChunkLevelManager;getChunkHolder(J)Lnet/minecraft/server/world/ChunkHolder;"), require = 0)
38+
private ChunkHolder fakeLevel(ChunkLevelManager instance, long l) {
39+
return null;
40+
}
41+
42+
@Dynamic
43+
@TargetHandler(
44+
mixin = "com.ishland.vmp.mixins.ticketsystem.ticketpropagator.MixinChunkLevelManager",
45+
name = "tickTickets"
46+
)
47+
@Redirect(method = "@MixinSquared:Handler", at = @At(value = "FIELD", target = "Lnet/minecraft/server/world/ChunkLevels;INACCESSIBLE:I", opcode = Opcodes.GETSTATIC, ordinal = 0), require = 0)
48+
private int fakeLevel() {
49+
return Integer.MAX_VALUE - 1;
50+
}
51+
3152
@WrapOperation(method = "<init>", at = @At(value = "NEW", target = "(Lnet/minecraft/util/thread/TaskExecutor;Ljava/util/concurrent/Executor;I)Lnet/minecraft/server/world/ThrottledChunkTaskScheduler;"))
3253
private ThrottledChunkTaskScheduler syncPlayerTickets(TaskExecutor<Runnable> executor, Executor dispatchExecutor, int maxConcurrentChunks, Operation<ThrottledChunkTaskScheduler> original) {
3354
if (Config.syncPlayerTickets) {

c2me-rewrites-chunk-system/src/main/java/com/ishland/c2me/rewrites/chunksystem/mixin/MixinChunkTicketManagerTicketDistanceLevelPropagator.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
import it.unimi.dsi.fastutil.longs.Long2IntMap;
44
import it.unimi.dsi.fastutil.longs.Long2IntOpenHashMap;
55
import net.minecraft.server.world.ChunkHolder;
6+
import net.minecraft.server.world.ChunkLevelManager;
67
import net.minecraft.server.world.TicketDistanceLevelPropagator;
8+
import org.objectweb.asm.Opcodes;
79
import org.spongepowered.asm.mixin.Final;
810
import org.spongepowered.asm.mixin.Mixin;
911
import org.spongepowered.asm.mixin.Overwrite;
@@ -43,8 +45,13 @@ private void preSetLevel(long id, int level, CallbackInfo ci) {
4345
}
4446
}
4547

46-
@Redirect(method = "setLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/world/ChunkHolder;getLevel()I"))
47-
private int fakeLevel(ChunkHolder instance) {
48+
@Redirect(method = "setLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/world/ChunkLevelManager;getChunkHolder(J)Lnet/minecraft/server/world/ChunkHolder;"))
49+
private ChunkHolder fakeLevel(ChunkLevelManager instance, long l) {
50+
return null;
51+
}
52+
53+
@Redirect(method = "setLevel", at = @At(value = "FIELD", target = "Lnet/minecraft/server/world/TicketDistanceLevelPropagator;UNLOADED:I", opcode = Opcodes.GETSTATIC))
54+
private int fakeLevel() {
4855
return Integer.MAX_VALUE;
4956
}
5057

0 commit comments

Comments
 (0)