diff --git a/common/src/main/java/com/probejs/docs/EventCompiler.java b/common/src/main/java/com/probejs/docs/EventCompiler.java index 091c8d9..c833f96 100644 --- a/common/src/main/java/com/probejs/docs/EventCompiler.java +++ b/common/src/main/java/com/probejs/docs/EventCompiler.java @@ -97,7 +97,10 @@ public static void compileEvents(Map globalClasses) throw elements.add("%s(extra: %s, handler: (event: %s) => void):void,".formatted( eventName, - Serde.getTypeFormatter(type).formatFirst(), Util.formatMaybeParameterized(event) + Serde.getTypeFormatter(type) + .underscored() + .formatFirst(), + Util.formatMaybeParameterized(event) )); } if (handler.extra == null || !handler.extra.required) { diff --git a/common/src/main/java/com/probejs/docs/formatter/formatter/jdoc/FormatterMethod.java b/common/src/main/java/com/probejs/docs/formatter/formatter/jdoc/FormatterMethod.java index 38c58c6..1af64f8 100644 --- a/common/src/main/java/com/probejs/docs/formatter/formatter/jdoc/FormatterMethod.java +++ b/common/src/main/java/com/probejs/docs/formatter/formatter/jdoc/FormatterMethod.java @@ -51,8 +51,9 @@ private boolean isReturningThis() { @Override public List formatDocument(Integer indent, Integer stepIndent) { - return List.of(Util.indent(indent) + "%s%s%s%s;".formatted( + return List.of(Util.indent(indent) + "%s%s%s%s%s;".formatted( document.isStatic() ? "static " : "", + document.isAbstract() ? "abstract " : "", Util.getSafeName(document.getName()), document.getVariables().isEmpty() ? "" : "<%s>".formatted(document.getVariables().stream().map(Serde::getTypeFormatter).map(IFormatter::formatMethodVariable).collect(Collectors.joining(", "))), formatMethodParts() diff --git a/common/src/main/java/com/probejs/jdoc/document/DocumentMethod.java b/common/src/main/java/com/probejs/jdoc/document/DocumentMethod.java index cb39b92..a3e40f7 100644 --- a/common/src/main/java/com/probejs/jdoc/document/DocumentMethod.java +++ b/common/src/main/java/com/probejs/jdoc/document/DocumentMethod.java @@ -145,7 +145,7 @@ public boolean isStatic() { } public boolean isAbstract() { - return isAbstract; + return isAbstract && !isStatic; } public void setName(String name) { diff --git a/common/src/main/java/com/probejs/recipe/component/ComponentConverter.java b/common/src/main/java/com/probejs/recipe/component/ComponentConverter.java index 586a707..71cfa6f 100644 --- a/common/src/main/java/com/probejs/recipe/component/ComponentConverter.java +++ b/common/src/main/java/com/probejs/recipe/component/ComponentConverter.java @@ -8,6 +8,8 @@ import org.apache.commons.lang3.tuple.Pair; import java.util.Arrays; +import java.util.Collections; +import java.util.List; import java.util.stream.Collectors; public class ComponentConverter { @@ -67,7 +69,19 @@ public static PropertyType fromDescription(TypeDescJS description) { if (name.equals("null")) // return any here because we don't know what to do with null return new PropertyType.Clazz(Object.class); if (name.startsWith("$probejs$")) { - return new PropertyType.Clazz(name.substring(9)); + String clazzName = name.substring(9); + try { + Class clazz = Class.forName(clazzName); + int variables = clazz.getTypeParameters().length; + if (variables > 0) { + return new PropertyType.Parameterized( + new PropertyType.Clazz(clazzName), + Collections.nCopies(variables, new PropertyType.Clazz(Object.class)) + ); + } + } catch (ClassNotFoundException ignored) { + } + return new PropertyType.Clazz(clazzName); } else { return new PropertyType.Native(name); } diff --git a/fabric/build.gradle b/fabric/build.gradle index e70592d..6f88a16 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -54,7 +54,7 @@ remapJar { injectAccessWidener = true input.set shadowJar.archiveFile dependsOn shadowJar - classifier null + classifier "fabric" } jar { diff --git a/forge/build.gradle b/forge/build.gradle index 269e0a3..9a62f9b 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -80,7 +80,7 @@ shadowJar { remapJar { input.set shadowJar.archiveFile dependsOn shadowJar - classifier null + classifier "forge" } jar {