✨ Key Features
-
AI-assisted script generation - Use AI services to create plugins based on specific requirements
-
Dynamic plugin management - Load, unload, or reload plugins without restarting the server
-
Real-time script compilation - Instantly compile Java scripts into Bukkit plugins
- ️
Data isolation - Each plugin gets its own data folder automatically
-
Seamless integration - Fully compatible with Bukkit/Spigot/Paper servers
-
Resource release - Completely releases plugin resources when unloading, unlocking JAR files
Installation Instructions
1. Download the latest `ScriptIrc.jar`
2. Place the JAR file into your server's `plugins` directory
3. Restart the server or use a plugin manager to load the plugin
4. The plugin will create the necessary folders and configuration files automatically
Usage Guide
ScriptIrc offers an intuitive command system to help you manage your plugins and scripts easily:
Basic Commands (All can be shortened to /si)
/scriptirc help |
Show help information |
/scriptirc load <PluginName> |
Load the specified plugin script |
/scriptirc unload <PluginName> |
Unload the specified plugin script |
/scriptirc reload <PluginName> |
Reload the specified plugin script |
/scriptirc list |
List all loaded plugin scripts |
/scriptirc compiler <ScriptName> |
Compile a Java script into a plugin |
/scriptirc profile |
Upload server profile for AI plugin generation |
/ai-builder |
Open the AI WebUI for building scripts |
Plugin Management Examples
Code (Text):
# Load a plugin named TestPlugin
/si load TestPlugin
# Unload a plugin
/si unload TestPlugin
# Reload a plugin (e.g., after update)
/si reload TestPlugin
# List all loaded plugin scripts
/si list
Script Compilation Example
Code (Text):
# Compile HelloWorld.java in script_src directory
/si compiler HelloWorld
# Load the compiled plugin
/si load HelloWorld
Directory Structure
Once installed, ScriptIrc will create the following structure:
Code (Text):
plugins/
└── ScriptIrc/
├── config.yml # Plugin configuration file
├── plugins/ # External plugin directory
│ └── Data/ # Plugin data folder
├── script_src/ # Source script folder
│ ├── HelloWorld.java # Sample script
│ └── MathUtil.java # Sample script
├── script_build/ # Temporary build folder
└── lib/ # Additional dependencies
️ Developer Guide - Your First Plugin Script
ScriptIrc makes plugin development easy. Just create a `.java` source file and compile it—no server restart needed!
Step 1: Create Script File
Create a file like `MyFirstPlugin.java` under `plugins/Scriptirc/script_src`.
Step 2: Write Plugin Code
Code (Java):
// Package can be custom, just be reasonable
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 <Single-line plugin description>
* [command]<command1>|Description1[/command]
* [command]<command2>|Description2[/command]
* [Permission]<perm.node1>|Description1[/Permission]
* [Permission]<perm.node2>|Description2[/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 logic
}
@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 run by a player."
)
;
}
return
true
;
}
return
false
;
}
}
Step 3: Compile and Load Plugin
Code (Text):
/si compiler MyFirstPlugin.java
/si load MyFirstPlugin
Required Metadata Fields
VERSION |
Yes |
Plugin version |
DESCRIPTION |
Yes |
Plugin description |
AUTHOR |
Yes |
Plugin author |
COMMANDS |
No |
Command definitions: "cmd|description" |
PERMISSIONS |
No |
Permission definitions: "perm.node|description" |
⚙️ config.yml Overview
Code (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
Frequently Asked Questions
Q: What if I get errors when compiling a script?
Ensure:
1. Your Java syntax is correct
2. Required metadata fields are present
3. Server is running JDK (not just JRE)
4. Try the AI tool to fix common issues—it works in most cases
Q: How to delete dynamically loaded plugin files?
After running `/si unload`, ScriptIrc attempts to release the JAR. If it’s still locked, a server restart may be required.
Related to ai-builder
- AI-Builder (AI:ScriptIrc) extends this plugin’s capabilities by generating scripts via Web UI
- It runs independently from the core plugin
- Terms:
https://scriptirc.io/terms
- Core functionality remains focused on local plugin compilation
- Some features require in-app purchases, though daily free usage is available