41
41
import ch .njol .skript .lang .util .SimpleExpression ;
42
42
import ch .njol .util .Kleenean ;
43
43
44
- /**
45
- * Sorts a list of texts/stirngs alphabetically
46
- * @author xXAndrew28Xx
47
- */
48
44
@ Name ("Alphabetical Sort" )
49
- @ Description ("Sort a list alphabetically " )
45
+ @ Description ("Sorts given strings in alphabetical order. " )
50
46
@ Examples ({"set {_list::*} to alphabetically sorted {_list::*" })
51
- @ Since ("dev-18 " )
47
+ @ Since ("2.2-dev18b " )
52
48
public class ExprAlphabetList extends SimpleExpression <String >{
49
+
53
50
static {
54
51
Skript .registerExpression (ExprAlphabetList .class , String .class , ExpressionType .COMBINED , "alphabetically sorted %strings%" );
55
52
}
56
- private Expression <String > exprTexts ;
53
+
54
+ @ SuppressWarnings ("null" )
55
+ private Expression <String > texts ;
56
+
57
+ @ SuppressWarnings ({"null" , "unchecked" })
57
58
@ Override
58
- public boolean isSingle () {
59
- return false ;
59
+ public boolean init (Expression <?>[] exprs , int matchedPattern , Kleenean isDelayed , ParseResult parseResult ) {
60
+ texts = (Expression <String >) exprs [0 ];
61
+ return true ;
60
62
}
61
-
63
+
64
+ @ Override
65
+ @ Nullable
66
+ protected String [] get (Event e ) {
67
+ String [] sorted = texts .getAll (e ).clone (); // Not yet sorted
68
+ Arrays .sort (sorted ); // Now sorted
69
+ return sorted ;
70
+ }
71
+
62
72
@ Override
63
73
public Class <? extends String > getReturnType () {
64
74
return String .class ;
65
75
}
66
-
67
- @ SuppressWarnings ("unchecked" )
76
+
68
77
@ Override
69
- public boolean init (Expression <?>[] exprs , int matchedPattern , Kleenean isDelayed , ParseResult parseResult ) {
70
- exprTexts = (Expression <String >) exprs [0 ];
71
- return true ;
78
+ public boolean isSingle () {
79
+ return false ;
72
80
}
73
81
74
82
@ Override
75
83
public String toString (@ Nullable Event e , boolean debug ) {
76
- return "alphabetically sorted %strings%" ;
77
- }
78
-
79
- @ Override
80
- @ Nullable
81
- protected String [] get (Event e ) {
82
- String [] texts = exprTexts .getArray (e );
83
- ArrayList <String > alTexts = new ArrayList <String >(Arrays .asList (texts ));
84
- Collections .sort (alTexts , new Comparator <String >(){
85
-
86
- @ Override
87
- public int compare (String o1 , String o2 ) {
88
- return o1 .compareTo (o2 );
89
- }});
90
- return alTexts .toArray (new String [alTexts .size ()]);
84
+ return "alphabetically sorted strings" ;
91
85
}
92
86
93
87
}
0 commit comments