Home›Java›Mods›ScriptIrc - Let the Agent Build Bukkit Plugins for You
ScriptIrc - Let the Agent Build Bukkit Plugins for You
ModsJava

ScriptIrc - Let the Agent Build Bukkit Plugins for You

Java mod listed for Minecraft 1.12–1.20. Downloads from the MC Java Mods app on Android.

⬇ Download on Spigot
1asdasd_副本.png
ScriptIrc - Script Compilation, Using AI to Build Scripts Instantly | Compile Scripts Directly into Server Plugins Based on Server Environment
​


[​IMG]
[​IMG]
[​IMG]
​

Recommended for Test Servers / Servers in Development: The compiled script plugins are standard Bukkit plugin JARs that do NOT depend on ScriptIrc to run. You can directly place the generated JAR into the `plugins` directory and use it.

Introduction

ScriptIrc is a powerful Bukkit/Spigot/Paper/Folia plugin designed to simplify plugin management and on-the-fly development. You can write / modify / compile script plugins directly on the server without restarting, and load, unload, or reload them with one click. It also supports parsing and compiling directly from `.sirc` plugin project files into loadable JARs.


​

✨ Key Features

Installation Guide

  1. Download the latest version of `ScriptIrc.jar`
  2. Place the JAR file into your server's `plugins` directory
  3. Start / restart the server to load the plugin
  4. The plugin will automatically create necessary directory structures and configuration files

⚠ Important Upgrade Notice: This version modifies the data directory structure for scripts and external plugins (`scripts/output/Data`). It is recommended to manually backup and delete the old ScriptIrc data directory before upgrading to avoid mixing and conflicts from residual historical structures.

Usage Guide

ScriptIrc provides an intuitive command system, allowing you to easily manage plugins and scripts:

Basic Commands (All commands can be abbreviated to `/si`)

Command Description
`/scriptirc help` Display help information
`/scriptirc load <pluginname>` Load specified external plugin JAR from `scripts/output` directory
`/scriptirc unload <pluginname>` Unload specified external plugin
`/scriptirc reload <pluginname>` Reload specified external plugin
`/scriptirc list` List all loaded external plugins
`/scriptirc compiler <scriptname>` Compile specified script: supports `.java` source files and `.sirc` projects
`/scriptirc compiler <scriptname> fixreport` After a recent compilation failure, analyze errors and provide dependency fix suggestions
`/scriptirc search <classname>` Globally search for package paths of given class name
`/scriptirc sirctree <projectname>` View virtual directory structure of `.sirc` project files (without unpacking to disk)
`/ai-builder` Open AI script builder Web UI (for generating script source code)


Plugin Management Examples
Code (Text):
# Load external plugin named TestPlugin (corresponding to scripts/output/TestPlugin.jar)
/si load TestPlugin

# Unload plugin
/si unload TestPlugin

# Reload plugin (e.g., after updates)
/si reload TestPlugin

# View list of loaded plugins
/si list
Script / `.sirc` Compilation Examples
Code (Text):
# Compile HelloWorld.java script located in scripts/src directory (suffix optional)
/si compiler HelloWorld

# Compile DemoProject.sirc plugin project located in plugins/ScriptIrc/scripts
/si compiler DemoProject

# Then load the compiled plugins (automatically output to scripts/output/ directory)
/si load HelloWorld
/si load DemoProject
Tip: For `.sirc` projects, after compilation, if a `README.md` exists in the package, the plugin will attempt to parse it into an in-game book and send it to the player who executed the command, serving as project documentation.
Click to expand...
Directory Structure

After installation, ScriptIrc will create the following directory structure (simplified):
Code (Text):
plugins/
  └── ScriptIrc/
      ├── config.yml           # Plugin configuration file
      ├── messages/            # Language files directory
      └── scripts/             # All script-related content
          ├── src/             # Script source directory (.java / .sirc can be placed here)
          │   ├── HelloWorld.java   # Example script
          │   └── MathUtil.java     # Example script
          ├── lib/             # Additional dependency library directory for scripts (JARs)
          ├── output/          # Script / project compilation output directory (loadable external plugin JARs)
          │   └── Data/        # External plugin data directory (optional redirection)
          └── build-cache/     # Compilation temporary directory (internal use, automatically cleaned)
️ Development Tutorial - Creating Your First Script Plugin

ScriptIrc makes plugin development exceptionally simple. You only need to create a Java source file, compile it, and immediately load it for use. Here are the development steps:

1. Create a Script File
Create a new Java file in the `plugins/ScriptIrc/scripts/src` directory, for example, `MyFirstPlugin.java`.

2. Write Plugin Code (Recommended using comment metadata approach)
Below is a simple plugin template. Metadata is provided through JavaDoc comments. ScriptIrc will automatically read information from the comments and generate `plugin.yml`:
Code (Java):
// Package name can be customized (preferably reasonable, recommended using reverse domain)
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                    // Plugin name
 * @author YourName                             // Author
 * @version 1.0.0                               // Version
 * @description My first ScriptIrc script plugin // Brief description (multi-line supported)
 * [command]myfirstcmd|Execute a test command[/command]
 * [permission]myfirstplugin.use|Permission to use the test command[/permission]
 */

