Skip to content

Commit f94caa2

Browse files
authored
Fix getting java functions causing casting errors (#8213)
Fix #getJavaFunctions causing casting errors
1 parent 0d33fdd commit f94caa2

File tree

5 files changed

+11
-12
lines changed

5 files changed

+11
-12
lines changed

src/main/java/ch/njol/skript/doc/Documentation.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66
import ch.njol.skript.lang.ExpressionInfo;
77
import ch.njol.skript.lang.SkriptEventInfo;
88
import ch.njol.skript.lang.SyntaxElementInfo;
9-
import org.skriptlang.skript.common.function.DefaultFunction;
109
import ch.njol.skript.lang.function.Functions;
11-
import ch.njol.skript.lang.function.JavaFunction;
1210
import ch.njol.skript.lang.function.Parameter;
1311
import ch.njol.skript.registrations.Classes;
1412
import ch.njol.skript.util.Utils;
@@ -153,7 +151,7 @@ private static void asSql(final PrintWriter pw) {
153151
"examples VARCHAR(2000) NOT NULL," +
154152
"since VARCHAR(100) NOT NULL" +
155153
");");
156-
for (ch.njol.skript.lang.function.Function<?> func : Functions.getDefaultFunctions()) {
154+
for (ch.njol.skript.lang.function.Function<?> func : Functions.getFunctions()) {
157155
assert func != null;
158156
insertFunction(pw, func);
159157
}

src/main/java/ch/njol/skript/doc/DocumentationIdProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public static <T> String getId(SyntaxInfo<? extends T> syntaxInfo) {
103103
* @return the documentation ID of the function
104104
*/
105105
public static String getId(Function<?> function) {
106-
int collisionCount = calculateCollisionCount(Functions.getJavaFunctions().iterator(),
106+
int collisionCount = calculateCollisionCount(Functions.getFunctions().iterator(),
107107
javaFunction -> function.getName().equals(javaFunction.getName()),
108108
javaFunction -> javaFunction == function);
109109
return addCollisionSuffix(function.getName(), collisionCount);

src/main/java/ch/njol/skript/doc/HTMLGenerator.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import ch.njol.skript.lang.*;
77
import ch.njol.skript.lang.function.Function;
88
import ch.njol.skript.lang.function.Functions;
9-
import ch.njol.skript.lang.function.JavaFunction;
109
import ch.njol.skript.registrations.Classes;
1110
import com.google.common.base.Joiner;
1211
import com.google.common.collect.Lists;
@@ -18,7 +17,6 @@
1817
import org.jetbrains.annotations.Nullable;
1918
import org.skriptlang.skript.lang.entry.EntryData;
2019
import org.skriptlang.skript.lang.entry.EntryValidator;
21-
import org.skriptlang.skript.common.function.DefaultFunction;
2220
import org.skriptlang.skript.lang.structure.StructureInfo;
2321

2422
import java.io.File;
@@ -333,7 +331,7 @@ else if (!filesInside.getName().matches("(?i)(.*)\\.(html?|js|css|json)")) {
333331
}
334332
}
335333
if (genType.equals("functions") || isDocsPage) {
336-
List<Function<?>> functions = new ArrayList<>(Functions.getDefaultFunctions());
334+
List<Function<?>> functions = new ArrayList<>(Functions.getFunctions());
337335
functions.sort(functionComparator);
338336
for (Function<?> info : functions) {
339337
assert info != null;

src/main/java/ch/njol/skript/doc/JSONGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ public void generate(@NotNull Path path) throws IOException {
503503
jsonDocs.add("structures", generateStructureElementArray(source.syntaxRegistry().syntaxes(SyntaxRegistry.STRUCTURE)));
504504
jsonDocs.add("sections", generateSyntaxElementArray(source.syntaxRegistry().syntaxes(SyntaxRegistry.SECTION)));
505505
jsonDocs.add("types", generateClassInfoArray(Classes.getClassInfos().iterator()));
506-
jsonDocs.add("functions", generateFunctionArray(Functions.getDefaultFunctions().iterator()));
506+
jsonDocs.add("functions", generateFunctionArray(Functions.getFunctions().iterator()));
507507

508508
try {
509509
Files.writeString(path, GSON.toJson(jsonDocs));

src/main/java/ch/njol/skript/lang/function/Functions.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.skriptlang.skript.lang.script.Script;
1717

1818
import java.util.*;
19+
import java.util.stream.Collectors;
1920

2021
/**
2122
* Static methods to work with functions.
@@ -445,21 +446,23 @@ public static void clearFunctions() {
445446
}
446447

447448
/**
448-
* @deprecated Use {@link #getDefaultFunctions()} instead.
449+
* @deprecated Use {@link #getFunctions()} instead.
449450
*/
450-
@SuppressWarnings({"unchecked"})
451451
@Deprecated(forRemoval = true, since = "INSERT VERSION")
452452
public static Collection<JavaFunction<?>> getJavaFunctions() {
453453
// We know there are only Java functions in that namespace
454-
return (Collection<JavaFunction<?>>) (Object) javaNamespace.getFunctions();
454+
return javaNamespace.getFunctions().stream()
455+
.filter(it -> it instanceof JavaFunction<?>)
456+
.map(it -> (JavaFunction<?>) it)
457+
.collect(Collectors.toSet());
455458
}
456459

457460
/**
458461
* Returns all functions registered using Java.
459462
*
460463
* @return All {@link JavaFunction} or {@link DefaultFunction} functions.
461464
*/
462-
public static Collection<Function<?>> getDefaultFunctions() {
465+
public static Collection<Function<?>> getFunctions() {
463466
return javaNamespace.getFunctions();
464467
}
465468

0 commit comments

Comments
 (0)