From c2b9cd77255639b8429563aae1e237fbe211140f Mon Sep 17 00:00:00 2001 From: Efnilite <35348263+Efnilite@users.noreply.github.com> Date: Wed, 1 Oct 2025 18:32:43 +0200 Subject: [PATCH] Fix #getJavaFunctions causing casting errors --- src/main/java/ch/njol/skript/doc/Documentation.java | 4 +--- .../ch/njol/skript/doc/DocumentationIdProvider.java | 2 +- src/main/java/ch/njol/skript/doc/HTMLGenerator.java | 4 +--- src/main/java/ch/njol/skript/doc/JSONGenerator.java | 2 +- .../java/ch/njol/skript/lang/function/Functions.java | 11 +++++++---- 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/ch/njol/skript/doc/Documentation.java b/src/main/java/ch/njol/skript/doc/Documentation.java index c971ffb4a4e..2c7864ab88e 100644 --- a/src/main/java/ch/njol/skript/doc/Documentation.java +++ b/src/main/java/ch/njol/skript/doc/Documentation.java @@ -6,9 +6,7 @@ import ch.njol.skript.lang.ExpressionInfo; import ch.njol.skript.lang.SkriptEventInfo; import ch.njol.skript.lang.SyntaxElementInfo; -import org.skriptlang.skript.common.function.DefaultFunction; import ch.njol.skript.lang.function.Functions; -import ch.njol.skript.lang.function.JavaFunction; import ch.njol.skript.lang.function.Parameter; import ch.njol.skript.registrations.Classes; import ch.njol.skript.util.Utils; @@ -153,7 +151,7 @@ private static void asSql(final PrintWriter pw) { "examples VARCHAR(2000) NOT NULL," + "since VARCHAR(100) NOT NULL" + ");"); - for (ch.njol.skript.lang.function.Function func : Functions.getDefaultFunctions()) { + for (ch.njol.skript.lang.function.Function func : Functions.getFunctions()) { assert func != null; insertFunction(pw, func); } diff --git a/src/main/java/ch/njol/skript/doc/DocumentationIdProvider.java b/src/main/java/ch/njol/skript/doc/DocumentationIdProvider.java index a46028ed476..a602c56fbe0 100644 --- a/src/main/java/ch/njol/skript/doc/DocumentationIdProvider.java +++ b/src/main/java/ch/njol/skript/doc/DocumentationIdProvider.java @@ -103,7 +103,7 @@ public static String getId(SyntaxInfo syntaxInfo) { * @return the documentation ID of the function */ public static String getId(Function function) { - int collisionCount = calculateCollisionCount(Functions.getJavaFunctions().iterator(), + int collisionCount = calculateCollisionCount(Functions.getFunctions().iterator(), javaFunction -> function.getName().equals(javaFunction.getName()), javaFunction -> javaFunction == function); return addCollisionSuffix(function.getName(), collisionCount); diff --git a/src/main/java/ch/njol/skript/doc/HTMLGenerator.java b/src/main/java/ch/njol/skript/doc/HTMLGenerator.java index a95ef4966ca..e9df37c5c81 100644 --- a/src/main/java/ch/njol/skript/doc/HTMLGenerator.java +++ b/src/main/java/ch/njol/skript/doc/HTMLGenerator.java @@ -6,7 +6,6 @@ import ch.njol.skript.lang.*; import ch.njol.skript.lang.function.Function; import ch.njol.skript.lang.function.Functions; -import ch.njol.skript.lang.function.JavaFunction; import ch.njol.skript.registrations.Classes; import com.google.common.base.Joiner; import com.google.common.collect.Lists; @@ -18,7 +17,6 @@ import org.jetbrains.annotations.Nullable; import org.skriptlang.skript.lang.entry.EntryData; import org.skriptlang.skript.lang.entry.EntryValidator; -import org.skriptlang.skript.common.function.DefaultFunction; import org.skriptlang.skript.lang.structure.StructureInfo; import java.io.File; @@ -333,7 +331,7 @@ else if (!filesInside.getName().matches("(?i)(.*)\\.(html?|js|css|json)")) { } } if (genType.equals("functions") || isDocsPage) { - List> functions = new ArrayList<>(Functions.getDefaultFunctions()); + List> functions = new ArrayList<>(Functions.getFunctions()); functions.sort(functionComparator); for (Function info : functions) { assert info != null; diff --git a/src/main/java/ch/njol/skript/doc/JSONGenerator.java b/src/main/java/ch/njol/skript/doc/JSONGenerator.java index 3121f299c99..de320e6b391 100644 --- a/src/main/java/ch/njol/skript/doc/JSONGenerator.java +++ b/src/main/java/ch/njol/skript/doc/JSONGenerator.java @@ -503,7 +503,7 @@ public void generate(@NotNull Path path) throws IOException { jsonDocs.add("structures", generateStructureElementArray(source.syntaxRegistry().syntaxes(SyntaxRegistry.STRUCTURE))); jsonDocs.add("sections", generateSyntaxElementArray(source.syntaxRegistry().syntaxes(SyntaxRegistry.SECTION))); jsonDocs.add("types", generateClassInfoArray(Classes.getClassInfos().iterator())); - jsonDocs.add("functions", generateFunctionArray(Functions.getDefaultFunctions().iterator())); + jsonDocs.add("functions", generateFunctionArray(Functions.getFunctions().iterator())); try { Files.writeString(path, GSON.toJson(jsonDocs)); diff --git a/src/main/java/ch/njol/skript/lang/function/Functions.java b/src/main/java/ch/njol/skript/lang/function/Functions.java index bcd3570a6e3..2acaaeb3eb3 100644 --- a/src/main/java/ch/njol/skript/lang/function/Functions.java +++ b/src/main/java/ch/njol/skript/lang/function/Functions.java @@ -16,6 +16,7 @@ import org.skriptlang.skript.lang.script.Script; import java.util.*; +import java.util.stream.Collectors; /** * Static methods to work with functions. @@ -445,13 +446,15 @@ public static void clearFunctions() { } /** - * @deprecated Use {@link #getDefaultFunctions()} instead. + * @deprecated Use {@link #getFunctions()} instead. */ - @SuppressWarnings({"unchecked"}) @Deprecated(forRemoval = true, since = "INSERT VERSION") public static Collection> getJavaFunctions() { // We know there are only Java functions in that namespace - return (Collection>) (Object) javaNamespace.getFunctions(); + return javaNamespace.getFunctions().stream() + .filter(it -> it instanceof JavaFunction) + .map(it -> (JavaFunction) it) + .collect(Collectors.toSet()); } /** @@ -459,7 +462,7 @@ public static Collection> getJavaFunctions() { * * @return All {@link JavaFunction} or {@link DefaultFunction} functions. */ - public static Collection> getDefaultFunctions() { + public static Collection> getFunctions() { return javaNamespace.getFunctions(); }