public class MyFirstPlugin extends JavaPlugin {

    @Override
    public void onEnable ( ) {
        getLogger ( ). info ( "Plugin enabled!" ) ;
        // Initialization code
    }

    @Override
    public void onDisable ( ) {
        getLogger ( ). info ( "Plugin disabled!" ) ;
        // Cleanup code for listeners / commands, etc., 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 players!" ) ;
            }
            return true ;
        }
        return false ;
    }
}
3. Compile and Load the Plugin
Use the following commands to compile and load your plugin:
Code (Text):
/si compiler MyFirstPlugin
/si load MyFirstPlugin
It's that simple! Your plugin is now running on the server without requiring a server restart.

Important Metadata Tags (Comment Method)
The current version recommends and defaults to using the JavaDoc comment method to define metadata. ScriptIrc will automatically parse from the main class comments:

Tag Required Description
`@pluginName` Yes Plugin name (for display and generating `plugin.yml`)
`@version` Yes Plugin version number
`@description` Yes Plugin description, supports multi-line
`@author` Yes Plugin author
`[command]name|description[/command]` No Command definition, command name and description separated by `|`
`[permission]node|description[/permission]` No Permission definition, node and description separated by `|`


Note: If the above required tags are missing, the current version will be unable to correctly generate `plugin.yml`, causing compilation to fail. Please complete them according to the template.
Click to expand...
⚙️ Configuration File Description

ScriptIrc's configuration file (`config.yml`) allows you to customize plugin behavior. Below are key configuration examples for the current version:
Code (YAML):
# Plugin auto-reload configuration | Auto-reload configuration
auto-reload
:
  # Whether to enable auto-reload | Whether to enable auto-reload
  enabled
: true
  # Check interval (seconds) | Check interval (seconds)
  check-interval
: 5
  # Whether to output verbose logs in console | Whether to output verbose logs in console
  verbose-logging
: false

# Script compiler settings | Script compiler settings
compiler
:
  # Whether to enable verbose output of Java compiler (equivalent to javac -verbose), default false
  # Whether to enable verbose output of Java compiler (equivalent to javac -verbose), default false
  verbose-logging
: false

# Plugin management settings | Plugin management settings
plugin-management
:
  # External plugins directory, relative to plugin data folder | External plugins directory, relative to plugin data folder
  # Default: scripts/output
  external-plugins-directory
: "scripts/output"
  # Whether to auto-load external plugins on server startup | Whether to auto-load external plugins on server startup
  load-on-startup
: true
  # Whether to redirect external plugins' data folders to ScriptIrc directory | Whether to redirect external plugins' data folders to ScriptIrc directory
  redirect-data-folder
: true

# Permission settings | Permission settings
permissions
:
  # Admin permission node | Admin permission node
  admin-permission
: "scriptirc.admin"
  # Whether to allow only OP to use | Whether to allow only OP to use
  op-only
: true

# Logging settings | Logging settings
logging
:
  # Log output level: VERBOSE(all logs), NORMAL(standard output), MINIMAL(only critical information)
  # Log output level: VERBOSE(all logs), NORMAL(standard output), MINIMAL(only critical information)
  level
: "MINIMAL"

# Language settings | Language settings
language
:
  # Current language: zh_CN(Simplified Chinese), en_US(English)
  # Current language: zh_CN(Simplified Chinese), en_US(English)
  current
: "zh_CN"
  # Whether to enable custom language files (placed in plugins/ScriptIrc/messages/ directory)
  # Whether to enable custom language files (placed in plugins/ScriptIrc/messages/ directory)
  enable-custom
: true

Frequently Asked Questions


What should I do if there's an error when compiling scripts / `.sirc` projects?
Please check:
  1. Whether Java code syntax is correct;
  2. Whether the main class contains complete, valid comment metadata tags (`@pluginName/@version/@description/@author`, etc.);
  3. Whether the server is running on JDK and not JRE (compilation requires JDK environment);
  4. If it's a dependency-related error, first execute `/si compiler <scriptname>`, then use `/si compiler <scriptname> fixreport` to view dependency fix suggestions;
  5. You can also try submitting error logs to AI tools for assistance; most common issues can be quickly identified.

How to delete dynamically loaded plugin files?
When using the `/si unload` command to unload a plugin, ScriptIrc attempts to fully release the JAR file, making it deletable or replaceable. If it still cannot be deleted, typically a server restart is required.


Disclaimer



About ai-builder

Commands

Plugin details

Read from the plugin's own plugin.yml.

Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

ScriptIrc - Let the Agent Build Bukkit Plugins for You is a free Minecraft Java mod. Compatible with Minecraft 1.12, 1.13, 1.14, 1.15 and newer. Downloaded 166 times (via Spigot). Download it and open it directly in the game.

Explore more