JsPig

JsPig 通过 GraalVM 提供对 Bukkit API 的完全访问,允许开发者使用 JavaScript 的灵活性和简洁性高效地创建和管理 Minecraft 插件。

资源图片
# 描述 JsPig 通过 GraalVM 提供对 Bukkit API 的完全访问权限,允许开发者使用 JavaScript 的灵活性和简洁性,高效地创建和管理 Minecraft 插件。 # 开始使用 > 在开始之前,请使用 `GraalVM JDK 21` 作为您的开发环境和运行 Java 程序的环境。 1. 将插件放置在您的 `bukkit` 系列服务器的 `plugins` 文件夹中。 2. 启动服务器,插件将在 `plugins` 目录中自动生成一个与插件同名的文件夹。在控制台中输入命令 `JsPig declare` 以生成声明文件 `global.d.ts`。 3. 使用 `VSCode` 打开插件的数据文件夹,开始编写 `JavaScript` 插件。 ## 高级功能 * 在插件的数据目录中创建一个新文件夹,命名时遵循通用的命名约定。在该文件夹中,创建一个 `package.json` 文件,并包含以下代码: ``` { "main": "./block.js", "modules": [ "registry", "scripts-manager", "console", "timer" ] } ``` * 然后,在该文件夹中创建一个名为 `block.js` 的文件以启用高级插件开发。 `block.js` 只是一个示例文件;您可以将其命名为任何名称。 ### `modules` 中的可配置选项: * `registry` 用于事件注册。 * `scripts-manager` 用于脚本管理。 * `console` 用于日志记录。 * `timer` 用于精确计时,添加对 `setTimeout`, `setInterval`, `clearTimeout` 和 `clearInterval` 的支持。 # 自定义命令 每个文件夹中的 `package.json` 都可以定义自定义命令。一个示例配置如下: ``` { "command": { "command": "list", "description": "列出所有子命令", "usage": "使用 /<主命令> list", "permission": "JsPig.JsExtend.List", "permissionMessage": "您没有使用此命令的权限。" } } ``` ``` // JsExtend.list 对应于 "command": "list"。JsExtend. 是一个固定的前缀,且区分大小写。 registry.on("JsExtend.list", (sender, command, args) => { }) ``` **注意:一个 `package.json` 只能定义一个命令。** 为了允许玩家正确使用命令,例如上面的 `list` 命令,您需要一个权限管理插件,如 `LuckPerms-Bukkit`。 添加一个权限节点,例如 `JsPig.JsExtend.List`(不区分大小写),将权限节点的取值设置为 `true`,并在服务器上重新加载权限。玩家将能够使用该命令。 在游戏中,输入命令:`/jsextend list` 或 `/jse list`。 如果您的自定义命令有其他选项,请使用 `/jse <命令> <命令选项> <选项>`。 您可以通过 `args` 检索这些选项。 以下是使用自定义命令的完整 `package.json` 配置: ``` { "main": "./block.js", "modules": [ "registry" ], "command": { "command": "list", "description": "列出所有子命令", "usage": "使用 /<主命令> list", "permission": "JsPig.JsExtend.List", "permissionMessage": "您没有使用此命令的权限。" } } ``` # 插件命令 权限: JsPig.op 默认: op - jspig reload - jspig load - jspig unload - jspig list - jspig declare 权限: JsPig.JsExtend 默认: default - jse # 示例 [github](https://github.com/I-Mortals/jspig-example)