Patch VanillaPackResources.getResource since it's still an issue
This commit is contained in:
parent
f36074376b
commit
c269cbedac
|
|
@ -17,7 +17,7 @@ public class ModernFixEarlyConfig {
|
||||||
// Defines the default rules which can be configured by the user or other mods.
|
// Defines the default rules which can be configured by the user or other mods.
|
||||||
// You must manually add a rule for any new mixins not covered by an existing package rule.
|
// You must manually add a rule for any new mixins not covered by an existing package rule.
|
||||||
this.addMixinRule("core", true); // TODO: Don't actually allow the user to disable this
|
this.addMixinRule("core", true); // TODO: Don't actually allow the user to disable this
|
||||||
this.addMixinRule("perf.modern_resourcepacks", false);
|
this.addMixinRule("perf.modern_resourcepacks", true);
|
||||||
this.addMixinRule("feature.branding", true);
|
this.addMixinRule("feature.branding", true);
|
||||||
this.addMixinRule("feature.measure_time", true);
|
this.addMixinRule("feature.measure_time", true);
|
||||||
this.addMixinRule("feature.reduce_loading_screen_freezes", false);
|
this.addMixinRule("feature.reduce_loading_screen_freezes", false);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
package org.embeddedt.modernfix.mixin.perf.modern_resourcepacks;
|
||||||
|
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.server.packs.PackType;
|
||||||
|
import net.minecraft.server.packs.VanillaPackResources;
|
||||||
|
import org.spongepowered.asm.mixin.Final;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Mixin(VanillaPackResources.class)
|
||||||
|
public class VanillaPackResourcesMixin {
|
||||||
|
@Shadow @Final private static Map<PackType, Path> ROOT_DIR_BY_TYPE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author embeddedt
|
||||||
|
* @reason avoid going through the module class loader when we know exactly what path this resource should come
|
||||||
|
* from
|
||||||
|
*/
|
||||||
|
@Overwrite
|
||||||
|
protected InputStream getResourceAsStream(PackType type, ResourceLocation location) {
|
||||||
|
Path rootPath = ROOT_DIR_BY_TYPE.get(type);
|
||||||
|
Path targetPath = rootPath.resolve(location.getNamespace() + "/" + location.getPath());
|
||||||
|
try {
|
||||||
|
return Files.newInputStream(targetPath);
|
||||||
|
} catch(IOException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
"refmap": "modernfix.refmap.json",
|
"refmap": "modernfix.refmap.json",
|
||||||
"mixins": [
|
"mixins": [
|
||||||
"bugfix.edge_chunk_not_saved.ChunkManagerMixin",
|
"bugfix.edge_chunk_not_saved.ChunkManagerMixin",
|
||||||
|
"perf.modern_resourcepacks.VanillaPackResourcesMixin",
|
||||||
"perf.remove_biome_temperature_cache.BiomeMixin",
|
"perf.remove_biome_temperature_cache.BiomeMixin",
|
||||||
"perf.reduce_blockstate_cache_rebuilds.GameDataMixin",
|
"perf.reduce_blockstate_cache_rebuilds.GameDataMixin",
|
||||||
"perf.reduce_blockstate_cache_rebuilds.BlockCallbacksMixin",
|
"perf.reduce_blockstate_cache_rebuilds.BlockCallbacksMixin",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user