mirror of
https://github.com/FabricMC/fabric.git
synced 2025-03-31 09:10:00 -04:00
further datapack loading tweaks
This commit is contained in:
parent
cc48548ff9
commit
73c6a2a9c2
5 changed files with 24 additions and 20 deletions
src/main/java/net/fabricmc/fabric
|
@ -45,15 +45,6 @@ public class MixinMinecraftServer {
|
|||
|
||||
@Inject(method = "method_3800", at = @At(value = "INVOKE", target = "Lnet/minecraft/class_3283;method_14443(Lnet/minecraft/class_3285;)V", ordinal = 1))
|
||||
public void method_3800(File file, LevelProperties properties, CallbackInfo info) {
|
||||
// TODO: "vanilla" does not emit a message; neither should a modded datapack
|
||||
List<ResourcePack> packs = new ArrayList<>();
|
||||
ModResourcePackUtil.appendModResourcePacks(packs, ResourceType.DATA);
|
||||
for (ResourcePack pack : packs) {
|
||||
if (!(pack instanceof ModResourcePack)) {
|
||||
throw new RuntimeException("Not a ModResourcePack!");
|
||||
}
|
||||
|
||||
field_4595.method_14443(new ModDataPackSupplier((ModResourcePack) pack));
|
||||
}
|
||||
field_4595.method_14443(new ModDataPackSupplier());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,23 +18,30 @@ package net.fabricmc.fabric.resources;
|
|||
|
||||
import net.minecraft.class_3285;
|
||||
import net.minecraft.class_3288;
|
||||
import net.minecraft.resource.ResourcePack;
|
||||
import net.minecraft.resource.ResourceType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class ModDataPackSupplier implements class_3285 {
|
||||
private final ModResourcePack pack;
|
||||
|
||||
public ModDataPackSupplier(ModResourcePack pack) {
|
||||
this.pack = pack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends class_3288> void method_14453(Map<String, T> map, class_3288.class_3290<T> class_3290) {
|
||||
T var3 = class_3288.method_14456("fabric:" + pack.getModInfo().getId(),
|
||||
false, () -> this.pack, class_3290, class_3288.class_3289.BOTTOM);
|
||||
// TODO: "vanilla" does not emit a message; neither should a modded datapack
|
||||
List<ResourcePack> packs = new ArrayList<>();
|
||||
ModResourcePackUtil.appendModResourcePacks(packs, ResourceType.DATA);
|
||||
for (ResourcePack pack : packs) {
|
||||
if (!(pack instanceof ModResourcePack)) {
|
||||
throw new RuntimeException("Not a ModResourcePack!");
|
||||
}
|
||||
|
||||
if (var3 != null) {
|
||||
map.put(var3.method_14463(), var3);
|
||||
T var3 = class_3288.method_14456("fabric/" + ((ModResourcePack) pack).getModInfo().getId(),
|
||||
false, () -> pack, class_3290, class_3288.class_3289.BOTTOM);
|
||||
|
||||
if (var3 != null) {
|
||||
map.put(var3.method_14463(), var3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ package net.fabricmc.fabric.resources;
|
|||
import net.fabricmc.loader.ModInfo;
|
||||
import net.minecraft.resource.DirectoryResourcePack;
|
||||
import net.minecraft.resource.ResourceNotFoundException;
|
||||
import net.minecraft.resource.ResourceType;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
|
|
|
@ -18,7 +18,11 @@ package net.fabricmc.fabric.resources;
|
|||
|
||||
import net.fabricmc.loader.ModInfo;
|
||||
import net.minecraft.resource.ResourcePack;
|
||||
import net.minecraft.resource.ResourceType;
|
||||
|
||||
public interface ModResourcePack extends ResourcePack {
|
||||
ModInfo getModInfo();
|
||||
default boolean provides(ResourceType type) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ package net.fabricmc.fabric.resources;
|
|||
import com.google.common.io.ByteStreams;
|
||||
import net.fabricmc.loader.ModInfo;
|
||||
import net.minecraft.resource.ResourceNotFoundException;
|
||||
import net.minecraft.resource.ResourceType;
|
||||
import net.minecraft.resource.ZipResourcePack;
|
||||
|
||||
import java.io.File;
|
||||
|
|
Loading…
Add table
Reference in a new issue