Spaces:
Build error
Build error
File size: 2,211 Bytes
d46f4a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
package net.minecraft.client.multiplayer;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMap.Builder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import net.minecraft.server.packs.PackLocationInfo;
import net.minecraft.server.packs.PackResources;
import net.minecraft.server.packs.PackType;
import net.minecraft.server.packs.repository.KnownPack;
import net.minecraft.server.packs.repository.Pack;
import net.minecraft.server.packs.repository.PackRepository;
import net.minecraft.server.packs.repository.ServerPacksSource;
import net.minecraft.server.packs.resources.CloseableResourceManager;
import net.minecraft.server.packs.resources.MultiPackResourceManager;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
public class KnownPacksManager {
private final PackRepository repository = ServerPacksSource.createVanillaTrustedRepository();
private final Map<KnownPack, String> knownPackToId;
public KnownPacksManager() {
this.repository.reload();
Builder<KnownPack, String> builder = ImmutableMap.builder();
this.repository.getAvailablePacks().forEach(p_334709_ -> {
PackLocationInfo packlocationinfo = p_334709_.location();
packlocationinfo.knownPackInfo().ifPresent(p_333246_ -> builder.put(p_333246_, packlocationinfo.id()));
});
this.knownPackToId = builder.build();
}
public List<KnownPack> trySelectingPacks(List<KnownPack> p_332560_) {
List<KnownPack> list = new ArrayList<>(p_332560_.size());
List<String> list1 = new ArrayList<>(p_332560_.size());
for (KnownPack knownpack : p_332560_) {
String s = this.knownPackToId.get(knownpack);
if (s != null) {
list1.add(s);
list.add(knownpack);
}
}
this.repository.setSelected(list1);
return list;
}
public CloseableResourceManager createResourceManager() {
List<PackResources> list = this.repository.openAllSelected();
return new MultiPackResourceManager(PackType.SERVER_DATA, list);
}
} |