• 欢迎来到 HiMCBBS 论坛~ 加入QQ群:879016948 获得最新公告,并与群友们一起聊天吹水!
Scriptirc - 脚本编译,将脚本编译为服务器插件并

原创 闭源 免费 工具 Scriptirc - 脚本编译,将脚本编译为服务器插件并 1.1

脚本编译,可直接在服务器内将java源码编译为服务器插件并加载
版权类型
原创
插件英文名称
Scriptirc
支持的核心
  1. Bukkit
  2. Spigot
  3. Paper
  4. PaperSpigot
资源语言
  1. 简体中文
游戏大版本(Java)
  1. 1.12
  2. 1.13
  3. 1.14
  4. 1.15
  5. 1.16
  6. 1.17
  7. 1.18
  8. 1.19
  9. 1.20
许可证
保留所有权益/无许可证

Scriptirc - 脚本编译,可直接将java源码编译为服务器插件并加载

版本
Minecraft
语言
这是一个Beta版本并且仅在1.20.4版本测试过,如您遇到bug或各种奇葩错误 请见谅

这个插件推荐 用于测试服务器 或 正在开发中的服务器 因为编译出来的脚本不需要依赖Scriptirc的加载 您可以将编译出来的插件脚本可以直接放置在plugins内

📚 介绍

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

✨ 主要特性

  • 🔄 动态插件管理 - 无需重启服务器即可加载、卸载或重载插件
  • 📝 即时脚本编译 - 将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 <脚本名> 编译指定的Java脚本为插件
/scriptirc sync 同步命令给所有玩家(修复命令不可见的问题)
/scriptirc profile 上传服务器配置插件信息(用于辅助ai创建插件用)

插件管理示例

# 加载名为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/        # 脚本构建临时目录

🛠️ 开发教程 - 创建你的第一个脚本插件

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 <作者>
* [USER=72546]@version[/USER] <版本>
* @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 插件权限定义,格式为"权限节点

⚙️ 配置文件说明

Scriptirc的配置文件(config.yml)允许你自定义插件的行为:

# 插件自动重载配置
auto-reload:
  # 是否启用自动重载
  enabled: true
  # 检测间隔(秒)
  check-interval: 5
  # 是否在控制台输出详细日志
  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:
  # 日志输出级别: VERBOSE(输出所有日志), NORMAL(标准输出), MINIMAL(只输出关键信息)
  level: "MINIMAL"

(如果遇到编译失败 请尝试将日志模式切换到 VERBOSE)

🤔 常见问题

加载插件后玩家看不到命令怎么办?(有那么一点点可能出现的bug 之后会解决)

  1. 服务器管理员执行 /si sync 命令同步命令到所有在线玩家
  2. 或者让玩家重新登录服务器

编译脚本时报错怎么办?

确保:

  1. Java代码语法正确
  2. 包含所有必要的元数据字段(VERSION, DESCRIPTION, AUTHOR)
  3. 服务器运行在JDK而不是JRE上(编译需要JDK)

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

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

承认

  • 有关于插件卸载加载 相关的代码 我参考了PlugManX项目
作者
WKEA
下载
14
查看
35
首次发布
最后更新

评论

0.00 星 0 星

分享资源

后退
顶部