← Назад к ресурсам

JsPig

JsPig provides complete access to the Bukkit API via GraalVM, allowing developers to efficiently create and manage Minecraft plugins using JavaScript's flexibility and simplicity.

Modrinth game-mechanics management optimization

Описание

# Description JsPig provides complete access to the Bukkit API via GraalVM, allowing developers to efficiently create and manage Minecraft plugins using JavaScript's flexibility and simplicity. # Getting Started > Before you start, please use `GraalVM JDK 21` as your development environment and the environment for running Java programs. 1. Place the plugin in the `plugins` folder of your `bukkit`\-series server. 2. Start the server, and the plugin will automatically generate a folder with the same name as the plugin in the `plugins` directory. Enter the command `JsPig declare` in the console to generate the declaration file `global.d.ts`. 3. Open the plugin's data folder with `VSCode` to start writing `JavaScript` plugins. ## Advanced Features * Create a new folder in the plugin's data directory, naming it according to general naming conventions. Within this folder, create a `package.json` file and include the following code: ``` { "main": "./block.js", "modules": [ "registry", "scripts-manager", "console", "timer" ] } ``` * Then, create a file named `block.js` in the folder to enable advanced plugin development. `block.js` is just an example file; you can name it anything. ### Configurable Options in `modules`: * `registry` for event registration. * `scripts-manager` for script management. * `console` for logging. * `timer` for precise timing, adding support for `setTimeout`, `setInterval`, `clearTimeout`, and `clearInterval`. # Custom Commands Each `package.json` in a folder can define custom commands. An example configuration is as follows: ``` { "command": { "command": "list", "description": "List all subcommands", "usage": "Use / list", "permission": "JsPig.JsExtend.List", "permissionMessage": "You do not have permission to use this command." } } ``` ``` // JsExtend.list corresponds to "command": "list". JsExtend. is a fixed prefix and is case-sensitive. registry.on("JsExtend.list", (sender, command, args) => { }) ``` **Note: A `package.json` can only define one command.** To allow players to use the command correctly, such as the `list` command above, you need a permission management plugin like `LuckPerms-Bukkit`. Add a permission node like `JsPig.JsExtend.List` (case-insensitive), set the value of the permission node to `true`, and reload permissions on the server. Players will then be able to use the command. In the game, enter the command: `/jsextend list` or `/jse list`. If your custom command has additional options, use `/jse `. You can retrieve these options via `args`. Below is the full `package.json` configuration for using a custom command: ``` { "main": "./block.js", "modules": [ "registry" ], "command": { "command": "list", "description": "List all subcommands", "usage": "Use / list", "permission": "JsPig.JsExtend.List", "permissionMessage": "You do not have permission to use this command." } } ``` # plugin Commands permission: JsPig.op default: op - jspig reload - jspig load - jspig unload - jspig list - jspig declare permission: JsPig.JsExtend default: default - jse # Example [github](https://github.com/I-Mortals/jspig-example)