package net.minestom.server.item.armor; import net.kyori.adventure.text.Component; import net.minestom.server.item.Material; import net.minestom.server.registry.StaticProtocolObject; import net.minestom.server.registry.Registry; import net.minestom.server.utils.NamespaceID; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jglrxavpok.hephaistos.nbt.NBTCompound; import java.util.Collection; public interface TrimPattern extends StaticProtocolObject { static @NotNull TrimPattern create(@NotNull NamespaceID namespace, @NotNull NamespaceID assetID, @NotNull Material template, @NotNull Component description, boolean decal, @NotNull Registry.Properties custom) { return new TrimPatternImpl( new Registry.TrimPatternEntry(namespace, assetID, template, description, decal, custom) ); } static @NotNull TrimPattern create(@NotNull NamespaceID namespace, @NotNull NamespaceID assetID, @NotNull Material template, @NotNull Component description, boolean decal) { return new TrimPatternImpl( new Registry.TrimPatternEntry(namespace, assetID, template, description, decal, null) ); } static Collection values() { return TrimPatternImpl.values(); } @Contract(pure = true) @NotNull Registry.TrimPatternEntry registry(); @Override default @NotNull NamespaceID namespace() { return registry().namespace(); } default @NotNull NamespaceID assetID() { return registry().assetID(); } default @NotNull Material template() { return registry().template(); } default @NotNull Component description() { return registry().description(); } default boolean decal() { return registry().decal(); } NBTCompound asNBT(); }