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

高级插件 ScriptIrc - AI插件编写 并编译为服务器插件 1.3.1

脚本编译,使用AI构建编写一键生成ScriptIrc专用脚本 | 基于服务器环境直接编译脚本为服务器插件

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


📚 介绍​

ScriptIrc是一个功能强大的Bukkit/Spigot插件,旨在简化插件管理和即时开发流程。如果你曾经希望能够在不重启服务器的情况下 编译修改脚本插件、加载、卸载或重载 ,或者想要快速开发和测试简单的功能,ScriptIrc将是你理想的选择

✨ 主要特性​

  • 🚀 支持AI构建脚本 - 基于AI服务快速创建指定需求脚本
  • 🔄 动态插件管理 - 无需重启服务器即可加载、卸载或重载插件
  • 📝 即时脚本编译 - 将Java脚本直接编译为功能完整的Bukkit插件
  • 🛡️ 数据目录隔离 - 自动为插件脚本创建独立的数据目录
  • 🔧 无缝集成 - 与现有的Bukkit/Spigot/Paper环境兼容
  • 🔒 资源释放 - 卸载插件脚本彻底释放插件资源,解锁JAR文件

🚀 安装说明

  1. 下载最新版本的ScriptIrc.jar
  2. 将JAR文件放入服务器的plugins目录
  3. 重启服务器或使用插件管理器加载插件
  4. 插件将自动创建必要的目录结构和配置文件

💡 使用方法

ScriptIrc提供了直观的命令系统,让你可以轻松管理插件和脚本:

基本命令(所有命令可简写为/si)​

命令
/scriptirc help
/scriptirc load <插件名>
/scriptirc unload <插件名>
/scriptirc reload <插件名>
/scriptirc list
/scriptirc compiler <脚本名>
/scriptirc profile
/ai-builder
描述
显示帮助信息
加载指定的插件脚本
卸载指定的插件脚本
重新加载指定的插件脚本
列出所有已加载的插件脚本
编译指定的Java脚本为插件
上传服务器配置插件信息(用于辅助ai使用)
在线制作AI插件脚本WEBUI(用于生成创建脚本)
/scriptirc compiler <脚本名> fixreport 生成依赖修复建议报告
/scriptirc search <包名>搜索服务器内缺失依赖包

插件管理示例​

代码:
# 加载名为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/          # 脚本源码目录
      │   ├── HelloWorld.java  # 示例脚本
      │   └── MathUtil.java    # 示例脚本
      ├── script_build/        # 脚本构建临时目录
      └── lib/                 # 额外可能需要的依赖

🛠️ 开发教程 #1 - 使用ai-builder创建你的第一个脚本插件​

ia.gif


🛠️ 开发教程 #2 - 收到创建你的第一个脚本插件​

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 <描述 仅在此行内完成所有描述>
* (命令和权限是可选添加的)
* [command]<命令1>|描述1[/command]
* [command]<命令2>|描述1[/command]
* [Permission]<权限1>|描述1[/Permission]
* [Permission]<权限2>|描述2[/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. 编译并加载插件​

使用以下命令编译和加载你的插件:
/si compiler MyFirstPlugin
/si load MyFirstPlugin

就这么简单!你的插件现在已经在服务器上运行了,无需重启服务器。

重要的元数据字段​

字段
必填
描述
VERSION插件版本号
DESCRIPTION插件描述
AUTHOR插件作者
COMMANDS插件命令定义与描述
PERMISSIONS插件权限定义与描述

示例:​

代码:
/**
* @pluginName <插件名称>
* @author <作者>
* @version <版本>
* @description <描述 仅在此行内完成所有描述>
* (命令和权限是可选添加的)
* [command]<命令1>|描述1[/command]
* [command]<命令2>|描述1[/command]
* [Permission]<权限1>|描述1[/Permission]
* [Permission]<权限2>|描述2[/Permission]
*/



⚙️ 配置文件说明​

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
 
# 插件管理设置 | Plugin management settings
plugin-management:
  # 外部插件存放目录,相对于插件数据文件夹 | External plugins directory, relative to plugin data folder
  external-plugins-directory: "plugins"
  # 是否在服务器启动时自动加载外部插件 | 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

🤔 常见问题​

编译脚本时报错怎么办?​

确保:
  1. Java代码语法正确
  2. 包含所有必要的元数据字段(VERSION, DESCRIPTION, AUTHOR)
  3. 服务器运行在JDK而不是JRE上(编译需要JDK)
  4. 您也可以尝试使用ai工具为您解决一些错误 大多数情况都能解决

如何删除动态加载的插件文件?​

当使用 /si unload 命令卸载插件时,Scriptirc会尝试完全释放JAR文件,使其可以被删除或替换。如果仍然无法删除,可能需要重启服务器。

声明​

  • 有关于插件卸载加载 相关的代码 我参考了PlugManX项目

关于ai-builder​

  • ai-builder (AI:ScriptIrc) 功能基于当前插件之上 进行脚本开发任务
  • ai-builder (AI:ScriptIrc) 的服务完全独立
  • 当前插件的核心功能扔是基于当前服务器环境 编译服务器插件
  • ai-builder 服务存在内购 但仍可通过签到免费试用
  • 点赞
反馈: 咕噜咕噜噜
无下载权限
ed2k
贡献者 ed2k

帖子交流

0

点赞金锭

16

贡献资源

1

资源版本 1.3.1
下载量 11
热度 621
更新时间
{评级}星 0 星

最新更新

  1. Scriptirc 1.3.1

    🆕 更新内容 🧭 新增类路径搜索工具 通过命令 /si search <包名>,可对服务器已加载的所有类路径进行解析与匹配,辅助快速定位依赖来源。 🧠 智能分析丢失依赖...
  2. ScriptIrc-1.2.5

    🆕 更新内容 📁 新增 lib 目录 你现在可以手动添加额外的依赖库,辅助脚本正常编译运行。 🔍 自动依赖检测...
顶部