ScriptIrc is built for Bukkit/Spigot
An agent-powered development engine.
AI-assisted builds, instant compilation, and dynamic hot reload.
We’re not just shipping tools—we’re reshaping Minecraft server operations.
Hi! A chat mute plugin is a common request. There are multiple ways to implement it, so let me confirm a few key requirements first to design the best structure for you.
Got it. You chose:
- Player mute (specific players)
- Supports permanent and temporary mutes
- Records a mute reason
- Supports manual unmute, auto unmute, and viewing the mute list
- Uses YAML file storage
- Command prefix: “mute”
Now please confirm the plugin name and version, then we can start development.
Alright—I'll initialize the project with default values. Now I will start creating the mute plugin project.
Now I will set up the commands required by the plugin. Based on the design, we need the following commands:
Now I will set up the permission nodes:
Great—the basic project info is set. Now I will create the full plugin project structure. First, let’s check the current structure:
Now I will start creating the full plugin code. First, I will create the data model class:
Create the data manager class:
Create the event listener:
Create the command executor:
Create the tab completer:
Now create the configuration file:
Create the data file template:
Now we need to update the main class file. Since we created another MuteManager class, we need to rename the original main class:
Delete the original main class file, because we already have the complete MuteManager class:
Now create the README.md file:
Now let’s check whether the project structure is complete:
Nice! Now let’s check whether the plugin.yml file is correct:
We need to update the main class path in plugin.yml. Since we deleted the original Mutemanager.java file, the main class is now MuteManager:
We also need to add the mutemanager.admin permission:
The project is complete! Here’s a quick summary of the mute plugin we created:
Project Summary
We have successfully created a full-featured mute plugin with the following highlights:
Core Features
- Player mute - Mute specific players
- Duration support - Permanent and temporary mutes (multiple time units supported)
- Mute reason - Record the reason for each mute
- Auto unmute - Automatically unmute when time expires
- Manual unmute - Admins can unmute at any time
Admin Features
- Mute list - View all muted players (paginated)
- Mute info - View mute details for a specific player
- Config reload - Reload config without restarting
- Persistence - Store data in YAML files
User Experience
- Smart tab completion - Auto-complete player names, durations, and reasons
- Permissions - Complete permission control
- Message hints - Muted players receive a prompt
- Broadcasts - Configurable mute/unmute broadcast messages
Technical Implementation
- Event listeners - Listen to chat and join events
- Scheduled tasks - Automatically unmute expired mutes
- Data model - A clear MuteData data model
- Config management - A complete config.yml setup
File Structure
/src/main/java/io/Sriptirc_wp_1/mutemanager/
├── MuteManager.java # Main class (lifecycle & data)
├── MuteData.java # Mute data model
├── MuteListener.java # Event listener
├── MuteCommand.java # Command executor
└── MuteTabCompleter.java # Tab completer
/src/main/resources/
├── plugin.yml # Plugin descriptor
├── config.yml # Configuration
└── data.yml # Data template
/README.md # Usage guide
Ready to Test!
This project is ready to export and compile. You can:
- Click “Export Project” to get the
.sircfile - Place it into:
plugins/ScriptIrc/scripts/src/ - Run in server console:
/scriptirc compiler MuteManager
After a successful build, the plugin will appear in plugins/ . Restart the server to use it.
Usage Examples
# Mute a player for 30 minutes
/mute Steve 30m Spamming
# Permanent mute
/mute Alex Insulting other players
# View mute list
/mutelist
# Unmute a player
/unmute Steve
# View mute info
/muteinfo Alex
# Reload config
/mutereload
The plugin will generate its config automatically. You can customize messages and broadcast settings as needed.
Current test model
Engine capabilities
Describe your requirements, and the AI generates Bukkit-compliant Java source code or a Sirc project.
Creates an isolated data directory for each script plugin to keep configs and data from interfering with each other.
ScriptIrc compiles standard Bukkit plugins—no ScriptIrc runtime required. Drop the built JAR into your plugins folder and run.
* Simulating ScriptIrc’s real-time refactoring of Minecraft plugin logic.
Virtual file system
Full virtual file system support: the AI edits and develops directly inside it.
Structured development
Build with a clear project structure and modular design.
Engineering & performance
Correctness first, with smart consideration for server performance and event overhead.
Design confirmation
If requirements are risky or unreasonable, ScriptIrc asks for confirmation.
Compile workflow
Plugin compilation logic
Note: a .sirc file is a ScriptIrc source project package, not a loaded plugin. The plugin only becomes active after the /compiler command succeeds.
Export the source project package
Click “Export Project” to get the .sirc file and download it locally.
Place it into the target directory
Place the file into:
plugins/ScriptIrc/scripts/src/
Run the compiler command
Run the command in the console to build instantly:
/scriptirc compiler <plugin_name>
Skip the tedious environment setup, let an agent help you build.
Join the ScriptIrc early access program!
From instant compilation to dynamic refactoring,