Partially revert fapi fix and simply ignore fapi packs in ReloadableResourceManagerImplMixin (at least for now)
This commit is contained in:
parent
541a552ae2
commit
16abb81b15
@ -6,7 +6,7 @@ minecraft_version=1.17.1
|
|||||||
yarn_mappings=build.61
|
yarn_mappings=build.61
|
||||||
loader_version=0.11.6
|
loader_version=0.11.6
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=1.2.1
|
mod_version=1.2.2
|
||||||
maven_group=io.gitlab.jfronny
|
maven_group=io.gitlab.jfronny
|
||||||
archives_base_name=libjf
|
archives_base_name=libjf
|
||||||
|
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
package io.gitlab.jfronny.libjf.data;
|
|
||||||
|
|
||||||
import net.minecraft.resource.ResourceType;
|
|
||||||
|
|
||||||
import java.nio.file.Path;
|
|
||||||
|
|
||||||
public interface IModNioResourcePack {
|
|
||||||
Path getBasePath();
|
|
||||||
ResourceType getResourceType();
|
|
||||||
AutoCloseable getCloser();
|
|
||||||
}
|
|
@ -1,16 +1,14 @@
|
|||||||
package io.gitlab.jfronny.libjf.data;
|
package io.gitlab.jfronny.libjf.data;
|
||||||
|
|
||||||
import io.gitlab.jfronny.libjf.data.wrappedPackImpl.WrappedModNioResourcePack;
|
|
||||||
import io.gitlab.jfronny.libjf.data.wrappedPackImpl.WrappedResourcePack;
|
import io.gitlab.jfronny.libjf.data.wrappedPackImpl.WrappedResourcePack;
|
||||||
import net.fabricmc.fabric.impl.resource.loader.ModNioResourcePack;
|
|
||||||
import net.minecraft.resource.ResourcePack;
|
import net.minecraft.resource.ResourcePack;
|
||||||
|
|
||||||
public interface WrappedPack extends ResourcePack {
|
public interface WrappedPack extends ResourcePack {
|
||||||
ResourcePack getUnderlying();
|
ResourcePack getUnderlying();
|
||||||
|
|
||||||
static WrappedPack create(ResourcePack underlying) {
|
static WrappedPack create(ResourcePack underlying) {
|
||||||
if (underlying instanceof ModNioResourcePack mi)
|
//if (underlying instanceof ModNioResourcePack mi)
|
||||||
return new WrappedModNioResourcePack(mi);
|
// return new WrappedModNioResourcePack(mi);
|
||||||
return new WrappedResourcePack(underlying);
|
return new WrappedResourcePack(underlying);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
package io.gitlab.jfronny.libjf.data.wrappedPackImpl;
|
|
||||||
|
|
||||||
import io.gitlab.jfronny.libjf.data.IModNioResourcePack;
|
|
||||||
import io.gitlab.jfronny.libjf.data.WrappedPack;
|
|
||||||
import net.fabricmc.fabric.impl.resource.loader.ModNioResourcePack;
|
|
||||||
import net.minecraft.resource.ResourcePack;
|
|
||||||
import net.minecraft.resource.ResourceType;
|
|
||||||
import net.minecraft.util.Identifier;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.function.Predicate;
|
|
||||||
|
|
||||||
public class WrappedModNioResourcePack extends ModNioResourcePack implements WrappedPack {
|
|
||||||
private final ModNioResourcePack underlying;
|
|
||||||
|
|
||||||
public WrappedModNioResourcePack(ModNioResourcePack underlying) {
|
|
||||||
super(underlying.getFabricModMetadata(), ((IModNioResourcePack)underlying).getBasePath(), ((IModNioResourcePack)underlying).getResourceType(), ((IModNioResourcePack)underlying).getCloser(), underlying.getActivationType());
|
|
||||||
this.underlying = underlying;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ResourcePack getUnderlying() {
|
|
||||||
return underlying;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Collection<Identifier> findResources(ResourceType type, String namespace, String path, int depth, Predicate<String> predicate) {
|
|
||||||
return EventCallImpl.hookFindResources(this, type, namespace, path, depth, predicate);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public InputStream open(ResourceType type, Identifier id) throws IOException {
|
|
||||||
return EventCallImpl.hookOpen(this, type, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean contains(ResourceType type, Identifier id) {
|
|
||||||
return EventCallImpl.hookContains(this, type, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public InputStream openRoot(String fileName) throws IOException {
|
|
||||||
return EventCallImpl.hookOpenRoot(this, fileName);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
package io.gitlab.jfronny.libjf.mixin;
|
|
||||||
|
|
||||||
import io.gitlab.jfronny.libjf.data.IModNioResourcePack;
|
|
||||||
import net.fabricmc.fabric.impl.resource.loader.ModNioResourcePack;
|
|
||||||
import net.minecraft.resource.ResourceType;
|
|
||||||
import org.spongepowered.asm.mixin.Final;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
|
||||||
|
|
||||||
import java.nio.file.Path;
|
|
||||||
|
|
||||||
@Mixin(ModNioResourcePack.class)
|
|
||||||
public class ModNioResourcePackMixin implements IModNioResourcePack {
|
|
||||||
@Shadow @Final private ResourceType type;
|
|
||||||
@Shadow @Final private AutoCloseable closer;
|
|
||||||
@Shadow @Final private Path basePath;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Path getBasePath() {
|
|
||||||
return basePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ResourceType getResourceType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public AutoCloseable getCloser() {
|
|
||||||
return closer;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,8 @@
|
|||||||
package io.gitlab.jfronny.libjf.mixin;
|
package io.gitlab.jfronny.libjf.mixin;
|
||||||
|
|
||||||
import io.gitlab.jfronny.libjf.data.WrappedPack;
|
import io.gitlab.jfronny.libjf.data.WrappedPack;
|
||||||
|
import net.fabricmc.fabric.impl.resource.loader.FabricModResourcePack;
|
||||||
|
import net.fabricmc.fabric.impl.resource.loader.ModNioResourcePack;
|
||||||
import net.minecraft.resource.ReloadableResourceManagerImpl;
|
import net.minecraft.resource.ReloadableResourceManagerImpl;
|
||||||
import net.minecraft.resource.ResourcePack;
|
import net.minecraft.resource.ResourcePack;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
@ -11,7 +13,7 @@ import org.spongepowered.asm.mixin.injection.ModifyVariable;
|
|||||||
public class ReloadableResourceManagerImplMixin {
|
public class ReloadableResourceManagerImplMixin {
|
||||||
@ModifyVariable(method = "addPack(Lnet/minecraft/resource/ResourcePack;)V", at = @At("HEAD"), argsOnly = true, ordinal = 0)
|
@ModifyVariable(method = "addPack(Lnet/minecraft/resource/ResourcePack;)V", at = @At("HEAD"), argsOnly = true, ordinal = 0)
|
||||||
private ResourcePack modifyPack(ResourcePack pack) {
|
private ResourcePack modifyPack(ResourcePack pack) {
|
||||||
if (pack instanceof WrappedPack) {
|
if (pack instanceof WrappedPack || pack instanceof ModNioResourcePack || pack instanceof FabricModResourcePack) { //TODO use ASM for this to allow mod resource packs
|
||||||
return pack;
|
return pack;
|
||||||
}
|
}
|
||||||
return WrappedPack.create(pack);
|
return WrappedPack.create(pack);
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
"compatibilityLevel": "JAVA_16",
|
"compatibilityLevel": "JAVA_16",
|
||||||
"mixins": [
|
"mixins": [
|
||||||
"EntityMixin",
|
"EntityMixin",
|
||||||
"ModNioResourcePackMixin",
|
|
||||||
"RecipeManagerMixin",
|
"RecipeManagerMixin",
|
||||||
|
"ReloadableResourceManagerImplMixin",
|
||||||
"ShulkerBoxBlockEntityMixin",
|
"ShulkerBoxBlockEntityMixin",
|
||||||
"ShulkerBoxSlotMixin"
|
"ShulkerBoxSlotMixin"
|
||||||
],
|
],
|
||||||
|
Loading…
Reference in New Issue
Block a user