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.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
|
|
@ -25,8 +26,8 @@ public class ChunkManagerMixin {
|
|||
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)
|
||||
private Predicate<ChunkHolder> alwaysAccessible(Predicate<ChunkHolder> chunkHolder) {
|
||||
return c -> true;
|
||||
@Redirect(method = "saveChunkIfNeeded", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ChunkHolder;wasAccessibleSinceLastSave()Z"), require = 0)
|
||||
private boolean alwaysAccessible(ChunkHolder chunkHolder) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,12 +22,12 @@ import java.util.function.Function;
|
|||
public class MinecraftMixin {
|
||||
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) {
|
||||
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) {
|
||||
float timeSpentReloading = ((float)(System.nanoTime() - datapackReloadStartTime) / 1000000000f);
|
||||
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",
|
||||
"feature.measure_time.BootstrapMixin",
|
||||
"feature.measure_time.SimpleReloadableResourceManagerMixin",
|
||||
"feature.measure_time.ProfiledReloadInstanceMixin"
|
||||
"feature.measure_time.ProfiledReloadInstanceMixin",
|
||||
"feature.measure_time.ReloadableServerResourcesMixin"
|
||||
],
|
||||
"client": [
|
||||
"core.MinecraftMixin",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user