> ## 🚀 Back on Track:
> This is the first update since May and I hope to bring more frequent updates, school and real life had been holding me back a bit but I think I've found a good balance to continue making Lusk better and better, expect more updates in the next months!
> > _"Essentially, this is the best **Lusk's** ever been."_
> > \- JakeGBLP
> ## ❗ Breaking Changes:
> A lot of things have been removed in this update, mainly hardcoded stuff that i internally referred to as "_aliases_", this is because they are tough to maintain, i might add them back in the future but for now be on the lookout for errors, **always** test your code on a development server first.
# ⛏️ What Changed:
> Each addition is paired with a working example, but for most elements multiple patterns are available, consider checking the documentation for more info.
## ➕ Added:
- ## Events:
- Player - on Block Harvest: `on block harvest:`, `on harvest:`
- Armor Stand - on Manipulate: `on armor stand chest slot change:`
> This event has a lot of customization, it allows you to choose the interactions and which slots are being changed, check the documentation to know more.
- ## Types:
- ArmorStandInteraction: `change`, `swap`, `retrieve`, `place`
- BlockFace: `south face`, `up face`, `south east face` etc...
- ItemRarity: `common`, `uncommon`, `rare`, `epic`
> This replaces the old system from Paper.
- VoxelShape: The voxel shape of a block.
- ## Conditions:
- CondEntityStanding: `if player is standing:`
- CondVindicatorJohnny: `if {_vindicator} is johnny:`
- CondTridentCollided: `if event-projectile has collided:`
- CondTridentEnchanted: `if event-projectile is enchanted:`
- CondTridentLoyal: `if event-projectile is loyal:`
- CondBlockFaceCartesian: `if {_blockface} is cartesian:`
- CondEntityCanSit: `if victim can sit:`
- CondBoundingBoxWithin: `if {_location} is within bounding box {_boundingBox}
- CondEntityRoaring: `if {_enderDragon}, {_ravager} and {_someOtherEntity} are roaring:`
- ## Expressions:
- ExprRarity: `set item rarity of tool of player to epic`
- ExprRarityColor: `broadcat rarity color of item rarity of dragon egg`
- ExprVindicatorJohnny: `set whether or not {_vindicator} is johnny to true`
- ExprTridentLoyalty: `set loyalty level of event-projectile to 4`
- ExprFoxTrustedPlayers: `broadcast first trusted player of {_fox}`
- ExprBlockFaceModXYZ: `broadcast mod-y of {_blockfaces::*}`
- ExprBlockFaceVector: `broadcast vector direction of west face`
- ExprBlockFaceOpposite: `broadcast opposite blockface of {_storedBlockfaces::*}`
- ExprBlockFaceBetween: `set {_between} to face from {_block} to block below player`
- ExprBoundingBoxOf: `broadcast bounding box of event-block`
- ExprBoundingBoxesOfVoxelShape: `broadcast bounding boxes of {_voxelShape}`
- ExprNewBoundingBox: `set {_box} to a new bounding box`, `set {_boundingBox} to bounding box from {_loc1} to {_loc2}`
- ExprVoxelShapeOf: `broadcast voxel shape of target block`
- ## Sections:
- SecEvtDeath: `run on death of {_player}:`, `when {_wolf} dies:`
- SecEvtJump: `execute on {_player} jump:`, `when {_wolf} jumps:`
- SecEvtBreak: `execute on mine of {_block}:`, `when {_block} gets broken:`
## 🔃 Changes:
- ExprUsedTool:
- Fixed possible errors due to missing methods in older versions.
- Now works in the Elytra Boost event.
- Now allows you to get either the hand or the item in that hand ( the used item ).
- Improved Pattern.
- Block Faces:
- Each block face will only have "face" as a suffix for parity with skBee, Ex: `south face`, `up face`
- ExprFoxProperties:
- Added the sleeping property.
- Greatly improved the description, which now explains which properties can be set on which platform.
- CondEntityAwake -> CondEntitySleeping:
- Improved pattern to allow "asleep" and "sleeping".
- Changed `EffPass`'s documentation name from `Pass` to `Do Nothing...`.
- Made `Brewing Stand - on Brew`'s description more intuitive.
- Added `strict` keyword to `ExprCases` and expanded the description to explain in.
- Equipment Slots now require the word `slot` at the end., in other words, they must be suffixed by it.
- Versions can now be parsed and aren't required to be wrapped in a string: `send version 1.20.6`
- Fixed malformed pattern in the `Campfire - on Start` event.
- Fixed use of deprecated method in the `Entity - on Attack Push` event.
- Fixed ExprBestEquipmentSlot's register method being the exact same as another totally different element (fixed this oversight).
- Improved some patterns here and there.
- Improved Sections
- Stored Bounding Boxes are now persistent across restarts.
- CondServerAllows can now be used to check if the server allows any of the following: nether, end, flight.
- CondCharged now has better checks for crossbows (chances are it didn't work before).
- All classinfos should now have aliases.
## ➖ Removed:
- The old item/enchantment rarity system, now rarities are their own object and enchantments don't have a rarity of their own.
- Beacon Elements.
> These are BREAKING CHANGES!
- CondAxeable
- CondPathable
- CondStrippable
- CondTillable
- CondShearable
- CondSittable (somewhat replaced by CondEntityCanSit)
- CondWaxable
- CondCompostable
- EvtBlockPath
- EvtBlockStrip
- EvtBlockTill
- ExprAxeables
- ExprPathable(s)
- ExprStrippables
- ExprTillables
- ExprWaxables
- ExprShearables
- ExprSittables
- ExprCompostables
- ExprCompostChance
## ⚠️ The following elements are deprecated when using Skript 2.9 or newer
- CondBellResonating
- CondBellRinging
- Bell - on Resonate
- Bell - on Ring
- ExprBellResonatingTime
- ExprBellShakingTime
> EffRingBell is not being deprecated due to Skript's own version of this effect using Direction and Lusk's using blockfaces, so both can be used in different situations.
## ⚙️ Internal Changes:
- Renamed `CondCanBreatheUnderwater` to `CondEntityBreatheUnderwater`.
- Moved `ExprFireballItem` to fireball package.
- Tests wooo @Pikachu920
- Internal Skript version is 2.9.
- CondCanBeEnchanted negation is now on a separate pattern.
- CondCanBeEnchanted now takes `itemtypes` instead of `itemstacks`.
- The Equipment Slot classinfo now uses the EnumWrapper class.
- Added missing aliases and removed pointless aliases.
- Renamed Comparators.java to VersionComparators.java for more clarity.
- Due to the massive amount of removals most utility classes are now much smaller.
- Removed some trailing spaces.
- Replaced deprecated URL stuff in the UpdateChecker.
- Fixed version lang issue.
- Moved some method around in the main class.
- Added MIT license, wooo
- Improved build.gradle by a LOT.
- Added a method to check if a block break event will drops items.
- Switched to the new internal Skript comparator system.
## ✅ Summary:
- Trident API: 100%
- BlockFace API: 100%
- Fox API: 100%
- Vindicator API: 100%
- EquipmentSlot API: 90%
- BoundingBox API: 10%
**Full Changelog**: https://github.com/JakeGBLP/Lusk/comp
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }