Перейти к содержимому
Mineforgian

Scriptirc

AI write plugins for Bukkit/Spigot/Paper servers. Just put .java file in the folders to load.

Загрузки
833
Подписчики
7
Обновлён
28 марта 2026 г.
Лицензия
Apache-2.0

Опубликован 11 мая 2025 г.

Сообщить об ошибке

Scriptirc - script compiler, compiles java source code directly into a server plugin and loads it.

This plugin is recommended for test servers or servers under development because the compiled scripts do not need to rely on Scriptirc to load, you can put the compiled plugin scripts directly into plugins.

📚 Introduction

Scriptirc is a powerful Bukkit/Spigot plugin designed to simplify plugin management and on-the-fly development processes. If you've ever wanted to be able to compile and modify script plugins, load, unload or reload them without restarting the server, or want to quickly develop and test simple features, Scriptirc is for you.

✨ Key Features

🔄 Dynamic plugin management - load, unload or reload plugins without restarting the server

📝 On-the-fly script compilation - Compile Java scripts directly into fully functional Bukkit plugins

🛡️ Data Directory Segregation - Automatically creates separate data directories for plugin scripts

🔧 Seamless Integration - Compatible with existing Bukkit/Spigot/Paper environments

🔒 Resource Release - Uninstall plugin scripts to completely release plugin resources, unlock JAR files

🚀 Installation Instructions

Download the corresponding version of Scriptirc.jar

Place the JAR file in the plugins directory of the server

Restart the server or load the plugin using the plugin manager

The plugin will automatically create the necessary directory structure and configuration files

💡 Usage

Scriptirc provides an intuitive command system that allows you to easily manage plugins and scripts:

Basic commands (all commands can be abbreviated as /si)

Command Description

/scriptirc help	
/scriptirc load <pulgin name>	
/scriptirc unload <pulgin name>
/scriptirc reload <pulgin name>
/scriptirc list	
/scriptirc compiler <pulgin name>	
/scriptirc sync
/scriptirc profile

Plugin management example

Load a plugin named TestPlugin.

/si load TestPlugin

Uninstall the plugin

/si unload TestPlugin

Reload the plugin (e.g. after an update)

/si reload TestPlugin

View list of loaded plugins

/si list

Example of script compilation

Compile the HelloWorld.java script located in the script_src directory.

/si compiler HelloWorld

Then load the compiled plugin.

/si load HelloWorld

📂 Directory structure

After installation, Scriptirc will create the following directory structure:

plugins/
  └── Scriptirc/
      ├── config.yml # Plugin configuration file
      ├── plugins/ # External plugin storage directory
      │ └── Data/ # Plugin data directory
      ├─ script_src/ # Script source code directory │ ├── script_src/ # Script source code directory
      │ ├── HelloWorld.java # Example scripts
      │ └── MathUtil.java # Example Scripts
      └─ script_build/ # Temporary script build directory

🛠️ Development Tutorial - Creating Your First Script Plugin

Scriptirc makes plugin development incredibly easy. All you need to do is create a Java source file, compile it and load it for use immediately. Here are the development steps:

1. Create the script file

Create a new Java file in the plugins/Scriptirc/script_src directory, e.g. MyFirstPlugin.java.

2. Write the plugin code

Below is a simple plugin template:

The package name is customizable (just try to make sense)

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 <Plugin Name>
* @author <author>
* @version <version>
* @description <Description Complete all descriptions in this line only>
* (Commands and permissions are added optionally)
* [command]<command1>|description1[/command] 
* [command]<command2>|description2[/command]
* [Permission]<limit1>|description1[/Permission]
* [Permission]<limit2>|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;
    }
}

Official AI is recommended!!! Official Website

3. Compiling and loading your plugin

Use the following commands to compile and load your plugin:

/si compiler MyFirstPlugin
/si load MyFirstPlugin

It's as simple as that! Your plugin is now running on the server, no need to restart the server.

Important metadata fields
|Fields        |Required   |Description
|VERSION       |YES        |Plugin version number
|DESCRIPTION   |YES        |Plugin Description
|AUTHOR        |YES        |Plugin Author
|COMMANDS      |No         |Plugin command definitions in the form of “command name”.
|PERMISSIONS   |No         |Permission definitions in the form of “permission nodes”.

⚙️ Configuration file description

Scriptirc's configuration file (config.yml) allows you to customize the behavior of the plugin:

Plugin auto-reload configuration auto-reload.

Whether to enable auto-reload enabled: true

Check interval (seconds) check-interval: 5

verbose-logging: false verbose-logging: false

Plugin management settings plugin-management.

External plugins directory, relative to the plugin data folder external-plugins-directory: “plugins”

Whether to automatically load external plugins on server startup. load-on-startup: true

Whether to redirect the data folder of external plugins to the Scriptirc directory. redirect-data-folder: true

Permission settings permissions.

Administrator permissions node admin-permission: “scriptirc.admin”

Whether to allow OP use only op-only: true

Logging settings

logging. logging output level: VERBOSE (output all logs), NORMAL (standard output), MINIMAL (output only key information)

level: “MINIMAL” (If you encounter a compilation failure, try switching the logging mode to VERBOSE)

🤔 Frequently Asked Questions

What if the player can't see the commands after loading the plugin? (There is a slight possibility of a bug that will be fixed later)

The server administrator can run the command /si sync to synchronize commands to all online players. Or have players log back into the server.

What should I do if I get an error compiling the script?

Make sure:

Java code is syntactically correct

