# PackDefinition A named pack from `resourcepacks:` in config. Holds an ordered list of variants; the first matching variant is selected per-player. --- ## Source ```java package gg.lode.paintingapi.api.model; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.List; public final class PackDefinition { private final String name; private final List<PackVariant> variants; public PackDefinition(@NotNull String name, @NotNull List<PackVariant> variants) { this.name = name; this.variants = Collections.unmodifiableList(variants); } public @NotNull String name() { return name; } public @NotNull List<PackVariant> variants() { return variants; } public @Nullable PackVariant pickFor(int protocol) { for (PackVariant variant : variants) { if (variant.matches(protocol)) return variant; } return null; } } ``` --- ## Related Pages - [[Painting/API/PackVariant]] — variant entries returned by `variants()` - [[Painting/API/IPaintingAPI]] — `getPackDefinition(String)` returns this type