diff --git a/core/src/main/java/org/geysermc/geyser/pack/url/GeyserUrlPackCodec.java b/core/src/main/java/org/geysermc/geyser/pack/url/GeyserUrlPackCodec.java index 391f78c4e..26ea72c7f 100644 --- a/core/src/main/java/org/geysermc/geyser/pack/url/GeyserUrlPackCodec.java +++ b/core/src/main/java/org/geysermc/geyser/pack/url/GeyserUrlPackCodec.java @@ -38,7 +38,7 @@ import java.nio.file.Path; public class GeyserUrlPackCodec extends UrlPackCodec { private final String url; private final String contentKey; - private final GeyserPathPackCodec fallback; + public final GeyserPathPackCodec fallback; public GeyserUrlPackCodec(String url) { this(url, ""); @@ -72,7 +72,7 @@ public class GeyserUrlPackCodec extends UrlPackCodec { @Override @NonNull public ResourcePack create() { - return fallback.create(); + return ResourcePackLoader.loadDownloadedPack(this); } @Override diff --git a/core/src/main/java/org/geysermc/geyser/registry/loader/ResourcePackLoader.java b/core/src/main/java/org/geysermc/geyser/registry/loader/ResourcePackLoader.java index a30292175..d01b6d2c9 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/loader/ResourcePackLoader.java +++ b/core/src/main/java/org/geysermc/geyser/registry/loader/ResourcePackLoader.java @@ -29,6 +29,7 @@ import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.api.event.lifecycle.GeyserLoadResourcePacksEvent; import org.geysermc.geyser.api.pack.ResourcePack; +import org.geysermc.geyser.api.pack.ResourcePackManifest; import org.geysermc.geyser.event.type.GeyserDefineResourcePacksEventImpl; import org.geysermc.geyser.pack.GeyserResourcePack; import org.geysermc.geyser.pack.GeyserResourcePackManifest; @@ -131,6 +132,35 @@ public class ResourcePackLoader implements RegistryLoader manifestReference = new AtomicReference<>(); try (ZipFile zip = new ZipFile(path.toFile()); @@ -138,7 +168,7 @@ public class ResourcePackLoader implements RegistryLoader { String name = x.getName(); if (SHOW_RESOURCE_PACK_LENGTH_WARNING && name.length() >= 80) { - GeyserImpl.getInstance().getLogger().warning("The resource pack " + path.getFileName() + GeyserImpl.getInstance().getLogger().warning("The resource pack " + packLocation + " has a file in it that meets or exceeds 80 characters in its path (" + name + ", " + name.length() + " characters long). This will cause problems on some Bedrock platforms." + " Please rename it to be shorter, or reduce the amount of folders needed to get to the file."); @@ -157,20 +187,15 @@ public class ResourcePackLoader implements RegistryLoader loadCdnEntries() { final Path cachedCdnPacksDirectory = GeyserImpl.getInstance().getBootstrap().getConfigFolder().resolve("cache").resolve("cdn-packs"); @@ -200,6 +225,8 @@ public class ResourcePackLoader implements RegistryLoader