Scriptirc

AI 编写的 Bukkit/Spigot/Paper 服务器插件。 只需将 .java 文件放入文件夹即可加载。

资源图片
# Scriptirc - 脚本编译器,将 Java 源代码直接编译成服务器插件并加载。 **本插件推荐用于测试服务器或正在开发中的服务器,因为编译后的脚本不需要依赖 Scriptirc 来加载,您可以将编译后的插件脚本直接放入 plugins 文件夹中。** ## 📚 简介 Scriptirc 是一个强大的 Bukkit/Spigot 插件,旨在简化插件管理和即时开发流程。如果您一直希望能够编译和修改脚本插件,在不重启服务器的情况下加载、卸载或重新加载它们,或者希望能够快速开发和测试简单的功能,那么 Scriptirc 适合您。 ## ✨ 主要特性 🔄 动态插件管理 - 在不重启服务器的情况下加载、卸载或重新加载插件 📝 即时脚本编译 - 将 Java 脚本直接编译成完全可用的 Bukkit 插件 🛡️ 数据目录隔离 - 自动为插件脚本创建单独的数据目录 🔧 无缝集成 - 兼容现有的 Bukkit/Spigot/Paper 环境 🔒 资源释放 - 卸载插件脚本以完全释放插件资源,解锁 JAR 文件 ## 🚀 安装说明 下载 Scriptirc.jar 的相应版本 将 JAR 文件放置在服务器的 plugins 目录下 重启服务器或使用插件管理器加载插件 插件将自动创建必要的目录结构和配置文件 ## 💡 使用方法 Scriptirc 提供一个直观的命令系统,可以轻松管理插件和脚本: 基本命令 (所有命令都可以缩写为 /si) 命令 描述 ``` /scriptirc help /scriptirc load /scriptirc unload /scriptirc reload /scriptirc list /scriptirc compiler /scriptirc sync /scriptirc profile ``` 插件管理示例 ## 加载一个名为 TestPlugin 的插件。 ``` /si load TestPlugin ``` ## 卸载插件 ``` /si unload TestPlugin ``` ## 重新加载插件 (例如,更新后) ``` /si reload TestPlugin ``` ## 查看已加载插件的列表 ``` /si list ``` 脚本编译示例 ## 编译位于 script_src 目录中的 HelloWorld.java 脚本。 ``` /si compiler HelloWorld ``` ## 然后加载编译后的插件。 ``` /si load HelloWorld ``` ## 📂 目录结构 安装后,Scriptirc 将创建以下目录结构: ``` plugins/ └── Scriptirc/ ├── config.yml # 插件配置文件 ├── plugins/ # 外部插件存储目录 │ └── Data/ # 插件数据目录 ├─ script_src/ # 脚本源代码目录 │ ├── script_src/ # 脚本源代码目录 │ ├── HelloWorld.java # 示例脚本 │ └── MathUtil.java # 示例脚本 └─ script_build/ # 临时脚本构建目录 ``` ## 🛠️ 开发教程 - 创建您的第一个脚本插件 Scriptirc 让插件开发变得非常容易。您只需要创建一个 Java 源代码文件,编译它并加载它即可立即使用。以下是开发步骤: ### 1. 创建脚本文件 在 plugins/Scriptirc/script_src 目录下创建一个新的 Java 文件,例如 MyFirstPlugin.java。 ### 2. 编写插件代码 以下是一个简单的插件模板: 包名是可以自定义的(尽量合理即可) ``` 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 * @author * @version * @description * (Commands and permissions are added optionally) * [command]|description1[/command] * [command]|description2[/command] * [Permission]|description1[/Permission] * [Permission]|description2[/Permission] */ public class MyFirstPlugin extends JavaPlugin { @Override public void onEnable() { getLogger().info("Plugin enabled!"); // Initializing Code // } @Override public void onDisable() { getLogger().info("Plugin disabled!"); // The code for the unload / listener / command can be placed here. } @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("§aHello, this is my first plugin command!"); } else { sender.sendMessage("This command can only be executed by the player!"); } return true; } return false; } } ``` 官方 AI 推荐!!! [官方网站](https://scriptirc.io/) ### 3. 编译和加载您的插件 使用以下命令编译并加载您的插件: ``` /si compiler MyFirstPlugin /si load MyFirstPlugin ``` 就是这么简单!您的插件现在正在服务器上运行,无需重启服务器。 ``` 重要的元数据字段 |Fields |Required |Description |VERSION |YES |插件版本号 |DESCRIPTION |YES |插件说明 |AUTHOR |YES |插件作者 |COMMANDS |No |插件命令定义,格式为“命令名称”。 |PERMISSIONS |No |权限定义,格式为“权限节点”。 ``` ## ⚙️ 配置文件说明 ### Scriptirc 的配置文件 (config.yml) 允许您自定义插件的行为: 插件自动重新加载配置 auto-reload. 是否启用自动重新加载 enabled: true 检查间隔 (秒) check-interval: 5 verbose-logging: false verbose-logging: false 插件管理设置 plugin-management. 外部插件目录,相对于插件数据文件夹 external-plugins-directory: “plugins” 是否在服务器启动时自动加载外部插件。 load-on-startup: true 是否将外部插件的数据文件夹重定向到 Scriptirc 目录。 redirect-data-folder: true 权限设置 permissions. 管理员权限节点 admin-permission: “scriptirc.admin” 是否仅允许 OP 使用 op-only: true ## Logging 设置 logging. logging 输出级别: VERBOSE (输出所有日志), NORMAL (标准输出), MINIMAL (仅输出关键信息) level: “MINIMAL” (如果遇到编译失败,请尝试将日志模式切换到 VERBOSE) ## 🤔 常见问题解答 如果玩家在加载插件后看不到命令怎么办?(可能存在一个 bug,稍后会修复) 服务器管理员可以运行命令 /si sync 将命令同步到所有在线玩家。 或者让玩家重新登录服务器。 ## 如果我收到脚本编译错误,该怎么办? 确保: Java 代码语法正确 包含所有必需的元数据字段 (VERSION, DESCRIPTION, AUTHOR) 服务器运行在 JDK 而不是 JRE (编译需要 JDK) ## 如何删除动态加载的插件文件? 使用 /si unload 命令卸载插件时,Scriptirc 尝试完全释放 JAR 文件,以便它可以被删除或替换。如果仍然无法删除,可能需要重启服务器。 ## 鸣谢 在插件卸载加载相关代码方面,我参考了 PlugManX 项目。