Skip to content

Commit a35b489

Browse files
committed
Make that sort actually work...
1 parent 2faec49 commit a35b489

File tree

1 file changed

+24
-30
lines changed

1 file changed

+24
-30
lines changed

src/main/java/ch/njol/skript/expressions/ExprAlphabetList.java

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -41,53 +41,47 @@
4141
import ch.njol.skript.lang.util.SimpleExpression;
4242
import ch.njol.util.Kleenean;
4343

44-
/**
45-
* Sorts a list of texts/stirngs alphabetically
46-
* @author xXAndrew28Xx
47-
*/
4844
@Name("Alphabetical Sort")
49-
@Description("Sort a list alphabetically")
45+
@Description("Sorts given strings in alphabetical order.")
5046
@Examples({"set {_list::*} to alphabetically sorted {_list::*"})
51-
@Since("dev-18")
47+
@Since("2.2-dev18b")
5248
public class ExprAlphabetList extends SimpleExpression<String>{
49+
5350
static{
5451
Skript.registerExpression(ExprAlphabetList.class, String.class, ExpressionType.COMBINED, "alphabetically sorted %strings%");
5552
}
56-
private Expression<String> exprTexts;
53+
54+
@SuppressWarnings("null")
55+
private Expression<String> texts;
56+
57+
@SuppressWarnings({"null", "unchecked"})
5758
@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;
6062
}
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+
6272
@Override
6373
public Class<? extends String> getReturnType() {
6474
return String.class;
6575
}
66-
67-
@SuppressWarnings("unchecked")
76+
6877
@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;
7280
}
7381

7482
@Override
7583
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";
9185
}
9286

9387
}

0 commit comments

Comments
 (0)