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!
`a`
❗ 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.
The following 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/compare/1.1.1...1.2