Skip to content

Entity Migration#8410

Open
Absolutionism wants to merge 26 commits intoSkriptLang:dev/featurefrom
Absolutionism:dev/EntityDataInfoMove
Open

Entity Migration#8410
Absolutionism wants to merge 26 commits intoSkriptLang:dev/featurefrom
Absolutionism:dev/EntityDataInfoMove

Conversation

@Absolutionism
Copy link
Contributor

Problem

SyntaxElement classes using deprecated registration methods
EntityDataInfo extended deprecated SyntaxElementInfo
Classes were not in org

Solution

Migrate all EntityData classes to 'entity' package and made modules for those who have SyntaxElements that only work for one entity.
Migrate all SyntaxElements that include entity or living entity as being the main and only property (of %%) into a general package inside 'entity'. Additionally updated to new registration methods and current code conventions.
Updated EntityDataInfo to implement SyntaxInfo, with corresponding behavior.

Testing Completed

Existing test files + test actions

Supporting Information

Breaking Changes

  • Migration
  • EntityDataInfo field access and class generics

Note

As mentioned I only migrated SyntaxElements where the main/only property was entity or living entity.
Any syntax that shared the spotlight was not migrated, as well as ERS syntaxes.
Let me know if I missed any or any that I should bring over.


Completes: none
Related: none
AI assistance: SovdeBot 100%

@Absolutionism Absolutionism requested review from a team and sovdeeth as code owners January 27, 2026 00:46
@Absolutionism Absolutionism requested review from UnderscoreTud and removed request for a team January 27, 2026 00:46
@skriptlang-automation skriptlang-automation bot added the needs reviews A PR that needs additional reviews label Jan 27, 2026
@Absolutionism Absolutionism added the breaking changes Pull or feature requests that contain breaking changes (API, syntax, etc.) label Jan 27, 2026
Copy link
Member

@sovdeeth sovdeeth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

116/233

@github-project-automation github-project-automation bot moved this to In Review in 2.15 Releases Feb 1, 2026
@Absolutionism Absolutionism added the 2.15 Targeting a 2.15.X version release. label Feb 1, 2026
Copy link
Member

@APickledWalrus APickledWalrus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work so far! I would register EntityData's in the init of a module rather than load.

I think some of these changes raise important questions too. Should it be explicitly required that entity data patterns have to be defined in default.lang? What benefit does that provide? It might be worth us considering the other direction. This is a good opportunity for us to make more drastic changes (if deemed good).

I raise some more significant syntax changes as well (some minor pattern changes, deprecations, etc.). I believe that all syntax in the new package should reflect best practices. We should be able to point to the new packages and say "any syntax here is an example of the best practices".

Also, for general syntax, I would put it under entity.elements rather than entity.general.

I would also consider general things for syntax cleanup:

  • Can examples be improved? An example that just states that syntax isn't really good.
  • Ensure property conditions override getPropertyType as necessary
  • Ensure patterns are optimized: (a|b|) -> [a|b], ([a|b]) -> [a|b]
  • Boolean expression should be deprecated in favor of conditions + effects
  • Lots of integer expressions are missing proper overflow handling. Consider methods like Math2.addClamped. That is, if I do something like add 10 seconds to X of Y, I want it to cap at the max number value, not overflow back to minimum.

assert entityClass == other.entityClass;
return true;
}
public static Serializer<org.skriptlang.skript.bukkit.entity.EntityData> serializer = org.skriptlang.skript.bukkit.entity.EntityData.serializer;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not the same thing

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like there are still some public methods that were outright removed. Double check to make sure all public methods have compatibility functionality.

import ch.njol.skript.util.Utils;
import ch.njol.yggdrasil.YggdrasilSerializable;

public class EntityType
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

class needs docs

StriderData.register();

SyntaxRegistry registry = addon.syntaxRegistry();
EffStriderShivering.register(registry);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CondStriderIsShivering needs converted too

@skriptlang-automation skriptlang-automation bot removed the needs reviews A PR that needs additional reviews label Feb 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2.15 Targeting a 2.15.X version release. breaking changes Pull or feature requests that contain breaking changes (API, syntax, etc.)

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

4 participants

Comments