Blocking Components
Problem
Skript does not have support for Blocking Components, otherwise known as BlocksAttacks. Skript should include this since it's vanilla.
Solution
Adds BlockingWrapper that extends ComponentWrapper and handles modifying data of the underlying BlocksAttacks component.
Adds DamageFunctionWrapper that wraps ItemDamageFunction. This handles changing data of the wrapped ItemDamageFunction. This can be created with a parenting BlockingWrapper to specify that any changes made to the underlying ItemDamageFunction should take place on the BlockingWrapper. Using the wrapper to change the ItemDamageFunction of any BlockingWrapper should not presume to be the parent, as it can and should be used on multiple BlockingWrappers.
Adds DamageReductionWrapper that wraps DamageReduction. This handles changing data of the wrapped DamageReduction. This can be created with a parenting BlockingWrapper to specify that any changes made to the underlying DamageReduction should take place on the BlockingWrapper. Using the wrapper to change the DamageReductions of any BlockingWrapper should not presume to be the parent, as it can and should be used on multiple BlockingWrappers.
Adds builders for BlocksAttacks, ItemDamageFunction, and DamageReduction as there was no way to convert an existing finalized object back into the builder provided by Paper.
Adds BlockingExperimentalSyntax for all related syntax elements. This component, just like every other, are experimental.
Adds all syntax elements that correlate to retrieving and modifying BlockingWrappers, DamageFunctionWrappers, and DamageReductionWrappers
Testing Completed
BlockingComponents.sk
Supporting Information
N/A
Completes: none Related: none