Added `ConsumableConsumedEvent` to intercept a consumable being consumed, and ItemStats may now implement `SelfConsumable` to run a method when the food item is being eaten by a player.
```yml
crafting:
shaped:
'1':
- m MATERIAL WEAPON_POWDER 1|m MATERIAL WEAPON_POWDER 1|m MATERIAL WEAPON_POWDER 1
- m MATERIAL WEAPON_POWDER 1|m SWORD PLATINUM_SWORD{level=2..5} 1|m MATERIAL WEAPON_POWDER 1
- m MATERIAL WEAPON_POWDER 1|m MATERIAL WEAPON_POWDER 1|m MATERIAL WEAPON_POWDER 1
```
If you wanted them to work this way, feel free to add to your config:
```yml
# Abilities can be used even when
# the player is encumbered by the
# items that give them
abilities-bypass-encumbering: true
```
Also added `RefreshInventoryEvent` that allows API check of which items are getting equipped, and thus allows to modify them somewhat.
Here's an example of using it `- 'placeholder{placeholder=%ac_Stat_Weight%~>~1}'`
This means "Placholder ac_Stat_Weight is greater than 1" then use you use it with `hide-when-locked: true` to prevent the item from showing, or however you want to use it.
`placeholder{placeholder=<Placeholder>~<Comparator>~<Number>}`
It's simple, but a bit odd. You first declare the placeholder "%ac_Stat_Weight%", then chose the comparator ">" and finally the number to compare it to "1" all split up using the "~".
You can also compare the placeholder with Text/String when using the `equals` comparator
More info on the Wiki https://git.lumine.io/mythiccraft/mmoitems/-/wikis/Recipe-Conditions
This is an example of how to use it
`/mi give ACCESSORY BOOK_OF_STAMPS MonzterSlayer 1 0 100 0 silent`
You need to specify the unidentify-chance, drop-chance, and soulbound-chance, to then add silent.
If you use "s" or "silent" where I did, the message of "You received ITEM NAME" will not be sent to the Player. This does not affect any previous usages of the command, but if you want to use it, just add the "silent" argument!
Suppose the latest item has less gem slots / different colored gem slots, or you set keep-gems to FALSE. In all these scenarios, gems are 'lost' so that this config option (**true** by default!) gives them back to the player.
Enable in your config:
```
# Options for the Item Revision System
item-revision:
# If an item is updated, and the new version does not
# keep its gems, this will give the gems back to the
# player so that they don't get lost forever.
drop-extra-gems: true
```
Crafting recipes being visually constrained by additive RNG even when multiplicative is selected.
A pair of variables from the config not being read but until the first `/mmoitems reload`.
Also removed that strange empty slot when crafting stations display ingredients of amount divisible by 64
Implemented suggestion of ticket #403, you may add and edit the following quantities to your config.yml:
```yml
stats-displaying:
# This will be a prefix to numeric stats,
# changing their color when they are undesirable.
color-positive: '&b'
color-negative: '&9'
range-dash: '§f§l⎓'
```
https://git.lumine.io/mythiccraft/mmoitems/-/issues/403
A stat called "Projectile Particles" has been added for this purpose.
```
You may use any particle provided by Spigot. A list of available particles can be found here: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html
In addition to being able to change the particle, you can also change the color of certain particles. REDSTONE, SPELL_MOB, SPELL_MOB_AMBIENT, and NOTE can all change colors.
REDSTONE, SPELL_MOB, and SPELL_MOB_AMBIENT can use any RGB color. If selecting one of these particles, you must also provide a color. For example:
SPELL_MOB 255 255 0
NOTE particles are unique and instead require a single value between 1 and 24 for their color. For example:
NOTE 16
```
This functionality may be extended to other weapons such as muskets and whips in the future.