Type Properties/Attributes by sovdeeth · Pull Request #8165 · SkriptLang/Skript

@sovdeeth

@sovdeeth

@sovdeeth

@APickledWalrus

@sovdeeth

…s, start parse-time checks for Contains

@sovdeeth

@sovdeeth

- allows stateful property handlers
- removes use of AnyNamed
- removes NameHandler in favor of just using ExpressionPropertyHandler
- Avoid exposing silly cast to users when possible in PropertyBaseExpression
- fix issue with handling DELETE and RESET changers in PropertyBaseExpression
- add support for default toString impl in PropertyBaseExpression

@sovdeeth

first pass
breaking change, removes `size of itemstack`.
…x, add condition base class

@sovdeeth

@sovdeeth

@sovdeeth

@sovdeeth

@sovdeeth

@sovdeeth

@sovdeeth

Absolutionism

@sovdeeth

APickledWalrus

@sovdeeth

@sovdeeth

@sovdeeth

erenkarakal pushed a commit to erenkarakal/Skript that referenced this pull request

Nov 26, 2025
* basic implementations for Contains and Named properties

* fix rogue find+replace

* cleanup and move lookupPropertyInfo to override of get(Class)

* Remove necessary usage of toHandlerType

* add base handler class

* Improve property resolution, add back-compat for AnyNamed, AnyContains, start parse-time checks for Contains

* cleaning and reorganization

* implement common module

* Cleanup, fully implement ExprName, many docs, some other improvements

- allows stateful property handlers
- removes use of AnyNamed
- removes NameHandler in favor of just using ExpressionPropertyHandler
- Avoid exposing silly cast to users when possible in PropertyBaseExpression
- fix issue with handling DELETE and RESET changers in PropertyBaseExpression
- add support for default toString impl in PropertyBaseExpression

* re-add type in register() and Script#name()

* implement documents plus a bit more cleanup

* cleanup entity/player changer usage

* add property info itself to related syntaxes docs

* Update name's description

* update docs, add since

* small fixes

* Replace AnyAmount/ExprAmount

first pass
breaking change, removes `size of itemstack`.

* Finish replacing AnyAmount, add Empty property, add PropertyBaseSyntax, add condition base class

* banish utils class

* AnyValued replacement

* better errors

* some docs

* fix PropCondContains with somewhat horrible code that works

* final cleanup

* final cleanup 2

* Apply suggestions from code review

more cleanup

Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com>

* reorder methods + missing continue

* Update PropExprValueOf.java

* Update JSONGenerator.java

* Apply suggestions from code review

Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com>

* requested changes

* add config option to enable type properties

* Update ExprName.java

* Use ChangeInPlace when changing property expressions

* Update JSONGenerator.java

* Update JSONGenerator.java

* better CIP requirement detection

* improve error message for missing properties

* requested changes

erenkarakal pushed a commit to erenkarakal/Skript that referenced this pull request

Nov 26, 2025
* basic implementations for Contains and Named properties

* fix rogue find+replace

* cleanup and move lookupPropertyInfo to override of get(Class)

* Remove necessary usage of toHandlerType

* add base handler class

* Improve property resolution, add back-compat for AnyNamed, AnyContains, start parse-time checks for Contains

* cleaning and reorganization

* implement common module

* Cleanup, fully implement ExprName, many docs, some other improvements

- allows stateful property handlers
- removes use of AnyNamed
- removes NameHandler in favor of just using ExpressionPropertyHandler
- Avoid exposing silly cast to users when possible in PropertyBaseExpression
- fix issue with handling DELETE and RESET changers in PropertyBaseExpression
- add support for default toString impl in PropertyBaseExpression

* re-add type in register() and Script#name()

* implement documents plus a bit more cleanup

* cleanup entity/player changer usage

* add property info itself to related syntaxes docs

* Update name's description

* update docs, add since

* small fixes

* Replace AnyAmount/ExprAmount

first pass
breaking change, removes `size of itemstack`.

* Finish replacing AnyAmount, add Empty property, add PropertyBaseSyntax, add condition base class

* banish utils class

* AnyValued replacement

* better errors

* some docs

* fix PropCondContains with somewhat horrible code that works

* final cleanup

* final cleanup 2

* Apply suggestions from code review

more cleanup

Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com>

* reorder methods + missing continue

* Update PropExprValueOf.java

* Update JSONGenerator.java

* Apply suggestions from code review

Co-authored-by: SirSmurfy2 <82696841+Absolutionism@users.noreply.github.com>

* requested changes

* add config option to enable type properties

* Update ExprName.java

* Use ChangeInPlace when changing property expressions

* Update JSONGenerator.java

* Update JSONGenerator.java

* better CIP requirement detection

* improve error message for missing properties

* requested changes