77import ch .njol .skript .aliases .ItemType ;
88import ch .njol .skript .bukkitutil .ItemUtils ;
99import ch .njol .skript .classes .*;
10+ import ch .njol .skript .classes .Changer .ChangeMode ;
1011import ch .njol .skript .config .Config ;
1112import ch .njol .skript .config .Node ;
1213import ch .njol .skript .expressions .base .EventValueExpression ;
@@ -227,14 +228,14 @@ public String name(ItemType itemType) {
227228 }
228229
229230 @ Override
230- public Class <?> @ Nullable [] acceptChange (Changer . ChangeMode mode ) {
231- if (mode == Changer . ChangeMode .SET || mode == Changer . ChangeMode .RESET )
231+ public Class <?> @ Nullable [] acceptChange (ChangeMode mode ) {
232+ if (mode == ChangeMode .SET || mode == ChangeMode .RESET )
232233 return new Class [] {String .class };
233234 return null ;
234235 }
235236
236237 @ Override
237- public void change (ItemType itemType , Object @ Nullable [] delta , Changer . ChangeMode mode ) {
238+ public void change (ItemType itemType , Object @ Nullable [] delta , ChangeMode mode ) {
238239 String name = delta != null ? (String ) delta [0 ] : null ;
239240 itemType .setName (name );
240241 }
@@ -958,14 +959,43 @@ public String toVariableNameString(DynamicFunctionReference<?> function) {
958959 }
959960 }));
960961
962+ //noinspection deprecation
961963 Classes .registerClass (new AnyInfo <>(AnyNamed .class , "named" )
962964 .name ("Any Named Thing" )
963965 .description ("Something that has a name (e.g. an item)." )
964966 .usage ("" )
965967 .examples ("{thing}'s name" )
966968 .since ("2.10" )
969+ .property (Property .NAME , new Property .NameHandler <AnyNamed , String >() {
970+
971+ @ Override
972+ public @ NotNull Class <String > returnType () {
973+ return String .class ;
974+ }
975+
976+ @ Override
977+ public String name (AnyNamed anyNamed ) {
978+ return anyNamed .name ();
979+ }
980+
981+ @ Override
982+ public Class <?> @ Nullable [] acceptChange (ChangeMode mode ) {
983+ if (mode == ChangeMode .SET )
984+ return new Class [] {String .class };
985+ return null ;
986+ }
987+
988+ @ Override
989+ public void change (AnyNamed named , Object @ Nullable [] delta , ChangeMode mode ) {
990+ if (mode == ChangeMode .SET && named .supportsNameChange ()) {
991+ assert delta != null ;
992+ named .setName ((String ) delta [0 ]);
993+ }
994+ }
995+ })
967996 );
968997
998+ //noinspection deprecation
969999 Classes .registerClass (new AnyInfo <>(AnyAmount .class , "numbered" )
9701000 .name ("Any Numbered/Sized Thing" )
9711001 .description ("Something that has an amount or size." )
@@ -974,6 +1004,7 @@ public String toVariableNameString(DynamicFunctionReference<?> function) {
9741004 .since ("2.10" )
9751005 );
9761006
1007+ //noinspection deprecation
9771008 Classes .registerClass (new AnyInfo <>(AnyValued .class , "valued" )
9781009 .name ("Any Valued Thing" )
9791010 .description ("Something that has a value." )
@@ -982,13 +1013,25 @@ public String toVariableNameString(DynamicFunctionReference<?> function) {
9821013 .since ("2.10" )
9831014 );
9841015
1016+ //noinspection deprecation
9851017 Classes .registerClass (new AnyInfo <>(AnyContains .class , "containing" )
9861018 .user ("any container" )
9871019 .name ("Anything with Contents" )
9881020 .description ("Something that contains other things." )
9891021 .usage ("" )
9901022 .examples ("{a} contains {b}" )
9911023 .since ("2.10" )
1024+ .property (Property .CONTAINS , new Property .ContainsHandler <AnyContains , Object >() {
1025+ @ Override
1026+ public boolean contains (AnyContains anyContains , Object object ) {
1027+ return anyContains .checkSafely (object );
1028+ }
1029+
1030+ @ Override
1031+ public Class <?>[] elementTypes () {
1032+ return new Class []{Object .class };
1033+ }
1034+ })
9921035 );
9931036 }
9941037
0 commit comments