🎄Merry Christmas!✝️
Merry Christmas everyone, I hope you've all had the chance to spend these last few days with your loved ones and I pray for all of you to be able to happily celebrate New Year's Eve; 2024 is coming to a close and after just over 4 months without public releases and a ton of work behind the scenes I'm happy to announce Lusk 1.3, this update took a while to make but I'm satisfied with the result and I think you'll be too!
If you're interested in getting early access to releases/features, join the skUnity Discord, I often give out betas and prereleases there.
Your Lusk
To go along with this release I would also like to mention that if you have any suggestions, ideas, want to see something added or just need help with something you can contact me at any time or open an issue here if appropriate!
Where there's demand there's supply.
» Official Download: Modrinth «
From now on all official releases of Lusk will only be available on Modrinth; Modrinth grants developers 75% of the ad revenue and this can REALLY help a ton when making updates!
Supported Versions:
- Minecraft 1.16.5 -> 1.21.4+ (Spigot and Paper)
- Skript 2.6.4 -> 2.10+
🚀 Added:
Each addition is paired with a working example, but for most elements multiple patterns are available, consider checking the documentation for more info.
⚒️ Anvil GUI:
Events:
- on Anvil Gui Open:
on anvil gui open:
- on Anvil Gui Click:
on anvil gui click:
- on Anvil Gui Close:
on anvil gui close:
- on Anvil Gui Open:
Conditions:
- Can Be Closed:
if the anvil cannot be closed:
- is Viewing:
if {_player} is viewing any anvil gui:
if {_player} is viewing anvil gui {_anvilGui}:
- Can Be Closed:
Effects:
- Close:
close anvil gui {_anvilGui}
- Open:
open anvil gui {_anvilGui} to {_player}
- Prevent Closing:
prevent anvil gui {_anvilGui} from closing
- Close:
Expressions:
- The Anvil Gui:
the anvil gui
- Interactable Slots:
send the anvil gui interactable slots of {_anviGui}
- Inventory:
anvil gui inventory of {_anvilGui}
- Opened Anvil GUI:
currently open anvil gui of {_player}
- First/Second/Result Item:
set the anvil gui first item of {_anvilGui} to stone named "hi"
- Text Input/Title:
set the anvil gui text input of {_anvilGui} to "new text!"
- New Anvil Gui:
set {_anvilGui} to a new anvil gui
set {_anvilGui} to a new anvil gui copying {_otherAnvilGui}
- All Open Anvil Gui:
send all of the open anvil guis
- The Anvil Gui:
Types:
- Anvil Gui
Sections:
- on Open/Close/Click Section:
when {_anvilGui} gets opened:
broadcast "%{_anvilGui}% has been opened!"
when {_anvilGui} gets clicked:
broadcast "%{_anvilGui}% has been clicked!"
when {_anvilGui} gets closed:
broadcast "%{_anvilGui}% has been closed!"
🖱️ Inventory:
🧍🏼♂️ Player:
Events:
- on Inventory Slot Drop:
on player slot drop:
- Drop Info (Condition):
if the item is being dropped from the cursor:
if the item is not being dropped from the inventory:
if the whole stack is being dropped:
if the whole stack is being dropped from the cursor:
- Drop Info (Condition):
- on Interact: #18
on player off hand interaction with an entity:
on player interacting with a block:
on player main hand interact:
- on Velocity Change:
on player velocity change:
- New Velocity Vector (Expression):
set the new player velocity to vector(0.4, 5, 1)
- New Velocity Vector (Expression):
- on Inventory Slot Drop:
Effects:
- Start/Stop Riptiding:
make player start riptiding for 5 seconds
make player start riptiding for 5 seconds using tool with attack damage 12
make player stop riptiding
- Sleep:
forcefully make {_player} sleep at {_location}
try making {_player} sleep at {_location}
force {_player} to sleep at {_location}
- Start/Stop Riptiding:
👤 Entity:
Effects:
- Make Burn Under The Sun:
make {_entity} not burn under the sun
make {_entity} immune to the sunlight
- Make Burn Under The Sun:
Conditions:
- is Aggressive:
if {_entity} is aggressive:
- is Aggressive:
Expressions:
- Collidable Exemptions:
add {_entities::*} to collidable exemptions of {_entity}
set {_uuids::*} to collidable exemptions uuids of {_entities::*}
- Client Sided Custom Name Visibility (Property):
set client sided custom name visibility of {_entity} to false
- Item from Equipment Slot:
set equipment slot chest slot of {_entity} to iron chestplate
- Protocol Id:
send entity id of {_entity}
- is Aggressive (Property):
set whether {_entity} is aggressive to true
- Collidable Exemptions:
📷 Entity Snapshot:
Effects:
- Spawn:
spawn snapshot {_entitySnapshot} at {_location}
spawn 3 of snapshots {_entitySnapshots::*} at {_location}
- Spawn:
Expressions:
- Entity Type:
send entity snapshot type of {_entitySnapshot}
- Entity Type:
Types:
- Entity Snapshot
✏️ Item:
Expressions:
- Supported/Preferred Enchantments:
broadcast supported enchantments of {_tool}
- Supported/Preferred Enchantments:
Types:
- Comparator with Item Rarity.
🧰 Skript:
Events:
- on Effect Command:
on skript effect command:
- Effect Command String (Expression):
the effect command
- Effect Command String (Expression):
- on Effect Command:
🖼️ Item Frame:
Conditions:
- is Fixed:
if item frame {_frame} is fixed:
- is Visible / is Invisible: #17
if item frame {_frame} is visible:
if item frame {_frame} is invisible:
- is Fixed:
Effects:
- Rotate:
rotate {_itemFrame} counter clockwise twice
rotate {_itemFrames::*} by 45 degrees 3 times
- set Item Silently:
silently set item frame item of {_itemFrame} to iron sword
- Rotate:
Expressions:
- Rotation:
set the item frame rotation of {_itemFrames::*} to 45 degrees
- Item Drop Chance:
set the item frame drop chance of {_frame} to 0.74
- is Fixed (Property):
set whether item frame {_frame} is fixed to false
-is Visible / is Invisible (Property): #17set whether item frame {_frame} is visible to false
set whether item frame {_frame} is invisible to false
- Item (Silently Set):
- Rotation:
silently:
set item frame item of {_frame} to stone
# Won't make the placing sound.
🤸♂️ Armor Stand:
Conditions:
- is Equipment Slot Disabled:
if chest slot is disabled for {_armorStand}:
- is Equipment Slot Disabled:
Effects:
- Disabled Slots:
set the armor stand disable slots of {_armorStand} to chest slot and hand slot
- is Invisible (Property):
set whether armor stand {_armorStand} is invisible to true
- Disabled Slots:
Types:
- BodyPart
📖 Enchanted Book:
Conditions:
- has Stored Enchantments:
if {_book} has stored enchants:
- has Stored Enchantments:
Expressions:
- Stored Enchantments:
set stored enchantments of {_book} to sharpness and unbreaking 3
- Stored Enchantments:
🏹 Crossbow:
Conditions:
- has Charged Projectiles:
if {_crossbow} has charged projectiles:
- has Charged Projectiles:
Expressions:
- Charged Projectiles:
set charged projectiles of {_crossbow} to iron sword, dirt and arrow
- Charged Projectiles:
⚽ Projectile:
Conditions:
- has Left The Shooter:
if {_projectile} has left its shooter:
- has Left The Shooter:
Expressions:
- has Left The Shooter (Property):
set whether {_projectile} has left its shooter to true
- has Left The Shooter (Property):
🏹 Arrow:
Expressions:
- Damage:
set the arrow damage of {_projectile} to 10
- Piece Amount:
set the arrow pierce amount of {_projectile} to 3
- Damage:
🐔 Chicken:
Conditions:
- is Chicken Jockey:
if {_chicken} is chicken jockey:
- is Chicken Jockey:
Expressions:
- is Chicken Jockey (Property):
set whether {_chicken} is a chicken jockey to true:
- is Chicken Jockey (Property):
⬛ Enderman:
🐺 Wolf:
🐇 Rabbit:
🐟 Salmon:
🐠 Tropical Fish:
🦊 Fox:
Conditions:
- Trusts Players:
if {_foxes::*} trust {_players::*}:
- Trusts Players:
Expressions:
- is Crouching (Property):
set whether fox {_fox} is crouching to true:
- is Defending (Property):
set whether fox {_fox} is defending to false:
- is Faceplanted (Property):
set whether fox {_fox} is faceplanted to false:
- is Leaping (Property):
set whether fox {_fox} is leaping to true:
- Variant:
set fox variant of {_fox} to red fox type:
- is Crouching (Property):
Types:
- Fox Variant
🍄 Mushroom Cow:
🦜 Parrot:
🦙 Llama:
🐎 Horse:
🐸 Frog:
🪸 Axolotl:
🧌 Warden:
🔮 End Crystal:
Conditions:
- is Showing Bottom:
if {_endCrystal} is showing its bottom:
- is Showing Bottom:
Effects:
- Hide/Show Bottom Plate:
hide end crystal bottom of {_endCrystals::*}
show entity's end crystal bottom
- Hide/Show Bottom Plate:
Expressions:
- Beam Target:
set end crystal beam target location of {_endCrystals::*} to location(54, 90.5, 54)
- is Showing Bottom (Property):
set whether ender crystal {_endCrystal} is showing the bottom to true
- Beam Target:
👁️ Ender Signal:
Conditions:
- is Going to Drop/Shatter:
if ender eye {_enderEye} is going to drop:
if ender eye {_enderEye} is going to shatter:
- is Going to Drop/Shatter:
Effects:
- Set Target Location Without Updating:
set the ender signal target location of {_enderEye} to {_location} without updating
- Set Target Location Without Updating:
Expressions:
- Despawn Time/Ticks:
set ender eye despawn time of {_enderEye} to 2 seconds
- Item:
set ender signal item of {_enderEye} to stone
- is Going to Drop/Shatter (Property):
set the ender signal is going to drop property of {_enderEye} to false
- Target Location:
set ender eye target location of {_enderEye} to location of player
- Despawn Time/Ticks:
🖥️ Server:
🗣️ Sound:
🧊 Block:
Tip
Most of the new Block elements support Blocks, BlockStates, BlockDatas and Items!
Events:
- on Damage Update:
on block damage update:
on block break progress update:
- on Ignite [Lusk Extension]:
on block ignition due to lava ignition:
on player block ignition:
- on Damage Update:
Conditions:
- can Be Waterlogged:
if {_block} can be waterlogged:
if tool of player can be waterlogged:
- is Waterlogged:
if {_blockData} is waterlogged:
if {_blockState} is not waterlogged:
- can Be Waterlogged:
Effects:
- Water Log:
waterlog {_blocks::*}
make {_item} not waterlogged
- Water Log:
Expressions:
- is Waterlogged (Property):
set whether {_block} is waterlogged to true
send is waterlogged property of {_item}
- Fluid Level Change Event - new Block Data:
set the fluid level blockdata to water[level=4]
- is Waterlogged (Property):
Types:
- Ignition Cause
🪧 Sign:
Conditions:
- is Waxed:
if tool of player is waxed:
if block is waxed:
- is Waxed:
Expressions:
- is Waxed (Property):
set whether offhand tool of player is waxed to false
send is waxed property of {_blockStates::*}
- is Waxed (Property):
📦 BlockState:
⬡ Bounding Box:
Conditions:
- Overlaps:
if {_boundingBox} overlaps {_boxes::*}:
- Overlaps:
Expressions:
- Blocks Within:
all of the blocks within {_box} in world {_world}
- Entities Within:
all of the zombies in box {_box} in world {_world}
all the entities in boxes {_boxes::*} in {_world}
- Corners/Center Coordinates:
set {_lesserX} to the bounding box lesser x-loc of {_box}
set {_centerY::*} to the bounding box center y-coord of {_boxes::*}
- Corners/Center :
set {_lesserX} to the bounding box lesser corner of {_box}
set {_centerY::*} to the bounding box center of {_boxes::*}
- Blocks Within:
📐 Math/Geometry:
🧱 BlockFace:
🏴 Banner:
Expressions:
- From Pattern Type and Color:
banner pattern skull pattern type with color red
- From Pattern Type and Color:
Types:
- Pattern Type
- Pattern
⏳ Time:
💣 Creeper/Primed TNT/TNT Minecart:
Expressions:
- Max/Regular Fuse Time/Ticks:
set max fuse ticks of {_creeper} to 10
set fuse time of {_tntMinecart} to 4 seconds
set fuse ticks of {_tnt} to 35
- Max/Regular Fuse Time/Ticks:
🧮 3D Vectors, 4D Vectors, 2D Vectors, Location, Chunk Etc:
Expressions:
- XYZ(W) Coordinate/Coordinate List:
send coordinate list of {_quaternion}
broadcast x coordinate of {_location}
- XYZ(W) Coordinate/Coordinate List:
🎨 Entity, Block, BlockState, Item:
Other:
silently:
set item frame item of {_frame} to iron sword # won't play the sound
📈 Changes:
🧍🏼♂️ Player:
Conditions:
- is Crawling:
- Added plural support.
- Improved logic, it now works in cases where the player is rapidly changing pose.
- is Slim: Added offline player support.
- is Crawling:
👤 Entity:
Conditions:
- is In Powdered Snow: Added plural support.
Expressions:
- is Interested (Property): Added plural support.
- Origin: Added plural support.
- Spawn Category: Added plural support.
- Width: Added plural support.
- Spawn Reason: Added plural support.
- Pose: Added plural support.
- Should Burn During The Day (Property): Added paper and spigot safeties.
☄️Fireball:
🤸♂️ Armor Stand:
Events:
- on Manipulate: Added
event-livingentity
.
- on Manipulate: Added
Expressions:
- Rotations:
- Switched to degrees instead of radians.
- Now uses bodyparts.
- has Arms (Property): Added item support.
- has Base Plate (Property): Added item support.
- is Marker (Property): Added item support.
- is Small (Property): Added item support.
- Rotations:
⬛ Enderman:
Events:
- on Escape: Added
event-endermanescapereason
.
- on Escape: Added
Effects:
- Randomly Teleport: Added spigot support.
Expressions:
- Held Block Data: Added plural support.
🐐 Goat:
🐬 Dolphin:
Expressions:
- Has Been Fed Fish (Property): Added plural support.
- Moisture Level: Added plural, 'add' and 'remove' support.
🦙 Llama:
🐔 Chicken:
🐈 Cat:
Expressions:
- is Looking Up (Property): Added plural and 'reset' support.
- is Lying Down (Property): Added plural and reset support.
🧊 Block:
Conditions:
- is Full: Added blockstate support.
Expressions:
- Blast Resistance: Added block, blockstate and blockdata support.
- Slipperiness: Added plural, block, blockstate and blockdata support.
🪧 Sign:
Conditions:
- is Editable: Added plural and blockstate support.
Expressions:
- is Editable (Property): Added plural, blockstate and item support.
⚗️ Brewing Stand:
Expressions:
- Fuel Item: Added plural, blockstate and item support.
- Ingredient: Added plural, blockstate and item support.
- Fuel Level: Added plural, blockstate and item support.
- Remaining Time/Ticks: Added plural, blockstate, item and ticks support.
💽 Jukebox:
Conditions:
- is Playing: Added blockstate support.
Effects:
- Eject Disc: Added blockstate support.
- Start/Stop Playing: Added blockstate support.
Expressions:
- Record/Disc: Added plural and blockstate support.
🔔 Bell:
Conditions:
- is Resonating:
- Removed deprecation.
- Added blockstate and plural support.
- is Ringing:
- Removed deprecation.
- Added blockstate and plural support.
- is Resonating:
Effects:
- Ring: Added blockstate and plural support.
Expressions:
- Resonating Time/Ticks:
- Removed deprecation.
- Added blockstate and ticks support.
- Shaking Time/Ticks:
- Removed deprecation.
- Added blockstate and ticks support.
- Resonating Time/Ticks:
✏️ Item:
⬡ Bounding Box:
Expressions:
- of Entity/Block: Added blockstate support-
- New Bounding Box: Added copy/clone support.
Types:
- Added converters from Entity, Block, Structure Piece and Generates Structure.
⏹️ World Border:
🧚🏻♀️ Allay:
Conditions:
- can Be Duplicated: Added plural support.
Expressions:
- can Be Duplicated (Property): Added plural support.
- Duplication Cooldown: Added plural and ticks support.
📝 String:
⚙️ Internal Changes:
Made almost everything spigot and version safe.
Improved build.gradle
.
Added better console logging and startup messages.
Fixed UpdateChecker.java
.
Added custom Skript API and modified what was already present.
Small changes to the documentation of EnumWrapper.java
.
Moved classes around.
Removed redundant parentheses.
Removed redundant "class exists" checks.
Renamed variables for consistency.
Added to do comments for future reference.
Turned repeated "class exists" checks into Constants.
Added/removed spaces where it seemed necessary.
Improved many classes code-wise.
Replaced non jetbrains annotations with jetbrains'.
Improved documentation.
Improved patterns.
Set the more accurate expression type for some expressions, some of which i need reimplementation (ex. ExprIronGolemCreatedByPlayerState.java).
Made a big chunk of utility classes that help a LOT of syntax elements be more readable and more straight to the point.
Took some pieces of code from other places (skript and skbee) and added credits.
Added a lot of tests.
Full Changelog: https://github.com/JakeGBLP/Lusk/compare/1.2.1...1.3
Information
Published on | December 31, 2024 |
---|---|
Downloads | 0 |