99
1010import java .util .Locale ;
1111
12- public record Property <Handler >(
12+ public record Property <Handler extends Property . PropertyHandler <?> >(
1313 String name ,
1414 SkriptAddon provider ,
1515 @ NotNull Class <? extends Handler > handler
@@ -20,7 +20,7 @@ public Property(@NotNull String name, SkriptAddon provider, @NotNull Class<? ext
2020 this .handler = handler ;
2121 }
2222
23- public static <HandlerClass , Handler extends HandlerClass > Property <Handler > of (
23+ public static <HandlerClass extends PropertyHandler <?> , Handler extends HandlerClass > Property <Handler > of (
2424 @ NotNull String name ,
2525 @ NotNull SkriptAddon provider ,
2626 @ NotNull Class <HandlerClass > handler ) {
@@ -52,7 +52,10 @@ public static void registerDefaultProperties() {
5252 propertyRegistry .register (CONTAINS );
5353 }
5454
55- public interface ExpressionPropertyHandler <Type , ReturnType > {
55+ @ SuppressWarnings ("unused" )
56+ public interface PropertyHandler <Type > {}
57+
58+ public interface ExpressionPropertyHandler <Type , ReturnType > extends PropertyHandler <Type > {
5659 // Handler for the NAME property
5760 default Class <?> @ Nullable [] acceptChange (ChangeMode mode ) {
5861 return null ;
@@ -72,7 +75,7 @@ public interface NameHandler<Named, Name> extends ExpressionPropertyHandler<Name
7275 Name name (Named named );
7376 }
7477
75- public interface ContainsHandler <Container , Element > {
78+ public interface ContainsHandler <Container , Element > extends PropertyHandler < Container > {
7679 boolean contains (Container container , Element element );
7780 Class <? extends Element >[] elementTypes ();
7881 default boolean canContain (Class <?> type ) {
0 commit comments