diff --git a/build.gradle b/build.gradle index 726e7ac71..d1210f370 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ plugins { def ENV = System.getenv() class Globals { - static def baseVersion = "0.11.3" + static def baseVersion = "0.11.4" static def mcVersion = "1.16-pre1" static def yarnVersion = "+build.1" } diff --git a/fabric-resource-loader-v0/build.gradle b/fabric-resource-loader-v0/build.gradle index 64b393fa6..51129ace5 100644 --- a/fabric-resource-loader-v0/build.gradle +++ b/fabric-resource-loader-v0/build.gradle @@ -1,2 +1,2 @@ archivesBaseName = "fabric-resource-loader-v0" -version = getSubprojectVersion(project, "0.2.1") +version = getSubprojectVersion(project, "0.2.2") diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinMinecraftServer.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinMinecraftServer.java deleted file mode 100644 index ef3f96ea8..000000000 --- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinMinecraftServer.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2016, 2017, 2018, 2019 FabricMC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.fabricmc.fabric.mixin.resource.loader; - -import org.apache.commons.lang3.ArrayUtils; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.ModifyArg; - -import net.minecraft.resource.ResourceType; -import net.minecraft.server.Main; -import net.minecraft.resource.ResourcePackProvider; - -import net.fabricmc.fabric.impl.resource.loader.ModResourcePackCreator; - -@Mixin(Main.class) -public class MixinMinecraftServer { - @ModifyArg(method = "main", at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/ResourcePackManager;<init>(Lnet/minecraft/resource/ResourcePackProfile$class_5351;[Lnet/minecraft/resource/ResourcePackProvider;)V")) - private static ResourcePackProvider[] appendFabricDataPacks(ResourcePackProvider[] packProviders) { - return ArrayUtils.add(packProviders, new ModResourcePackCreator(ResourceType.SERVER_DATA)); - } -} diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinResourcePackManager.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinResourcePackManager.java index ece28bb01..3568e1f9a 100644 --- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinResourcePackManager.java +++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/MixinResourcePackManager.java @@ -17,20 +17,41 @@ package net.fabricmc.fabric.mixin.resource.loader; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; +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; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import net.minecraft.resource.ResourcePack; import net.minecraft.resource.ResourcePackManager; +import net.minecraft.resource.ResourcePackProfile; +import net.minecraft.resource.ResourcePackProvider; +import net.minecraft.resource.ResourceType; import net.fabricmc.fabric.impl.resource.loader.ModResourcePackUtil; +import net.fabricmc.fabric.impl.resource.loader.ModResourcePackCreator; @Mixin(ResourcePackManager.class) -public class MixinResourcePackManager { +public class MixinResourcePackManager<T extends ResourcePackProfile> { + @Shadow + @Final + @Mutable + private Set<ResourcePackProvider> providers; + + @Inject(method = "<init>", at = @At("RETURN")) + public void construct(ResourcePackProfile.class_5351<T> arg, ResourcePackProvider[] resourcePackProviders, CallbackInfo info) { + providers = new HashSet<>(providers); + providers.add(new ModResourcePackCreator(ResourceType.SERVER_DATA)); + } + @Inject(method = "method_29211", at = @At("RETURN"), cancellable = true) public void method_29211(CallbackInfoReturnable<List<ResourcePack>> infoReturnable) { List<ResourcePack> list = new ArrayList<>(infoReturnable.getReturnValue()); diff --git a/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json b/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json index 30557a5d4..0fa1ebede 100644 --- a/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json +++ b/fabric-resource-loader-v0/src/main/resources/fabric-resource-loader-v0.mixins.json @@ -4,7 +4,6 @@ "compatibilityLevel": "JAVA_8", "mixins": [ "MixinKeyedResourceReloadListener$Server", - "MixinMinecraftServer", "MixinReloadableResourceManagerImpl", "MixinDefaultResourcePack" ],