All required metadata fields (VERSION, DESCRIPTION, AUTHOR) are included.

The server is running on JDK and not JRE (JDK is required for compilation)

How to remove dynamically loaded plugin files?

When unloading a plugin using the /si unload command, Scriptirc tries to completely free the JAR file so that it can be deleted or replaced. If it still cannot be deleted, it may be necessary to restart the server.

Recognize

There is code related to plugin unload loading I refer to the PlugManX project

Ченджлог

1.4.7-SNAPSHOTРелиз1.20.4, 1.20.5, 1.20.6 · 28 марта 2026 г.

rewrite some code

1.4.5-SNAPSHOTРелиз1.21.9, 1.21.10, 1.21.11 · 5 января 2026 г.

English

  1. Optimized the compilation core
  2. Added WebSocket server for interaction with the web build client
  3. Added support for directly pulling project files for compilation
  4. Optimized message output format and language files

Chinese

  1. 优化了编译核心
  2. 添加ws服务器 与Web构建端进行交互
  3. 支持直接拉取项目文件进行编译
  4. 优化消息输出格式以及语言文件
1.4.0-SNAPSHOTРелиз1.21.9, 1.21.10, 1.21.11 · 28 декабря 2025 г.

Changelog · v1.4.0

✨ New Features

1. Direct Parsing and Compilation of .sirc Plugin Projects

Based on the built-in SircDecoder, it now supports directly unpacking the complete file system and metadata from .sirc project files. The system will automatically execute the following complete workflow:

Unpack → Project Compilation → JAR Packaging → Output to scripts/output

Delivering a true one-click experience "from .sirc to loadable external plugin."

2. Folia Plugin Script Compilation Support

The compiler automatically detects the current server environment at runtime:

  • If Folia is detected,
  • Or if a server supporting the Global Region Scheduler API is detected,

it will automatically declare the following in the generated plugin.yml:

folia-supported: true

This allows the generated script plugin to be properly loaded and run on Folia servers.

⚠️ Note: Script plugins must be compiled after loading ScriptIrc on a Folia server.

3. .sirc Project Parsing and Structure Preview Capability

In addition to unpacking and compilation, this version adds a read-only parsing mode:

  • Parse the .sirc file
  • Build a virtual file tree
  • View the project directory structure via the in-game command /sirctree

Furthermore, in some projects, the system will:

  • Automatically locate README.md
  • Parse and convert it into an in-game book
  • Send it to the player who executed the compilation command

更新日志 · v1.4.0

✨ 新增功能

1. 直接解析并编译 .sirc 插件项目

基于内置 SircDecoder,现已支持从 .sirc 项目文件中直接解包出完整的文件系统与元数据。
系统将自动执行以下完整流程:

解包 → 项目编译 → JAR 打包 → 输出到 scripts/output

实现真正意义上的 「一键从 .sirc 到可加载外部插件」 的使用体验。

2. Folia 插件脚本编译支持

编译器在运行时会自动检测当前服务端环境:

  • 若检测到 Folia
  • 或检测到支持 全局区域调度 API 的服务端

则会在生成的 plugin.yml 中自动声明:

folia-supported: true

从而使生成的脚本插件可在 Folia 服务端 正常加载与运行。

⚠️ 注意:脚本插件需在 Folia 服务器上加载 ScriptIrc 后 再进行编译

3. .sirc 项目解析与结构预览能力

除了解包与编译,本版本还新增 只读解析模式

  • .sirc 文件进行解析
  • 构建 虚拟文件树
  • 可通过游戏内命令 /sirctree 查看项目目录结构

此外,在部分项目中系统会:

  • 自动查找 README.md
  • 解析并转换为 游戏内书本
  • 发送给执行编译命令的玩家

便于在游戏内快速阅读插件或脚本的使用说明。

🔧 重构与优化

插件数据与目录结构重构

scripts 目录及外部插件数据结构进行了系统性优化:

  • 统一使用:
    scripts/output
    scripts/output/Data
    
  • 插件数据重定向逻辑更加清晰
  • 数据隔离性显著提升,降低插件间相互干扰的风险

⚠️ 升级提示

升级至本版本前,建议手动删除旧版 ScriptIrc 的插件数据目录,
以避免因历史目录结构残留而导致的数据混用或潜在冲突。

1.3.1-SNAPSHOTРелиз1.20.4, 1.20.5, 1.20.6 · 21 сентября 2025 г.

Add and fix some bugs

1.2.5-SNAPSHOTРелиз1.20.4, 1.20.5, 1.20.6 · 26 июня 2025 г.

📁 New lib directory You can now manually add additional dependency libraries to assist scripts in compiling and running properly.

🔍 Automatic Dependency Detection The system will automatically scan all installed plugins and try to identify dependencies that the script may need, further improving the compilation success rate.

🤖 New command /ai-builder Use this command to start the AI Script Builder and quickly build your plug-in scripts.

🌐 Multi-language support The plugin now has built-in English and Chinese language support and supports customized language profiles to meet the needs of different language environments.

🛠️ Optimized compilation behavior The compilation process has been optimized to make the generated plugins easier to manage and deploy.

⚠️ Improved Error Alerting Mechanism Compilation error messages are prioritized even at the lowest logging level to ensure that developers can find problems in time.

Translated with DeepL.com (free version)

1.1-SNAPSHOTБета1.20.4, 1.20.5, 1.20.6 · 11 мая 2025 г.

Create this new project. 2025.05.11-09.45.27

Комментарии

Загружаем…