From 17b717a3300f0a16bb48f1d47325b4da349d7bbe Mon Sep 17 00:00:00 2001 From: ShaneBeee Date: Wed, 11 Feb 2026 08:31:02 -0800 Subject: [PATCH 1/9] build.gradle.kts - switch to dev branch of parser --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 682b23c..62c0244 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,7 +26,7 @@ repositories { dependencies { compileOnly("com.hypixel.hytale:Server:${hytaleVersion}") compileOnly("org.jetbrains:annotations:26.0.2") - implementation("com.github.SkriptDev:skript-parser:1.0.7") { + implementation("com.github.SkriptDev:skript-parser:dev~patch-SNAPSHOT") { isTransitive = false } implementation("com.github.Zoltus:TinyMessage:2.0.1") { From 42b66ccba8f83798aa298b3bd5d0cc424feb0350 Mon Sep 17 00:00:00 2001 From: ShaneBeee Date: Wed, 11 Feb 2026 15:26:03 -0800 Subject: [PATCH 2/9] Changes: - Added a location util class (added a method to quickly clone location) - refactored util package in hytale package - Fixed a bug with direction applying to the original location reference, need a clone --- .../skript/api/hytale/Direction.java | 7 ++++-- .../hytale/{ => utils}/AssetStoreUtils.java | 2 +- .../api/hytale/{ => utils}/EntityUtils.java | 2 +- .../api/hytale/utils/LocationUtils.java | 23 +++++++++++++++++++ .../api/hytale/{ => utils}/PlayerUtils.java | 2 +- .../api/hytale/{ => utils}/StoreUtils.java | 2 +- .../conditions/CondPlayerIsCrouching.java | 2 +- .../elements/effects/entity/EffDropItem.java | 2 +- .../effects/entity/EffEntityEffect.java | 2 +- .../elements/effects/world/EffExplosion.java | 2 +- .../events/player/EvtPlayerPlaceBlock.java | 2 +- .../expressions/entity/ExprEntityHealth.java | 2 +- .../expressions/entity/ExprEntityStat.java | 2 +- .../entity/ExprEntityVelocity.java | 2 +- .../elements/expressions/entity/ExprName.java | 2 +- .../entityeffect/ExprActiveEntityEffects.java | 2 +- .../elements/expressions/other/ExprUUID.java | 2 +- .../expressions/player/ExprAllPlayers.java | 2 +- .../player/ExprPlayerPermissionGroup.java | 2 +- .../player/ExprPlayerPermissions.java | 2 +- .../plugin/elements/sections/SecDropItem.java | 2 +- .../elements/types/DefaultConverters.java | 2 +- .../plugin/elements/types/TypesEntity.java | 2 +- .../plugin/elements/types/TypesPlayer.java | 2 +- 24 files changed, 50 insertions(+), 24 deletions(-) rename src/main/java/com/github/skriptdev/skript/api/hytale/{ => utils}/AssetStoreUtils.java (96%) rename src/main/java/com/github/skriptdev/skript/api/hytale/{ => utils}/EntityUtils.java (99%) create mode 100644 src/main/java/com/github/skriptdev/skript/api/hytale/utils/LocationUtils.java rename src/main/java/com/github/skriptdev/skript/api/hytale/{ => utils}/PlayerUtils.java (96%) rename src/main/java/com/github/skriptdev/skript/api/hytale/{ => utils}/StoreUtils.java (92%) diff --git a/src/main/java/com/github/skriptdev/skript/api/hytale/Direction.java b/src/main/java/com/github/skriptdev/skript/api/hytale/Direction.java index 98f8d90..e286cc2 100644 --- a/src/main/java/com/github/skriptdev/skript/api/hytale/Direction.java +++ b/src/main/java/com/github/skriptdev/skript/api/hytale/Direction.java @@ -1,5 +1,6 @@ package com.github.skriptdev.skript.api.hytale; +import com.github.skriptdev.skript.api.hytale.utils.LocationUtils; import com.hypixel.hytale.math.vector.Location; import com.hypixel.hytale.math.vector.Vector3d; @@ -33,11 +34,13 @@ public enum Direction { } public Location apply(Location location, Number offset) { - return function.apply(location, offset); + Location clone = LocationUtils.clone(location); + return function.apply(clone, offset); } public Location apply(Location location) { - return function.apply(location, 1); + Location clone = LocationUtils.clone(location); + return function.apply(clone, 1); } public String getName() { diff --git a/src/main/java/com/github/skriptdev/skript/api/hytale/AssetStoreUtils.java b/src/main/java/com/github/skriptdev/skript/api/hytale/utils/AssetStoreUtils.java similarity index 96% rename from src/main/java/com/github/skriptdev/skript/api/hytale/AssetStoreUtils.java rename to src/main/java/com/github/skriptdev/skript/api/hytale/utils/AssetStoreUtils.java index 062fd6c..b7db9ba 100644 --- a/src/main/java/com/github/skriptdev/skript/api/hytale/AssetStoreUtils.java +++ b/src/main/java/com/github/skriptdev/skript/api/hytale/utils/AssetStoreUtils.java @@ -1,4 +1,4 @@ -package com.github.skriptdev.skript.api.hytale; +package com.github.skriptdev.skript.api.hytale.utils; import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType; import com.hypixel.hytale.server.core.asset.type.item.config.Item; diff --git a/src/main/java/com/github/skriptdev/skript/api/hytale/EntityUtils.java b/src/main/java/com/github/skriptdev/skript/api/hytale/utils/EntityUtils.java similarity index 99% rename from src/main/java/com/github/skriptdev/skript/api/hytale/EntityUtils.java rename to src/main/java/com/github/skriptdev/skript/api/hytale/utils/EntityUtils.java index 3f776e5..3bf4137 100644 --- a/src/main/java/com/github/skriptdev/skript/api/hytale/EntityUtils.java +++ b/src/main/java/com/github/skriptdev/skript/api/hytale/utils/EntityUtils.java @@ -1,4 +1,4 @@ -package com.github.skriptdev.skript.api.hytale; +package com.github.skriptdev.skript.api.hytale.utils; import com.hypixel.hytale.component.AddReason; import com.hypixel.hytale.component.Component; diff --git a/src/main/java/com/github/skriptdev/skript/api/hytale/utils/LocationUtils.java b/src/main/java/com/github/skriptdev/skript/api/hytale/utils/LocationUtils.java new file mode 100644 index 0000000..267fb43 --- /dev/null +++ b/src/main/java/com/github/skriptdev/skript/api/hytale/utils/LocationUtils.java @@ -0,0 +1,23 @@ +package com.github.skriptdev.skript.api.hytale.utils; + +import com.hypixel.hytale.math.vector.Location; + +/** + * Untilities for {@link Location Locations} + */ +public class LocationUtils { + + /** + * Clone a location. + * This prevents breaking references + * + * @param location Location to clone + * @return New location instance + */ + public static Location clone(Location location) { + return new Location(location.getWorld(), + location.getPosition().clone(), + location.getRotation().clone()); + } + +} diff --git a/src/main/java/com/github/skriptdev/skript/api/hytale/PlayerUtils.java b/src/main/java/com/github/skriptdev/skript/api/hytale/utils/PlayerUtils.java similarity index 96% rename from src/main/java/com/github/skriptdev/skript/api/hytale/PlayerUtils.java rename to src/main/java/com/github/skriptdev/skript/api/hytale/utils/PlayerUtils.java index 29cb814..375e252 100644 --- a/src/main/java/com/github/skriptdev/skript/api/hytale/PlayerUtils.java +++ b/src/main/java/com/github/skriptdev/skript/api/hytale/utils/PlayerUtils.java @@ -1,4 +1,4 @@ -package com.github.skriptdev.skript.api.hytale; +package com.github.skriptdev.skript.api.hytale.utils; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.universe.Universe; diff --git a/src/main/java/com/github/skriptdev/skript/api/hytale/StoreUtils.java b/src/main/java/com/github/skriptdev/skript/api/hytale/utils/StoreUtils.java similarity index 92% rename from src/main/java/com/github/skriptdev/skript/api/hytale/StoreUtils.java rename to src/main/java/com/github/skriptdev/skript/api/hytale/utils/StoreUtils.java index 6481ded..d3a3a66 100644 --- a/src/main/java/com/github/skriptdev/skript/api/hytale/StoreUtils.java +++ b/src/main/java/com/github/skriptdev/skript/api/hytale/utils/StoreUtils.java @@ -1,4 +1,4 @@ -package com.github.skriptdev.skript.api.hytale; +package com.github.skriptdev.skript.api.hytale.utils; import com.hypixel.hytale.component.CommandBuffer; import com.hypixel.hytale.component.Store; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/conditions/CondPlayerIsCrouching.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/conditions/CondPlayerIsCrouching.java index bf5e03e..a512fa3 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/conditions/CondPlayerIsCrouching.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/conditions/CondPlayerIsCrouching.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.conditions; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.entity.movement.MovementStatesComponent; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/entity/EffDropItem.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/entity/EffDropItem.java index 27fe5a1..e1d2235 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/entity/EffDropItem.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/entity/EffDropItem.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.effects.entity; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.math.vector.Location; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/entity/EffEntityEffect.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/entity/EffEntityEffect.java index f144ef3..bcc7766 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/entity/EffEntityEffect.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/entity/EffEntityEffect.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.effects.entity; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/world/EffExplosion.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/world/EffExplosion.java index ff3a23e..248b844 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/world/EffExplosion.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/effects/world/EffExplosion.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.effects.world; -import com.github.skriptdev.skript.api.hytale.StoreUtils; +import com.github.skriptdev.skript.api.hytale.utils.StoreUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.component.CommandBuffer; import com.hypixel.hytale.component.Store; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/events/player/EvtPlayerPlaceBlock.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/events/player/EvtPlayerPlaceBlock.java index 90798d7..b852c99 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/events/player/EvtPlayerPlaceBlock.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/events/player/EvtPlayerPlaceBlock.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.events.player; -import com.github.skriptdev.skript.api.hytale.AssetStoreUtils; +import com.github.skriptdev.skript.api.hytale.utils.AssetStoreUtils; import com.github.skriptdev.skript.api.hytale.Block; import com.github.skriptdev.skript.api.skript.event.BlockContext; import com.github.skriptdev.skript.api.skript.event.CancellableContext; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityHealth.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityHealth.java index 805dcc7..c7829eb 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityHealth.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityHealth.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.expressions.entity; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.server.core.entity.LivingEntity; import com.hypixel.hytale.server.core.modules.entitystats.EntityStatMap; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityStat.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityStat.java index 24740e4..a81918d 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityStat.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityStat.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.expressions.entity; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.server.core.entity.LivingEntity; import com.hypixel.hytale.server.core.modules.entitystats.EntityStatMap; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityVelocity.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityVelocity.java index 005c7ea..1bda4c4 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityVelocity.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprEntityVelocity.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.expressions.entity; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.math.vector.Vector3d; import com.hypixel.hytale.protocol.ChangeVelocityType; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprName.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprName.java index 89dd195..15be814 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprName.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entity/ExprName.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.expressions.entity; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.hypixel.hytale.server.core.entity.Entity; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.universe.PlayerRef; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entityeffect/ExprActiveEntityEffects.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entityeffect/ExprActiveEntityEffects.java index 86fcfad..ff742e1 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entityeffect/ExprActiveEntityEffects.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/entityeffect/ExprActiveEntityEffects.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.expressions.entityeffect; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/other/ExprUUID.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/other/ExprUUID.java index 00c59dd..05408d0 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/other/ExprUUID.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/other/ExprUUID.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.expressions.other; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.hypixel.hytale.server.core.entity.Entity; import com.hypixel.hytale.server.core.universe.PlayerRef; import com.hypixel.hytale.server.core.universe.world.World; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprAllPlayers.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprAllPlayers.java index 60c4061..7cc7bbc 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprAllPlayers.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprAllPlayers.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.expressions.player; -import com.github.skriptdev.skript.api.hytale.PlayerUtils; +import com.github.skriptdev.skript.api.hytale.utils.PlayerUtils; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.universe.world.World; import io.github.syst3ms.skriptparser.lang.Expression; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprPlayerPermissionGroup.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprPlayerPermissionGroup.java index 59b49df..649857c 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprPlayerPermissionGroup.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprPlayerPermissionGroup.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.expressions.player; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.permissions.PermissionsModule; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprPlayerPermissions.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprPlayerPermissions.java index a2afb7a..93ee80f 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprPlayerPermissions.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/player/ExprPlayerPermissions.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.expressions.player; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.server.core.entity.entities.Player; import com.hypixel.hytale.server.core.permissions.PermissionsModule; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecDropItem.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecDropItem.java index 0d48388..cdf323e 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecDropItem.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecDropItem.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.sections; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.math.vector.Location; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/types/DefaultConverters.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/types/DefaultConverters.java index 7243826..867a8b9 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/types/DefaultConverters.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/types/DefaultConverters.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.types; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.hypixel.hytale.math.vector.Location; import com.hypixel.hytale.math.vector.Vector3d; import com.hypixel.hytale.math.vector.Vector3f; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesEntity.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesEntity.java index bc8b263..b4fce95 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesEntity.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesEntity.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.types; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.NPCRegistry; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.component.Ref; diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesPlayer.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesPlayer.java index a87ec9d..24fd8dd 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesPlayer.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesPlayer.java @@ -1,6 +1,6 @@ package com.github.skriptdev.skript.plugin.elements.types; -import com.github.skriptdev.skript.api.hytale.EntityUtils; +import com.github.skriptdev.skript.api.hytale.utils.EntityUtils; import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration; import com.hypixel.hytale.protocol.GameMode; import com.hypixel.hytale.server.core.entity.entities.Player; From 6c334144e3df8276ed6f235df217fdbacd483d74 Mon Sep 17 00:00:00 2001 From: ShaneBeee Date: Wed, 11 Feb 2026 15:49:24 -0800 Subject: [PATCH 3/9] SecExecuteInWorld - fix only the first statement running in this section --- .../skript/plugin/elements/sections/SecExecuteInWorld.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecExecuteInWorld.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecExecuteInWorld.java index 01202df..e6f2b92 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecExecuteInWorld.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecExecuteInWorld.java @@ -49,7 +49,7 @@ public Optional walk(@NotNull TriggerContext ctx) { // Place the variables back into the original context // This is done in case World#execute is delayed Variables.copyLocalVariables(dummy, ctx); - firstStatement.walk(ctx); + Statement.runAll(firstStatement, ctx); // Clear out old variables Variables.clearLocalVariables(dummy); From 2fb28ca1947f2b7fb252597a5d8988d105342871 Mon Sep 17 00:00:00 2001 From: ShaneBeee Date: Wed, 11 Feb 2026 16:19:09 -0800 Subject: [PATCH 4/9] ExprWorldSpawn - fix location missing world --- .../plugin/elements/expressions/world/ExprWorldSpawn.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/world/ExprWorldSpawn.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/world/ExprWorldSpawn.java index cc7b296..04886dd 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/world/ExprWorldSpawn.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/expressions/world/ExprWorldSpawn.java @@ -41,7 +41,7 @@ public static void register(SkriptRegistration registration) { if (spawnProvider == null) return null; Transform spawnPoint = spawnProvider.getSpawnPoint(world, RANDOM_UUID); - return new Location(spawnPoint); + return new Location(world.getName(), spawnPoint); } @Override From 2054fcb43a43bb15061d25e5bb2e5c84eb7b5c30 Mon Sep 17 00:00:00 2001 From: ShaneBeee Date: Wed, 11 Feb 2026 16:20:52 -0800 Subject: [PATCH 5/9] SecSpawnNPC - fix variables not copying over properly --- .../plugin/elements/sections/SecSpawnNPC.java | 52 +++++++++++-------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecSpawnNPC.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecSpawnNPC.java index bf00f91..08dc7a5 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecSpawnNPC.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/sections/SecSpawnNPC.java @@ -17,6 +17,7 @@ import io.github.syst3ms.skriptparser.parsing.ParserState; import io.github.syst3ms.skriptparser.registration.SkriptRegistration; import io.github.syst3ms.skriptparser.registration.context.ContextValue; +import io.github.syst3ms.skriptparser.variables.VariableMap; import io.github.syst3ms.skriptparser.variables.Variables; import org.jetbrains.annotations.NotNull; @@ -24,26 +25,17 @@ import java.util.HashSet; import java.util.List; import java.util.Optional; +import java.util.concurrent.atomic.AtomicReference; public class SecSpawnNPC extends CodeSection { - public static class SpawnMobContext implements TriggerContext { - - private final Entity entity; - - public SpawnMobContext(Entity entity) { - this.entity = entity; - } - - public Entity getEntity() { - return this.entity; - } + public record SpawnMobContext(Entity entity) implements TriggerContext { @Override - public String getName() { - return "spawn_mob"; + public String getName() { + return "spawn_mob"; + } } - } public static void register(SkriptRegistration registration) { registration.newSection(SecSpawnNPC.class, "spawn [a|an] %npcrole% at %location%") @@ -58,11 +50,11 @@ public static void register(SkriptRegistration registration) { .register(); registration.newSingleContextValue(SpawnMobContext.class, Entity.class, - "spawned-entity", SpawnMobContext::getEntity) + "spawned-entity", SpawnMobContext::entity) .setUsage(ContextValue.Usage.EXPRESSION_OR_ALONE) .register(); registration.newSingleContextValue(SpawnMobContext.class, Entity.class, - "spawned-npc", SpawnMobContext::getEntity) + "spawned-npc", SpawnMobContext::entity) .setUsage(ContextValue.Usage.EXPRESSION_OR_ALONE) .register(); } @@ -105,22 +97,38 @@ public Optional walk(@NotNull TriggerContext ctx) { Vector3f rotation = location.getRotation().clone(); if (Float.isNaN(rotation.getX())) rotation = Vector3f.ZERO; + AtomicReference vars = new AtomicReference<>(); + VariableMap variableMap = Variables.copyLocalVariables(ctx); + vars.set(variableMap); + NPCPlugin.get().spawnEntity(store, roleSingle.get().index(), location.getPosition().clone(), rotation, null, (npcEntity, _, _) -> { SpawnMobContext spawnMobContext = new SpawnMobContext(npcEntity); - // Copy the variables from the main TriggerContext into the SpawnMobContext - Variables.copyLocalVariables(ctx, spawnMobContext); + // Copy the locals from the previous trigger into this context + Variables.setLocalVariables(spawnMobContext, vars.get()); + setNext(null); firstStatement.ifPresent(statement -> Statement.runAll(statement, spawnMobContext)); // After that is run, copy them back - Variables.copyLocalVariables(spawnMobContext, ctx); + VariableMap map = Variables.copyLocalVariables(spawnMobContext); + vars.set(map); + // Clear locals from the no longer used SpawnMobContext Variables.clearLocalVariables(spawnMobContext); - }, null); - - return nextStatement; + }, (npcEntity, entityStoreRef, entityStoreStore) -> { + nextStatement.ifPresent(statement -> { + // Take the previous local variables and use them again in this context + Variables.setLocalVariables(ctx, vars.get()); + Statement.runAll(statement, ctx); + + // Now we're done, we can clear them out + Variables.clearLocalVariables(ctx); + }); + }); + + return Optional.empty(); } @Override From 0926b78c0e9dbd660dc43aba7c440d702f0652cb Mon Sep 17 00:00:00 2001 From: ShaneBeee Date: Wed, 11 Feb 2026 16:46:32 -0800 Subject: [PATCH 6/9] SkriptRegistration - remove variable name func for assets/enums - this way users can better rely on how their indexes are being set --- .../skript/api/skript/registration/SkriptRegistration.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/github/skriptdev/skript/api/skript/registration/SkriptRegistration.java b/src/main/java/com/github/skriptdev/skript/api/skript/registration/SkriptRegistration.java index 387e736..ffc1741 100644 --- a/src/main/java/com/github/skriptdev/skript/api/skript/registration/SkriptRegistration.java +++ b/src/main/java/com/github/skriptdev/skript/api/skript/registration/SkriptRegistration.java @@ -92,7 +92,6 @@ public AssetStoreRegistrar(Class assetClass, DefaultAssetMap assetMap, this.supplier = () -> assetStoreValues.values().stream().iterator(); this.literalParser = s -> this.assetStoreValues.get(s.toLowerCase(Locale.ROOT).replace(" ", "_")); this.toStringFunction = JsonAsset::getId; - this.toVariableNameFunction = c -> baseName + ":" + c.getId().toLowerCase(Locale.ROOT).replace(" ", "_"); } /** @@ -242,7 +241,6 @@ public EnumRegistrar(Class enumClass, String name, String pattern) { this.supplier = () -> this.values.values().iterator(); this.literalParser = s -> this.values.get(s.toLowerCase(Locale.ROOT).replace(" ", "_")); this.toStringFunction = e -> e.name().toLowerCase(Locale.ROOT); - this.toVariableNameFunction = e -> this.baseName + ":" + e.name().toLowerCase(Locale.ROOT).replace(" ", "_"); } From e70758dafaae44fb03e463f33142026e5f61ebfd Mon Sep 17 00:00:00 2001 From: ShaneBeee Date: Thu, 12 Feb 2026 21:08:54 -0800 Subject: [PATCH 7/9] TypesItem - remove experimental tag from item containers --- .../github/skriptdev/skript/plugin/elements/types/TypesItem.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesItem.java b/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesItem.java index 1d87078..2095852 100644 --- a/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesItem.java +++ b/src/main/java/com/github/skriptdev/skript/plugin/elements/types/TypesItem.java @@ -33,7 +33,6 @@ static void register(SkriptRegistration reg) { .name("Item Container") .description("Represents an item container within an inventory (such as the armor container).") .since("1.0.0") - .experimental() .toStringFunction(ItemContainer::toString) .serializer(new TypeSerializer<>() { @Override From f1f09dbeff904ffe59a6f4e989eabb4cea873e9f Mon Sep 17 00:00:00 2001 From: ShaneBeee Date: Thu, 12 Feb 2026 21:09:22 -0800 Subject: [PATCH 8/9] JsonDocPrinter - add experimental tags to description - this is a temp solution until SkriptHub Docs supports it --- .../skriptdev/skript/api/skript/docs/JsonDocPrinter.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/github/skriptdev/skript/api/skript/docs/JsonDocPrinter.java b/src/main/java/com/github/skriptdev/skript/api/skript/docs/JsonDocPrinter.java index 165f6a7..30a6161 100644 --- a/src/main/java/com/github/skriptdev/skript/api/skript/docs/JsonDocPrinter.java +++ b/src/main/java/com/github/skriptdev/skript/api/skript/docs/JsonDocPrinter.java @@ -470,6 +470,15 @@ private void printDocumentation(String type, BsonDocument syntaxDoc, SyntaxInfo< for (String s : documentation.getDescription()) { descriptionArray.add(new BsonString(s)); } + // TEMP EXPERIMENTAL TODO + if (documentation.isExperimental()) { + descriptionArray.add(new BsonString(" ")); + descriptionArray.add(new BsonString("**This feature is experimental and may change in future versions.**")); + String experimentalMessage = documentation.getExperimentalMessage(); + if (experimentalMessage != null) { + descriptionArray.add(new BsonString(experimentalMessage)); + } + } syntaxDoc.put("description", descriptionArray); // USAGE From ad9cbe80f719e254b7326c441525e536cf5a1b28 Mon Sep 17 00:00:00 2001 From: ShaneBeee Date: Sat, 14 Feb 2026 13:05:48 -0800 Subject: [PATCH 9/9] build.gradle.kts - update skript-parser to 1.0.8 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 62c0244..ce3222f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -26,7 +26,7 @@ repositories { dependencies { compileOnly("com.hypixel.hytale:Server:${hytaleVersion}") compileOnly("org.jetbrains:annotations:26.0.2") - implementation("com.github.SkriptDev:skript-parser:dev~patch-SNAPSHOT") { + implementation("com.github.SkriptDev:skript-parser:1.0.8") { isTransitive = false } implementation("com.github.Zoltus:TinyMessage:2.0.1") {