Fix a number of injections being misplaced on 1.18
This commit is contained in:
parent
4af85f4076
commit
654c98b969
|
|
@ -9,6 +9,7 @@ import net.minecraft.server.level.ChunkMap;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
|
|
@ -25,8 +26,8 @@ public class ChunkManagerMixin {
|
||||||
return c -> c instanceof ProtoChunk || c instanceof ImposterProtoChunk || c instanceof LevelChunk;
|
return c -> c instanceof ProtoChunk || c instanceof ImposterProtoChunk || c instanceof LevelChunk;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ModifyArg(method = "saveAllChunks(Z)V", at = @At(value = "INVOKE", target = "Ljava/util/stream/Stream;filter(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;", ordinal = 3), require = 0)
|
@Redirect(method = "saveChunkIfNeeded", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ChunkHolder;wasAccessibleSinceLastSave()Z"), require = 0)
|
||||||
private Predicate<ChunkHolder> alwaysAccessible(Predicate<ChunkHolder> chunkHolder) {
|
private boolean alwaysAccessible(ChunkHolder chunkHolder) {
|
||||||
return c -> true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,12 +22,12 @@ import java.util.function.Function;
|
||||||
public class MinecraftMixin {
|
public class MinecraftMixin {
|
||||||
private long datapackReloadStartTime;
|
private long datapackReloadStartTime;
|
||||||
|
|
||||||
@Inject(method = "makeWorldStem", at = @At(value = "HEAD"))
|
@Inject(method = "makeWorldStem(Lnet/minecraft/server/packs/repository/PackRepository;ZLnet/minecraft/server/WorldStem$DataPackConfigSupplier;Lnet/minecraft/server/WorldStem$WorldDataSupplier;)Lnet/minecraft/server/WorldStem;", at = @At(value = "HEAD"))
|
||||||
private void recordReloadStart(CallbackInfoReturnable<WorldStem> cir) {
|
private void recordReloadStart(CallbackInfoReturnable<WorldStem> cir) {
|
||||||
datapackReloadStartTime = System.nanoTime();
|
datapackReloadStartTime = System.nanoTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject(method = "makeWorldStem", at = @At(value = "RETURN"))
|
@Inject(method = "makeWorldStem(Lnet/minecraft/server/packs/repository/PackRepository;ZLnet/minecraft/server/WorldStem$DataPackConfigSupplier;Lnet/minecraft/server/WorldStem$WorldDataSupplier;)Lnet/minecraft/server/WorldStem;", at = @At(value = "RETURN"))
|
||||||
private void recordReloadEnd(CallbackInfoReturnable<WorldStem> cir) {
|
private void recordReloadEnd(CallbackInfoReturnable<WorldStem> cir) {
|
||||||
float timeSpentReloading = ((float)(System.nanoTime() - datapackReloadStartTime) / 1000000000f);
|
float timeSpentReloading = ((float)(System.nanoTime() - datapackReloadStartTime) / 1000000000f);
|
||||||
ModernFix.LOGGER.warn("Datapack reload took " + timeSpentReloading + " seconds.");
|
ModernFix.LOGGER.warn("Datapack reload took " + timeSpentReloading + " seconds.");
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
package org.embeddedt.modernfix.mixin.feature.measure_time;
|
||||||
|
|
||||||
|
import net.minecraft.server.ReloadableServerResources;
|
||||||
|
import org.embeddedt.modernfix.core.config.ModernFixConfig;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||||
|
|
||||||
|
@Mixin(ReloadableServerResources.class)
|
||||||
|
public class ReloadableServerResourcesMixin {
|
||||||
|
/**
|
||||||
|
* @author embeddedt
|
||||||
|
* @reason add ability to use this feature in modpacks
|
||||||
|
*/
|
||||||
|
@ModifyArg(method = "loadResources", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/packs/resources/SimpleReloadInstance;create(Lnet/minecraft/server/packs/resources/ResourceManager;Ljava/util/List;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Z)Lnet/minecraft/server/packs/resources/ReloadInstance;"), index = 5)
|
||||||
|
private static boolean enableDebugReloader(boolean bl) {
|
||||||
|
return bl || ModernFixConfig.ENABLE_DEBUG_RELOADER.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -23,7 +23,8 @@
|
||||||
"perf.datapack_reload_exceptions.RecipeManagerMixin",
|
"perf.datapack_reload_exceptions.RecipeManagerMixin",
|
||||||
"feature.measure_time.BootstrapMixin",
|
"feature.measure_time.BootstrapMixin",
|
||||||
"feature.measure_time.SimpleReloadableResourceManagerMixin",
|
"feature.measure_time.SimpleReloadableResourceManagerMixin",
|
||||||
"feature.measure_time.ProfiledReloadInstanceMixin"
|
"feature.measure_time.ProfiledReloadInstanceMixin",
|
||||||
|
"feature.measure_time.ReloadableServerResourcesMixin"
|
||||||
],
|
],
|
||||||
"client": [
|
"client": [
|
||||||
"core.MinecraftMixin",
|
"core.MinecraftMixin",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user