介绍
ClassJS is a mod to create Java classes in KubeJS.
Basic Example
You may operate Java byte code to build your own methods.
Note: Some instructions that interacts with classes (getstatic, invokestatic, new, etc.) is protected under KubeJS’s class filters. You may not use them to access classes that is not allowed by KubeJS or its other addons. Neither can you extend or implement them.
let ExampleClass = ClassCreator.create("ExampleClass")
.toPublic() // Set the class to public
.defaultConstructor() // Add a default constructor
.createMethod("exampleMethod", [], "java.lang.String") // Method name, parameter types, and return type
.toPublic()
.code(builder => {
builder.pushString("Hello, ClassJS!") // Push a string reference to the operand stack
.returnObject(); // Returns the string
})
.defineClass(); // Define the class
console.info((new ExampleClass()).exampleMethod());
Equivalent Java code:
public class ExampleClass {
public ExampleClass() {
super();
}
public String exampleMethod() {
return "Hello, ClassJS!";
}
}
Code in JavaScript
If you do not want to learn Java byte code, you can create methods using JavaScript functions.
let ExampleClass = ClassCreator.create("ExampleClass")
.toPublic()
.createMethod("exampleMethod", ["int", "int"], "int")
.toPublic().toStatic()
.codeJS((num1, num2) => {
return num1 + num2;
})
.defineClass();
console.info(ExampleClass.exampleMethod(1, 2));
// Output in startup.log
// 3.0
Equivalent Java code:
public ExampleClass {
// Note: This class do not even have a constructor,
// as the JavaScript above did not call `defaultConstructor`,
// neither did it created any other constructors.
public static int exampleMethod(int i1, int i2) {
return i1 + i2;
}
}
Load a Created Class
Classes can be only defined in startup scripts.
If you want to use them in other scripts, you can use ClassJSUtils.loadClass method.
ClassCreator.create("SomeClass")
/** Do some operations to add content to this class */
.defineClass();
// In other scripts:
let SomeClass = ClassJSUtils.loadClass("SomeClass");
// Then you can use `SomeClass`
常见问题
ClassJS 支持哪些 Minecraft 版本?
ClassJS 支持 Minecraft Java 版 1.20.1,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。
ClassJS 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。
评论
登录后评论和评分