Scriptirc - AI插件编写 并编译为服务器插件

原创 工具 Scriptirc - AI插件编写 并编译为服务器插件 1.4.7

完成注册/登录后下载
版权类型
原创
插件中文名称
脚本编译
插件英文名称
Scriptirc
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
语言支持
中文(简体)
前置组件
none
适配版本(Java)
  1. 1.20
  2. 1.19
  3. 1.18
  4. 1.17
  5. 1.16
  6. 1.15
  7. 1.14
  8. 1.13
PX1.webp

[MD] # ScriptIrc - 脚本编译,使用AI构建编写一键生成ScriptIrc专用脚本 | 基于服务器环境直接编译脚本为服务器插件 ![版本](https://img.shields.io/badge/版本-1.4.0--SNAPSHOT-blue) ![Minecraft](https://img.shields.io/badge/Minecraft-1.13+-green) ![语言](https://img.shields.io/badge/语言-Java-orange) **建议用于测试服 / 开发中服务器:编译出来的插件脚本是标准 Bukkit 插件 JAR,不依赖 ScriptIrc 运行,你可以直接把生成的 JAR 丢进 `plugins` 目录使用。** ## 📚 介绍 ScriptIrc 是一个功能强大的 Bukkit/Spigot/Paper/Folia 插件,旨在简化插件管理和即时开发流程。你可以在不重启服务器的前提下,直接在服务端上**编写 / 修改 / 编译脚本插件**,并一键加载、卸载或重载;同时也支持直接从 **`.sirc` 插件项目** 解析并编译出可加载的 JAR。 @[bilibili](BV1QFJaz3EaM) ### ✨ 主要特性 - 🚀 **支持 AI 构建脚本** - 基于 AI 服务快速创建指定需求脚本 - 🔄 **动态插件管理** - 无需重启服务器即可加载、卸载或重载外部插件 - 📝 **即时脚本编译** - 将 Java 源码脚本直接编译为功能完整的 Bukkit 插件 - 🧩 **`.sirc` 项目支持** - 直接解析 `.sirc` 插件项目文件,安全解包到临时目录后自动编译、打包并输出 JAR - 🌐 **Folia 兼容** - 运行在支持全局 Region 调度的服务端时,自动在生成的 `plugin.yml` 中声明 `folia-supported: true`,方便在 Folia 端加载 - 🛡️ **数据目录隔离** - 为外部插件统一创建 `scripts/output/Data` 数据目录,减少与主服插件的数据冲突 - 🔧 **无缝集成** - 与现有的 Bukkit/Spigot/Paper 环境兼容 - 🔒 **资源释放** - 卸载外部插件后尽可能释放 JAR 句柄,方便覆盖与删除 ## 🚀 安装说明 1. 下载最新版本的 `ScriptIrc.jar` 2. 将 JAR 文件放入服务器的 `plugins` 目录 3. 启动 / 重启服务器加载插件 4. 插件会自动创建必要的目录结构和配置文件 > ⚠ **从旧版本升级提示**:本版本调整了脚本与外部插件的数据目录结构(`scripts/output/Data`),建议在升级前**手动备份并删除旧版本的 ScriptIrc 数据目录**,避免历史结构残留带来的混用与冲突。 ## 💡 使用方法 ScriptIrc 提供了直观的命令系统,让你可以轻松管理插件和脚本: ### 基本命令(所有命令可简写为 `/si`) | 命令 | 描述 | |------|------| | `/scriptirc help` | 显示帮助信息 | | `/scriptirc load <插件名>` | 从 `scripts/output` 目录加载指定的外部插件 JAR | | `/scriptirc unload <插件名>` | 卸载指定的外部插件 | | `/scriptirc reload <插件名>` | 重载指定的外部插件 | | `/scriptirc list` | 列出所有已加载的外部插件 | | `/scriptirc compiler <脚本名>` | 编译指定脚本:支持 `.java` 源码和 `.sirc` 项目 | | `/scriptirc compiler <脚本名> fixreport` | 在最近一次编译失败后,分析错误并给出依赖修复建议 | | `/scriptirc search <类名>` | 全局搜索给定类名的包路径 | | `/scriptirc sirctree <项目名>` | 查看 `.sirc` 项目文件的虚拟目录结构(不落地解包) | | `/ai-builder` | 打开 AI 脚本构建 Web UI(用于生成脚本源码) | ### 插件管理示例 ```text # 加载名为 TestPlugin 的外部插件(对应 scripts/output/TestPlugin.jar) /si load TestPlugin # 卸载插件 /si unload TestPlugin # 重新加载插件(例如更新后) /si reload TestPlugin # 查看已加载的插件列表 /si list ``` ### 脚本 / `.sirc` 编译示例 ```text # 编译位于 scripts/src 目录下的 HelloWorld.java 脚本(无需写后缀也可) /si compiler HelloWorld # 编译位于 plugins/ScriptIrc/scripts 下的 DemoProject.sirc 插件项目 /si compiler DemoProject # 然后加载编译好的插件(自动输出到 scripts/output/ 目录) /si load HelloWorld /si load DemoProject ``` > 提示:对于 `.sirc` 项目,编译完成后如果包内存在 `README.md`,插件会尝试将其解析为游戏内书本并发送给执行命令的玩家,作为项目说明书。 ## 📂 目录结构 安装后,ScriptIrc 将创建以下目录结构(简化示意): ```text plugins/ └── ScriptIrc/ ├── config.yml # 插件配置文件 ├── messages/ # 语言文件目录 └── scripts/ # 所有脚本相关内容 ├── src/ # 脚本源码目录(.java / .sirc 均可放在这里) │ ├── HelloWorld.java # 示例脚本 │ └── MathUtil.java # 示例脚本 ├── lib/ # 脚本额外依赖库目录(JAR) ├── output/ # 脚本 / 项目编译输出目录(可加载的外部插件 JAR) │ └── Data/ # 外部插件数据目录(可选重定向) └── build-cache/ # 编译临时目录(内部使用,会自动清理) ``` ## 🛠️ 开发教程 - 创建你的第一个脚本插件 ScriptIrc 让插件开发变得异常简单。你只需要创建一个 Java 源文件,编译后即可立刻加载使用。下面是开发步骤: ### 1. 创建脚本文件 在 `plugins/ScriptIrc/scripts/src` 目录下创建一个新的 Java 文件,例如 `MyFirstPlugin.java`。 ### 2. 编写插件代码(推荐使用注释元数据方式) 以下是一个简单的插件模板,元数据通过 JavaDoc 注释提供,ScriptIrc 会自动从注释中读取信息并生成 `plugin.yml`: ```java // 包名可自定义(尽量合理即可,推荐使用反向域名) package your.package.name; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; /** * @pluginName MyFirstPlugin // 插件名称 * @author 你的名字 // 作者 * @version 1.0.0 // 版本 * @description 我的第一个 ScriptIrc 脚本插件 // 简要描述(可多行) * [command]myfirstcmd|执行一个测试命令[/command] * [permission]myfirstplugin.use|使用测试命令的权限[/permission] */ public class MyFirstPlugin extends JavaPlugin { @Override public void onEnable() { getLogger().info("插件已启用!"); // 初始化代码 } @Override public void onDisable() { getLogger().info("插件已禁用!"); // 卸载监听器 / 命令等相关清理代码可以放在这里 } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (command.getName().equalsIgnoreCase("myfirstcmd")) { if (sender instanceof Player) { Player player = (Player) sender; player.sendMessage("§a你好,这是我的第一个插件命令!"); } else { sender.sendMessage("这个命令只能由玩家执行!"); } return true; } return false; } } ``` ### 3. 编译并加载插件 使用以下命令编译和加载你的插件: ```text /si compiler MyFirstPlugin /si load MyFirstPlugin ``` 就这么简单!你的插件现在已经在服务器上运行了,无需重启服务器。 ### 重要的元数据标签(注释方式) 当前版本推荐且默认使用 **JavaDoc 注释方式** 定义元数据,ScriptIrc 会自动从主类注释中解析: | 标签 | 必填 | 描述 | |------|------|------| | `@pluginName` | 是 | 插件名称(用于展示与生成 `plugin.yml`) | | `@version` | 是 | 插件版本号 | | `@description` | 是 | 插件描述,支持多行 | | `@author` | 是 | 插件作者 | | `[command]name|description[/command]` | 否 | 命令定义,命令名与描述以 `|` 分隔 | | `[permission]node|description[/permission]` | 否 | 权限定义,节点与描述以 `|` 分隔 | > 注:如果缺少上述必需标签,当前版本将无法正确生成 `plugin.yml`,编译会失败,请根据模板补全。 ## ⚙️ 配置文件说明 ScriptIrc 的配置文件(`config.yml`)允许你自定义插件的行为,以下为当前版本的关键配置示例: ```yaml # 插件自动重载配置 | Auto-reload configuration auto-reload: # 是否启用自动重载 | Whether to enable auto-reload enabled: true # 检测间隔(秒) | Check interval (seconds) check-interval: 5 # 是否在控制台输出详细日志 | Whether to output verbose logs in console verbose-logging: false # 脚本编译设置 | Script compiler settings compiler: # 是否启用 Java 编译器的详细输出(等价于 javac 的 -verbose),默认关闭 # Whether to enable verbose output of Java compiler (equivalent to javac -verbose), default false verbose-logging: false # 插件管理设置 | Plugin management settings plugin-management: # 外部插件存放目录,相对于插件数据文件夹 | External plugins directory, relative to plugin data folder # 默认:scripts/output external-plugins-directory: "scripts/output" # 是否在服务器启动时自动加载外部插件 | Whether to auto-load external plugins on server startup load-on-startup: true # 是否将外部插件的数据文件夹重定向到 ScriptIrc 目录下 | Whether to redirect external plugins' data folders to ScriptIrc directory redirect-data-folder: true # 权限设置 | Permission settings permissions: # 管理员权限节点 | Admin permission node admin-permission: "scriptirc.admin" # 是否只允许 OP 使用 | Whether to allow only OP to use op-only: true # 日志设置 | Logging settings logging: # 日志输出级别: VERBOSE(输出所有日志), NORMAL(标准输出), MINIMAL(只输出关键信息) # Log output level: VERBOSE(all logs), NORMAL(standard output), MINIMAL(only critical information) level: "MINIMAL" # 语言设置 | Language settings language: # 当前语言: zh_CN(简体中文), en_US(英语) # Current language: zh_CN(Simplified Chinese), en_US(English) current: "zh_CN" # 是否启用自定义语言文件 (放置在 plugins/ScriptIrc/messages/ 目录下) # Whether to enable custom language files (placed in plugins/ScriptIrc/messages/ directory) enable-custom: true ``` ## 🤔 常见问题 ### 编译脚本 / `.sirc` 项目时报错怎么办? 请检查: 1. Java 代码语法是否正确; 2. 主类是否包含完整、合法的注释元数据标签(`@pluginName/@version/@description/@author` 等); 3. 服务器是否运行在 **JDK** 而不是 JRE(编译需要 JDK 环境); 4. 如果是依赖相关报错,可先执行一次 `/si compiler <脚本名>`,然后使用 `/si compiler <脚本名> fixreport` 查看依赖修复建议; 5. 也可以尝试将错误日志交给 AI 工具协助分析,大多数常见问题都能快速定位。 ### 如何删除动态加载的插件文件? 当使用 `/si unload` 命令卸载插件时,ScriptIrc 会尝试完全释放 JAR 文件,使其可以被删除或替换。如果仍然无法删除,通常需要重启服务器。 ## 声明 * 有关插件卸载 / 加载相关的部分实现参考了 PlugManX 项目 --- ## 关于 ai-builder - `ai-builder` (AI:ScriptIrc) 功能基于当前插件之上,为你提供脚本开发与生成功能; - `ai-builder` 服务本身是独立的在线服务; - 条款链接:<https://scriptirc.cc/terms> - 当前插件的核心功能仍然是:在当前服务器环境下编译并管理服务器插件; - `ai-builder` 服务存在内购,但仍可通过签到等方式获取免费试用额度。 [/MD]
作者
维嘉
下载
163
查看
2,710
首次发布
最后更新

评分

0.00 星 0 次评分

维嘉 的其他资源

最新更新

  1. 1.4.7

    修复了一些问题
  2. 1.4.5

    1.优化了编译核心 2.添加ws服务器 与Web构建端进行交互 4.支持直接拉取项目文件进行编译 5.优化消息输出格式以及语言文件
  3. Scriptirc 1.4.0

    # 更新日志 · v1.4.0 ## ✨ 新增功能 ### 1. 直接解析并编译 `.sirc` 插件项目 基于内置 **SircDecoder**,现已支持从 `.sirc`...
后退
顶部 底部