diff --git a/common/src/main/java/org/embeddedt/modernfix/ModernFix.java b/common/src/main/java/org/embeddedt/modernfix/ModernFix.java index 17e27d64..02f265dc 100644 --- a/common/src/main/java/org/embeddedt/modernfix/ModernFix.java +++ b/common/src/main/java/org/embeddedt/modernfix/ModernFix.java @@ -1,6 +1,7 @@ package org.embeddedt.modernfix; import net.minecraft.SharedConstants; +import net.minecraft.TracingExecutor; import net.minecraft.Util; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ChunkMap; @@ -14,7 +15,6 @@ import org.embeddedt.modernfix.resources.ReloadExecutor; import org.embeddedt.modernfix.util.ClassInfoManager; import java.lang.management.ManagementFactory; -import java.util.concurrent.ExecutorService; // The value here should match an entry in the META-INF/mods.toml file public class ModernFix { @@ -31,7 +31,7 @@ public class ModernFix { // Used to skip computing the blockstate caches twice public static boolean runningFirstInjection = false; - private static ExecutorService resourceReloadService = null; + private static TracingExecutor resourceReloadService = null; static { if(ModernFixMixinPlugin.instance.isOptionEnabled("perf.dedicated_reload_executor.ReloadExecutor")) { @@ -41,7 +41,7 @@ public class ModernFix { } } - public static ExecutorService resourceReloadExecutor() { + public static TracingExecutor resourceReloadExecutor() { return resourceReloadService; } diff --git a/common/src/main/java/org/embeddedt/modernfix/chunk/SafeBlockGetter.java b/common/src/main/java/org/embeddedt/modernfix/chunk/SafeBlockGetter.java index 24d039b2..493acdb7 100644 --- a/common/src/main/java/org/embeddedt/modernfix/chunk/SafeBlockGetter.java +++ b/common/src/main/java/org/embeddedt/modernfix/chunk/SafeBlockGetter.java @@ -38,18 +38,13 @@ public class SafeBlockGetter implements BlockGetter { } @Override - public int getMaxBuildHeight() { - return this.wrapped.getMaxBuildHeight(); + public int getMaxY() { + return this.wrapped.getMaxY(); } @Override - public int getMaxLightLevel() { - return this.wrapped.getMaxLightLevel(); - } - - @Override - public int getMinBuildHeight() { - return this.wrapped.getMinBuildHeight(); + public int getMinY() { + return this.wrapped.getMinY(); } @Override diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/ender_dragon_leak/EnderDragonRendererMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/ender_dragon_leak/EnderDragonRendererMixin.java deleted file mode 100644 index d3600b87..00000000 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/bugfix/ender_dragon_leak/EnderDragonRendererMixin.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.embeddedt.modernfix.common.mixin.bugfix.ender_dragon_leak; - -import net.minecraft.client.renderer.entity.EnderDragonRenderer; -import org.embeddedt.modernfix.annotation.ClientOnlyMixin; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(EnderDragonRenderer.class) -@ClientOnlyMixin -public abstract class EnderDragonRendererMixin { - @Shadow @Final private EnderDragonRenderer.DragonModel model; - - /** - * Prevent leaking the client world through the entity reference. - */ - @Inject(method = "render(Lnet/minecraft/world/entity/boss/enderdragon/EnderDragon;FFLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;I)V", at = @At("RETURN")) - private void clearDragonEntityReference(CallbackInfo ci) { - this.model.entity = null; - } -} diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/stalled_chunk_load_detection/ServerChunkCacheMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/stalled_chunk_load_detection/ServerChunkCacheMixin.java index ca2e5e99..c3b202fd 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/stalled_chunk_load_detection/ServerChunkCacheMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/stalled_chunk_load_detection/ServerChunkCacheMixin.java @@ -37,7 +37,7 @@ public abstract class ServerChunkCacheMixin { if(debugDeadServerAccess) { new Exception().printStackTrace(); } - Holder plains = this.level.registryAccess().registryOrThrow(Registries.BIOME).getHolderOrThrow(Biomes.PLAINS); + Holder plains = this.level.registryAccess().lookupOrThrow(Registries.BIOME).getOrThrow(Biomes.PLAINS); cir.setReturnValue(new EmptyLevelChunk(this.level, new ChunkPos(chunkX, chunkZ), plains)); } else if(Thread.currentThread() != this.mainThread) { CompletableFuture> future = CompletableFuture.supplyAsync(() -> this.getChunkFutureMainThread(chunkX, chunkZ, requiredStatus, false), this.mainThreadProcessor).join(); diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/cache_strongholds/ServerLevelMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/cache_strongholds/ServerLevelMixin.java index 2aac7c47..f6e23695 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/cache_strongholds/ServerLevelMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/cache_strongholds/ServerLevelMixin.java @@ -26,8 +26,8 @@ import java.util.function.Supplier; @Mixin(ServerLevel.class) public abstract class ServerLevelMixin extends Level implements IServerLevel { - protected ServerLevelMixin(WritableLevelData arg, ResourceKey arg2, RegistryAccess arg3, Holder arg4, Supplier supplier, boolean bl, boolean bl2, long l, int i) { - super(arg, arg2, arg3, arg4, supplier, bl, bl2, l, i); + protected ServerLevelMixin(WritableLevelData writableLevelData, ResourceKey resourceKey, RegistryAccess registryAccess, Holder holder, boolean bl, boolean bl2, long l, int i) { + super(writableLevelData, resourceKey, registryAccess, holder, bl, bl2, l, i); } @Shadow public abstract DimensionDataStorage getDataStorage(); diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dedicated_reload_executor/MinecraftMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dedicated_reload_executor/MinecraftMixin.java index 5d287c8b..df073b4b 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dedicated_reload_executor/MinecraftMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dedicated_reload_executor/MinecraftMixin.java @@ -1,5 +1,6 @@ package org.embeddedt.modernfix.common.mixin.perf.dedicated_reload_executor; +import net.minecraft.TracingExecutor; import net.minecraft.client.Minecraft; import org.embeddedt.modernfix.ModernFix; import org.embeddedt.modernfix.annotation.ClientOnlyMixin; @@ -7,13 +8,11 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; -import java.util.concurrent.ExecutorService; - @Mixin(Minecraft.class) @ClientOnlyMixin public class MinecraftMixin { - @Redirect(method = { "", "reloadResourcePacks(ZLnet/minecraft/client/Minecraft$GameLoadCookie;)Ljava/util/concurrent/CompletableFuture;" }, at = @At(value = "INVOKE", target = "Lnet/minecraft/Util;backgroundExecutor()Ljava/util/concurrent/ExecutorService;", ordinal = 0)) - private ExecutorService getResourceReloadExecutor() { + @Redirect(method = { "", "reloadResourcePacks(ZLnet/minecraft/client/Minecraft$GameLoadCookie;)Ljava/util/concurrent/CompletableFuture;" }, at = @At(value = "INVOKE", target = "Lnet/minecraft/Util;backgroundExecutor()Lnet/minecraft/TracingExecutor;", ordinal = 0)) + private TracingExecutor getResourceReloadExecutor() { return ModernFix.resourceReloadExecutor(); } } diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_entity_renderers/EntityRenderDispatcherMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_entity_renderers/EntityRenderDispatcherMixin.java index 4d3f3b41..6913cf4d 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_entity_renderers/EntityRenderDispatcherMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_entity_renderers/EntityRenderDispatcherMixin.java @@ -19,19 +19,19 @@ import java.util.Map; @Mixin(EntityRenderDispatcher.class) @ClientOnlyMixin public class EntityRenderDispatcherMixin { - @Shadow private Map, EntityRenderer> renderers; + @Shadow private Map, EntityRenderer> renderers; private EntityRendererMap mfix$dynamicRenderers; @Inject(method = "getRenderer", at = @At("RETURN"), cancellable = true) - private void checkNullness(T entity, CallbackInfoReturnable> cir) { + private void checkNullness(T entity, CallbackInfoReturnable> cir) { // apparently some mods yeet the renderers map and cause issues if(cir.getReturnValue() == null) - cir.setReturnValue((EntityRenderer)mfix$dynamicRenderers.get(entity.getType())); + cir.setReturnValue((EntityRenderer)mfix$dynamicRenderers.get(entity.getType())); } @Redirect(method = "onResourceManagerReload", at = @At(value = "FIELD", opcode = Opcodes.PUTFIELD, target = "Lnet/minecraft/client/renderer/entity/EntityRenderDispatcher;renderers:Ljava/util/Map;")) - private void setRendererField(EntityRenderDispatcher instance, Map, EntityRenderer> incomingMap) { + private void setRendererField(EntityRenderDispatcher instance, Map, EntityRenderer> incomingMap) { this.renderers = incomingMap; this.mfix$dynamicRenderers = (EntityRendererMap)incomingMap; } diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_entity_renderers/EntityRenderersMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_entity_renderers/EntityRenderersMixin.java index a6d93ca0..efabe253 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_entity_renderers/EntityRenderersMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_entity_renderers/EntityRenderersMixin.java @@ -22,7 +22,7 @@ public class EntityRenderersMixin { @Shadow @Final private static Map, EntityRendererProvider> PROVIDERS; @Inject(method = "createEntityRenderers", at = @At("HEAD"), cancellable = true) - private static void createDynamicRendererLoader(EntityRendererProvider.Context context, CallbackInfoReturnable, EntityRenderer>> cir) { + private static void createDynamicRendererLoader(EntityRendererProvider.Context context, CallbackInfoReturnable, EntityRenderer>> cir) { cir.setReturnValue(new EntityRendererMap(PROVIDERS, context)); ModernFix.LOGGER.info("Dynamic entity renderer hook setup"); } diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ModelBakeryMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ModelBakeryMixin.java index 4d76363d..a72b0dd2 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ModelBakeryMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ModelBakeryMixin.java @@ -122,7 +122,7 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery { if(prototype == missingModel) { model = bakedMissingModel; } else { - prototype.resolveParents(this::getModel); + prototype.resolveDependencies(this::getModel); if(DEBUG_MODEL_LOADS) { ModernFix.LOGGER.info("Baking model {}", location); } diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ModelManagerMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ModelManagerMixin.java index b0e6379e..f8ac8d85 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ModelManagerMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ModelManagerMixin.java @@ -2,15 +2,14 @@ package org.embeddedt.modernfix.common.mixin.perf.dynamic_resources; import com.google.common.collect.ImmutableList; import com.llamalad7.mixinextras.sugar.Local; +import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.resources.model.AtlasSet; import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.client.resources.model.BlockStateModelLoader; import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.client.resources.model.ModelManager; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; -import net.minecraft.util.GsonHelper; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; @@ -34,12 +33,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.io.BufferedReader; import java.io.IOException; import java.util.HashMap; -import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; -import java.util.stream.Collectors; @Mixin(ModelManager.class) @ClientOnlyMixin @@ -62,11 +58,14 @@ public class ModelManagerMixin implements IExtendedModelManager { return CompletableFuture.completedFuture(new LambdaMap<>(location -> cache.getUnchecked(location))); } + // TODO - make blockstate unbaked model loading lazy + /* @Redirect(method = "reload", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/resources/model/ModelManager;loadBlockStates(Lnet/minecraft/server/packs/resources/ResourceManager;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;")) private CompletableFuture>> deferBlockStateLoad(ResourceManager manager, Executor executor) { var cache = CacheUtil.>simpleCacheForLambda(location -> loadSingleBlockState(manager, location), 100L); return CompletableFuture.completedFuture(new LambdaMap<>(location -> cache.getUnchecked(location))); } + */ @Redirect(method = "loadModels", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/block/state/StateDefinition;getPossibleStates()Lcom/google/common/collect/ImmutableList;")) private ImmutableList skipCollection(StateDefinition definition) { @@ -84,6 +83,7 @@ public class ModelManagerMixin implements IExtendedModelManager { }).orElse(null); } + /* private List loadSingleBlockState(ResourceManager manager, ResourceLocation location) { return manager.getResourceStack(location).stream().map(resource -> { try (BufferedReader reader = resource.openAsReader()) { @@ -94,9 +94,10 @@ public class ModelManagerMixin implements IExtendedModelManager { } }).filter(Objects::nonNull).collect(Collectors.toList()); } + */ @Inject(method = "loadModels", at = @At("RETURN")) - private void storeTicker(ProfilerFiller profilerFiller, Map map, ModelBakery modelBakery, CallbackInfoReturnable cir) { + private void storeTicker(ProfilerFiller profilerFiller, Map map, ModelBakery modelBakery, Object2IntMap object2IntMap, CallbackInfoReturnable cir) { tickHandler = ((IExtendedModelBakery)modelBakery)::mfix$tick; } diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/model_optimizations/BooleanPropertyMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/model_optimizations/BooleanPropertyMixin.java deleted file mode 100644 index 11d6bd3a..00000000 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/model_optimizations/BooleanPropertyMixin.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.embeddedt.modernfix.common.mixin.perf.model_optimizations; - -import com.google.common.collect.ImmutableSet; -import net.minecraft.world.level.block.state.properties.BooleanProperty; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(BooleanProperty.class) -public class BooleanPropertyMixin { - /** - * There is no point comparing the immutable sets in any two instances of this class, as they will always be - * the same. - */ - @Redirect(method = "equals", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableSet;equals(Ljava/lang/Object;)Z", remap = false), remap = false) - private boolean skipEqualityCheck(ImmutableSet instance, Object object) { - return true; - } -} diff --git a/common/src/main/java/org/embeddedt/modernfix/entity/EntityRendererMap.java b/common/src/main/java/org/embeddedt/modernfix/entity/EntityRendererMap.java index f9532eaf..adedb5e1 100644 --- a/common/src/main/java/org/embeddedt/modernfix/entity/EntityRendererMap.java +++ b/common/src/main/java/org/embeddedt/modernfix/entity/EntityRendererMap.java @@ -17,9 +17,9 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ExecutionException; -public class EntityRendererMap implements Map, EntityRenderer> { +public class EntityRendererMap implements Map, EntityRenderer> { private final Map, EntityRendererProvider> rendererProviders; - private final LoadingCache, EntityRenderer> rendererMap; + private final LoadingCache, EntityRenderer> rendererMap; private final EntityRendererProvider.Context context; public EntityRendererMap(Map, EntityRendererProvider> rendererProviders, EntityRendererProvider.Context context) { @@ -28,12 +28,12 @@ public class EntityRendererMap implements Map, EntityRenderer> this.rendererMap = CacheBuilder.newBuilder().build(new RenderConstructor()); } - class RenderConstructor extends CacheLoader, EntityRenderer> { + class RenderConstructor extends CacheLoader, EntityRenderer> { @Override - public EntityRenderer load(EntityType key) throws Exception { + public EntityRenderer load(EntityType key) throws Exception { EntityRendererProvider provider = rendererProviders.get(key); synchronized(EntityRenderers.class) { - EntityRenderer renderer; + EntityRenderer renderer; try { if(provider == null) throw new RuntimeException("Provider not registered"); @@ -69,9 +69,9 @@ public class EntityRendererMap implements Map, EntityRenderer> } @Override - public EntityRenderer get(Object o) { + public EntityRenderer get(Object o) { try { - EntityRenderer renderer = rendererMap.get((EntityType)o); + EntityRenderer renderer = rendererMap.get((EntityType)o); if(renderer == null) throw new AssertionError("Returned entity renderer should never be null"); return renderer; @@ -84,21 +84,21 @@ public class EntityRendererMap implements Map, EntityRenderer> @Nullable @Override - public EntityRenderer put(EntityType entityType, EntityRenderer entityRenderer) { - EntityRenderer old = rendererMap.getIfPresent(entityType); + public EntityRenderer put(EntityType entityType, EntityRenderer entityRenderer) { + EntityRenderer old = rendererMap.getIfPresent(entityType); rendererMap.put(entityType, entityRenderer); return old; } @Override - public EntityRenderer remove(Object o) { - EntityRenderer r = rendererMap.getIfPresent(o); + public EntityRenderer remove(Object o) { + EntityRenderer r = rendererMap.getIfPresent(o); rendererMap.invalidate(o); return r; } @Override - public void putAll(@NotNull Map, ? extends EntityRenderer> map) { + public void putAll(@NotNull Map, ? extends EntityRenderer> map) { rendererMap.putAll(map); } @@ -115,13 +115,13 @@ public class EntityRendererMap implements Map, EntityRenderer> @NotNull @Override - public Collection> values() { + public Collection> values() { return rendererMap.asMap().values(); } @NotNull @Override - public Set, EntityRenderer>> entrySet() { + public Set, EntityRenderer>> entrySet() { return rendererMap.asMap().entrySet(); } } diff --git a/common/src/main/java/org/embeddedt/modernfix/entity/ErroredEntityRenderer.java b/common/src/main/java/org/embeddedt/modernfix/entity/ErroredEntityRenderer.java index 14e97369..4ef327f3 100644 --- a/common/src/main/java/org/embeddedt/modernfix/entity/ErroredEntityRenderer.java +++ b/common/src/main/java/org/embeddedt/modernfix/entity/ErroredEntityRenderer.java @@ -5,26 +5,25 @@ import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.culling.Frustum; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererProvider; -import net.minecraft.client.renderer.texture.TextureAtlas; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.client.renderer.entity.state.EntityRenderState; import net.minecraft.world.entity.Entity; -public class ErroredEntityRenderer extends EntityRenderer { +public class ErroredEntityRenderer extends EntityRenderer { public ErroredEntityRenderer(EntityRendererProvider.Context arg) { super(arg); } - @Override - public ResourceLocation getTextureLocation(T entity) { - return TextureAtlas.LOCATION_BLOCKS; - } - @Override public boolean shouldRender(T livingEntity, Frustum camera, double camX, double camY, double camZ) { return false; } @Override - public void render(T entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource buffer, int packedLight) { + public EntityRenderState createRenderState() { + return null; + } + + @Override + public void render(EntityRenderState entityRenderState, PoseStack poseStack, MultiBufferSource multiBufferSource, int i) { } } diff --git a/common/src/main/java/org/embeddedt/modernfix/render/SimpleItemModelView.java b/common/src/main/java/org/embeddedt/modernfix/render/SimpleItemModelView.java index ff2c2312..67d46204 100644 --- a/common/src/main/java/org/embeddedt/modernfix/render/SimpleItemModelView.java +++ b/common/src/main/java/org/embeddedt/modernfix/render/SimpleItemModelView.java @@ -1,8 +1,8 @@ package org.embeddedt.modernfix.render; import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import net.minecraft.client.renderer.block.model.BakedOverrides; import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.renderer.block.model.ItemOverrides; import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.BakedModel; @@ -88,7 +88,7 @@ public class SimpleItemModelView implements BakedModel { } @Override - public ItemOverrides getOverrides() { - return wrappedItem.getOverrides(); + public BakedOverrides overrides() { + return wrappedItem.overrides(); } } diff --git a/common/src/main/java/org/embeddedt/modernfix/resources/ReloadExecutor.java b/common/src/main/java/org/embeddedt/modernfix/resources/ReloadExecutor.java index 3e79130f..3a9026b2 100644 --- a/common/src/main/java/org/embeddedt/modernfix/resources/ReloadExecutor.java +++ b/common/src/main/java/org/embeddedt/modernfix/resources/ReloadExecutor.java @@ -2,6 +2,7 @@ package org.embeddedt.modernfix.resources; import net.minecraft.ReportType; import net.minecraft.ReportedException; +import net.minecraft.TracingExecutor; import net.minecraft.server.Bootstrap; import org.embeddedt.modernfix.ModernFix; @@ -12,10 +13,10 @@ import java.util.concurrent.ForkJoinWorkerThread; import java.util.concurrent.atomic.AtomicInteger; public class ReloadExecutor { - public static ExecutorService createCustomResourceReloadExecutor() { + public static TracingExecutor createCustomResourceReloadExecutor() { ClassLoader loader = ReloadExecutor.class.getClassLoader(); AtomicInteger workerCount = new AtomicInteger(0); - return new ForkJoinPool(ForkJoinPool.getCommonPoolParallelism(), (forkJoinPool) -> { + return new TracingExecutor(new ForkJoinPool(ForkJoinPool.getCommonPoolParallelism(), (forkJoinPool) -> { ForkJoinWorkerThread forkJoinWorkerThread = new ForkJoinWorkerThread(forkJoinPool) { protected void onTermination(Throwable throwOnTermination) { if (throwOnTermination != null) { @@ -31,7 +32,7 @@ public class ReloadExecutor { forkJoinWorkerThread.setContextClassLoader(loader); forkJoinWorkerThread.setName("Worker-ResourceReload-" + workerCount.getAndIncrement()); return forkJoinWorkerThread; - }, ReloadExecutor::handleException, true); + }, ReloadExecutor::handleException, true)); } private static void handleException(Thread thread, Throwable throwable) { diff --git a/common/src/main/java/org/embeddedt/modernfix/util/NamedPreparableResourceListener.java b/common/src/main/java/org/embeddedt/modernfix/util/NamedPreparableResourceListener.java index a8729114..360089f1 100644 --- a/common/src/main/java/org/embeddedt/modernfix/util/NamedPreparableResourceListener.java +++ b/common/src/main/java/org/embeddedt/modernfix/util/NamedPreparableResourceListener.java @@ -2,7 +2,6 @@ package org.embeddedt.modernfix.util; import net.minecraft.server.packs.resources.PreparableReloadListener; import net.minecraft.server.packs.resources.ResourceManager; -import net.minecraft.util.profiling.ProfilerFiller; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; @@ -14,8 +13,8 @@ public class NamedPreparableResourceListener implements PreparableReloadListener } @Override - public CompletableFuture reload(PreparationBarrier stage, ResourceManager resourceManager, ProfilerFiller preparationsProfiler, ProfilerFiller reloadProfiler, Executor backgroundExecutor, Executor gameExecutor) { - return this.delegate.reload(stage, resourceManager, preparationsProfiler, reloadProfiler, backgroundExecutor, gameExecutor); + public CompletableFuture reload(PreparationBarrier stage, ResourceManager resourceManager, Executor backgroundExecutor, Executor gameExecutor) { + return this.delegate.reload(stage, resourceManager, backgroundExecutor, gameExecutor); } @Override diff --git a/gradle.properties b/gradle.properties index 1ab5311c..ae265937 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,8 +5,8 @@ junit_version=5.10.0-M1 mixinextras_version=0.3.2 mod_id=modernfix -minecraft_version=1.21.1 -enabled_platforms=fabric,neoforge +minecraft_version=1.21.2-pre1 +enabled_platforms=fabric forge_version=21.1.15 parchment_version=2024.07.07 parchment_mc_version=1.21 @@ -18,8 +18,8 @@ kubejs_version=1902.6.0-build.142 rhino_version=1902.2.2-build.268 supported_minecraft_versions=1.21.1 -fabric_loader_version=0.15.11 -fabric_api_version=0.102.1+1.21.1 +fabric_loader_version=0.16.6 +fabric_api_version=0.105.3+1.21.2 continuity_version=3.0.0-beta.4+1.20.2