1313import org .bukkit .event .Event ;
1414import org .jetbrains .annotations .NotNull ;
1515import org .jetbrains .annotations .Nullable ;
16- import org .skriptlang .skript .lang .properties .Property .ExpressionPropertyHandler ;
1716import org .skriptlang .skript .lang .properties .PropertyUtils .PropertyMap ;
1817
1918import java .lang .reflect .Array ;
2019import java .util .*;
2120import java .util .function .Function ;
2221
23- public abstract class PropertyBaseExpression <Handler extends ExpressionPropertyHandler <?,?>> extends SimpleExpression <Object > {
24-
25- abstract Property <Handler > getProperty ();
22+ public abstract class PropertyBaseExpression <Handler extends PropertyHandler .ExpressionPropertyHandler <?,?>> extends SimpleExpression <Object > {
2623
2724 protected static void register (Class <? extends PropertyBaseExpression <?>> expressionClass , String property ) {
2825 Skript .registerExpression (expressionClass , Object .class , ExpressionType .PROPERTY , PropertyExpression .getPatterns (property , "objects" ));
@@ -34,6 +31,9 @@ protected static void register(Class<? extends PropertyBaseExpression<?>> expres
3431 private Class <?> returnType ;
3532 private final Property <Handler > property = getProperty ();
3633
34+
35+ public abstract Property <Handler > getProperty ();
36+
3737 @ Override
3838 public boolean init (Expression <?>[] expressions , int matchedPattern , Kleenean isDelayed , ParseResult parseResult ) {
3939 this .expr = PropertyUtils .asProperty (property , expressions [0 ]);
@@ -81,7 +81,7 @@ public boolean init(Expression<?>[] expressions, int matchedPattern, Kleenean is
8181 @ Override
8282 public Class <?> @ Nullable [] acceptChange (ChangeMode mode ) {
8383 Set <Class <?>> allowedChangeTypes = new HashSet <>();
84- for (PropertyInfo <Handler > propertyInfo : properties .values ()) {
84+ for (Property . PropertyInfo <Handler > propertyInfo : properties .values ()) {
8585 Class <?>[] types = propertyInfo .handler ().acceptChange (mode );
8686 changeDetails .storeTypes (mode , propertyInfo , types );
8787 if (types != null ) {
@@ -101,19 +101,19 @@ public boolean init(Expression<?>[] expressions, int matchedPattern, Kleenean is
101101
102102 private final ChangeDetails changeDetails = new ChangeDetails ();
103103
104- class ChangeDetails extends EnumMap <ChangeMode , Map <PropertyInfo <Handler >, Class <?>[]>> {
104+ class ChangeDetails extends EnumMap <ChangeMode , Map <Property . PropertyInfo <Handler >, Class <?>[]>> {
105105
106106 public ChangeDetails () {
107107 super (ChangeMode .class );
108108 }
109109
110- public void storeTypes (ChangeMode mode , PropertyInfo <Handler > propertyInfo , Class <?>[] types ) {
111- Map <PropertyInfo <Handler >, Class <?>[]> map = computeIfAbsent (mode , k -> new HashMap <>());
110+ public void storeTypes (ChangeMode mode , Property . PropertyInfo <Handler > propertyInfo , Class <?>[] types ) {
111+ Map <Property . PropertyInfo <Handler >, Class <?>[]> map = computeIfAbsent (mode , k -> new HashMap <>());
112112 map .put (propertyInfo , types );
113113 }
114114
115- public Class <?>[] getTypes (ChangeMode mode , PropertyInfo <Handler > propertyInfo ) {
116- Map <PropertyInfo <Handler >, Class <?>[]> map = get (mode );
115+ public Class <?>[] getTypes (ChangeMode mode , Property . PropertyInfo <Handler > propertyInfo ) {
116+ Map <Property . PropertyInfo <Handler >, Class <?>[]> map = get (mode );
117117 if (map != null ) {
118118 return map .get (propertyInfo );
119119 }
@@ -130,7 +130,7 @@ public Class<?>[] getTypes(ChangeMode mode, PropertyInfo<Handler> propertyInfo)
130130 @ Override
131131 public void change (Event event , Object @ Nullable [] delta , ChangeMode mode ) {
132132 for (Object propertyHaver : expr .getArray (event )) {
133- PropertyInfo <Handler > propertyInfo = properties .get (propertyHaver .getClass ());
133+ Property . PropertyInfo <Handler > propertyInfo = properties .get (propertyHaver .getClass ());
134134 if (propertyInfo == null ) {
135135 continue ; // no property info found, skip
136136 }
@@ -151,7 +151,7 @@ public void change(Event event, Object @Nullable [] delta, ChangeMode mode) {
151151 || (delta != null && allowedType .isInstance (delta [0 ]))) {
152152 // if the propertyHaver is allowed, change
153153 @ SuppressWarnings ("unchecked" )
154- var handler = (ExpressionPropertyHandler <Object , ?>) propertyInfo .handler ();
154+ var handler = (PropertyHandler . ExpressionPropertyHandler <Object , ?>) propertyInfo .handler ();
155155 handler .change (propertyHaver , delta , mode );
156156 }
157157 // if allowed type is singular, take delta[0]
0 commit comments