ClassJS
No reviews yet
A KubeJS addon to create Java classes
Forge is a popular mod loader for versions 1.1+ of Minecraft.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
About
Description
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`
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources