ProviderConditionalAn all in one conditional to determine what wield style the player will get when they equip an ExCap weapon, ExCap weapons always use a provider conditional to determine what wield style and whether an item would be visible when it's in the off hand. So therefore, to make a moveset, you will need to make a Provider that points to said moveset in the ExCap weapon, or else your moveset would not even be returned by the built-in provider.
To make a ProviderConditional you use the ProviderConditional.Builder. This class is in charge of constructing a ProviderConditional without the hassle of using a constructor and makes the code easier and more intitutive to pick up for other newer modders. A static method in ProviderConditional.class called ProviderConditional.builder() is meant to create said builder before calling .build() to complete and create the conditional.
setWieldStyle(Style)This method sets the final Wield Style that the provider conditional will give when its conditions are all satisfied.
isVisibleOffHand(boolean)This method looks at whether a weapon is visible in the Off Hand Slot when you are wielding said weapon.
setType(ProviderConditionalType)Sets what type will the Provider Conditional be, defaults to DEFAULT.
setSkillToCheck(Skill)This method sets the skill that a Skill Provider would check for.
setKey(SkillDataKey<Boolean>)This checks for what Skill Data Key (Namely a Boolean Key) to check for, only Boolean Keys are accepted.
setSlot(SkillSlot)This sets the Provider Conditional what specific skill slot to check the skill for.
setWeapon(Item)Sets the specific weapon to check for, like what Item it is.
setCategory(WeaponCategory)Sets what weapon category the provider should check the weapon.
setHand(InteractionHand)Sets which hand to check for doing weapon checks. At this point, you must specify what hand in your weapon-based Providers. In v7.4 this will be defaulted to InteractionHand.OFF_HAND
setProviderConditionals(ProviderConditional...)Specify what provider conditionals will be added to this Composite provider conditional. They don&apost need to have a style or visible off hand set since they only return a true/false value.
setCustomFunction(Function<LivingEntityPatch<?>, Boolean)Sets what custom function will be run when the provider is set to Custom. In v7.4 this will be replaced with a Predicate<LivingEntityPatch<?>.
ProviderConditionalType is an Enumerator, which means that the types are rather fixed and it determines what the Provider Conditional will do when the provider conditional is fired. The number beside the type determines priority, provider conditionals are sorted by priority, so higher priority conditionals will go first.
DEFAULT (0)The default type, often placed last.
WEAPON_CATEGORY (1)A selected InteractionHand check for Weapon Category.
SPECIFIC_WEAPON (2)A selected InteractionHand check for a Specific Weapon.
SKILL_EXISTENCE (3)A Skill Check for a selected slot (Optional) to check for said skill (Required).
SKILL_ACTIVATION (4)A Skill Check for a selected slot (Optional) to check for said skill (Required) if it&aposs activated.
DATA_KEY (5)A Skill Check for a selected slot (Optional) to check for said skill (Required) and check whether a SkillDataKey<Boolean> is set to true.
COMPOSITE (6)A composite provider that has multiple providers within itself that checks each provider iteratively. Will be changed to grab the highest priority of a provider conditional type + 1.
CUSTOM (7)A custom predicate function, basically uses a predicate to check if said custom conditions are fulfilled to then provide a style.
public static ProviderConditional default1HWieldStyle = ProviderConditional.builder().setType(ProviderConditionalType.DEFAULT).setWieldStyle(CapabilityItem.Styles.ONE_HAND).isVisibleOffHand(true).build();