fabric-resource-loader-v0-3.3.1+d4d4122a6f.jar
Download file
package net.fabricmc.fabric.mixin.resource.loader;
import com.mojang.datafixers.DataFixer;
import java.net.Proxy;
import java.util.List;
import net.fabricmc.fabric.impl.resource.loader.BuiltinModResourcePackSource;
import net.fabricmc.fabric.impl.resource.loader.FabricOriginalKnownPacksGetter;
import net.fabricmc.fabric.impl.resource.loader.ModNioResourcePack;
import net.minecraft.class_11545;
import net.minecraft.class_32;
import net.minecraft.class_3262;
import net.minecraft.class_3283;
import net.minecraft.class_3288;
import net.minecraft.class_6904;
import net.minecraft.class_7497;
import net.minecraft.class_9226;
import net.minecraft.server.MinecraftServer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin({MinecraftServer.class})
public class MinecraftServerMixin implements FabricOriginalKnownPacksGetter {
@Unique
private List<class_9226> fabric_originalKnownPacks;
@Inject(
method = {"<init>(Ljava/lang/Thread;Lnet/minecraft/class_32$class_5143;Lnet/minecraft/class_3283;Lnet/minecraft/class_6904;Ljava/net/Proxy;Lcom/mojang/datafixers/DataFixer;Lnet/minecraft/class_7497;Lnet/minecraft/class_11545;)V"},
at = {@At("TAIL")}
)
private void init(Thread serverThread, class_32.class_5143 session, class_3283 dataPackManager, class_6904 saveLoader, Proxy proxy, DataFixer dataFixer, class_7497 apiServices, class_11545 chunkLoadProgress, CallbackInfo ci) {
this.fabric_originalKnownPacks = saveLoader.comp_356().method_29213().flatMap((pack) -> pack.method_56926().comp_2332().stream()).toList();
}
@Redirect(
method = {"method_29736(Lnet/minecraft/class_3283;Lnet/minecraft/class_7712;ZZ)Lnet/minecraft/class_7712;"},
at = @At(
value = "INVOKE",
target = "Ljava/util/List;contains(Ljava/lang/Object;)Z"
)
)
private static boolean onCheckDisabled(List<String> list, Object o, class_3283 resourcePackManager) {
String profileId = (String)o;
boolean contains = list.contains(profileId);
if (contains) {
return true;
} else {
class_3288 profile = resourcePackManager.method_14449(profileId);
if (profile.method_29483() instanceof BuiltinModResourcePackSource) {
class_3262 pack = profile.method_14458();
boolean var11;
try {
boolean var10000;
label36: {
if (pack instanceof ModNioResourcePack) {
ModNioResourcePack modPack = (ModNioResourcePack)pack;
if (!modPack.getActivationType().isEnabledByDefault()) {
var10000 = true;
break label36;
}
}
var10000 = false;
}
var11 = var10000;
} catch (Throwable var10) {
if (pack != null) {
try {
pack.close();
} catch (Throwable var9) {
var10.addSuppressed(var9);
}
}
throw var10;
}
if (pack != null) {
pack.close();
}
return var11;
} else {
return false;
}
}
}
public List<class_9226> fabric_getOriginalKnownPacks() {
return this.fabric_originalKnownPacks;
}
}
Download file