fabric-resource-loader-v0-3.3.1+d4d4122a6f.jar
Download file
package net.fabricmc.fabric.mixin.resource.loader;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Consumer;
import net.fabricmc.fabric.impl.resource.loader.ModResourcePackCreator;
import net.minecraft.class_2596;
import net.minecraft.class_9223;
import net.minecraft.class_9226;
import net.minecraft.class_9250;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
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.callback.CallbackInfo;
@Mixin({class_9223.class})
public abstract class SynchronizeRegistriesTaskMixin {
@Unique
private static final Logger LOGGER = LoggerFactory.getLogger("SynchronizeRegistriesTaskMixin");
@Shadow
@Final
private List<class_9226> field_49029;
@Shadow
protected abstract void method_56925(Consumer<class_2596<?>> var1, Set<class_9226> var2);
@Inject(
method = {"method_56923(Ljava/util/List;Ljava/util/function/Consumer;)V"},
at = {@At("HEAD")},
cancellable = true
)
public void onSelectKnownPacks(List<class_9226> clientKnownPacks, Consumer<class_2596<?>> sender, CallbackInfo ci) {
if ((new HashSet(this.field_49029)).containsAll(clientKnownPacks)) {
this.method_56925(sender, Set.copyOf(clientKnownPacks));
ci.cancel();
}
}
@Inject(
method = {"method_56925(Ljava/util/function/Consumer;Ljava/util/Set;)V"},
at = {@At("HEAD")}
)
public void syncRegistryAndTags(Consumer<class_2596<?>> sender, Set<class_9226> commonKnownPacks, CallbackInfo ci) {
LOGGER.debug("Synchronizing registries with common known packs: {}", commonKnownPacks);
}
@Inject(
method = {"method_52376(Ljava/util/function/Consumer;)V"},
at = {@At("HEAD")},
cancellable = true
)
private void sendPacket(Consumer<class_2596<?>> sender, CallbackInfo ci) {
if (this.field_49029.size() > ModResourcePackCreator.MAX_KNOWN_PACKS) {
LOGGER.warn("Too many knownPacks: Found {}; max {}", this.field_49029.size(), ModResourcePackCreator.MAX_KNOWN_PACKS);
sender.accept(new class_9250(this.field_49029.subList(0, ModResourcePackCreator.MAX_KNOWN_PACKS)));
ci.cancel();
}
}
}
Download file