[MD]
# FireworkShow Plugin
**Language / 语言**: [English](README.md) | [中文](README_zh.md)
A Nukkit plugin that creates spectacular automated firework displays in your Minecraft Bedrock Edition server.
## Features
- **Automated Firework Shows**: Create stunning firework displays that run automatically in specified worlds
- **Multi-World Support**: Configure different firework shows for different worlds
- **Customizable Positions**: Set multiple spawn positions for fireworks in each world
- **Performance Optimized**: Uses direct packet sending instead of entity spawning to prevent server lag
- **Flexible Configuration**: Global and per-world settings with override capabilities
- **Sound Control**: Option to mute spawn and explosion sounds
- **Group Splitting**: Alternate between position groups for varied display patterns
- **Multi-Language Support**: English and Chinese language support
- **Easy Management**: Simple commands for configuration and control
## Requirements
- Nukkit-MOT server
- Java 17 or higher
- Permission: `fireworkshow.admin` (default: op)
## Installation
1. Download the latest `FireworkShow-3.0.0-SNAPSHOT.jar` from releases
2. Place the jar file in your server's `plugins` folder
3. Restart your server
4. Configure the plugin using the generated `config.yml` file
## Configuration
The plugin creates a `config.yml` file with the following structure:
```yaml
configVersion: 4
# Global default settings (shared by all worlds)
global:
spawnTick: 40 # Ticks between spawns (20 = 1 second)
fireworkFlightDuration: 1 # Flight duration (1-3 recommended)
muteSpawnSound: false # Mute spawn sound
muteExplodeSound: false # Mute explosion sound
splitGroups: false # Alternate between position groups
# Per-world configurations
worlds:
lobby:
enabled: true
positions:
- {x: -12, y: 87, z: 29}
- {x: -29, y: 87, z: -12}
# ... more positions
```
### Configuration Options
#### Global Settings
- `spawnTick`: Time between firework spawns (in ticks, 20 ticks = 1 second)
- `fireworkFlightDuration`: How long fireworks fly before exploding (1-3 recommended)
- `muteSpawnSound`: Whether to mute the firework launch sound
- `muteExplodeSound`: Whether to mute the firework explosion sound
- `splitGroups`: Split positions into alternating groups for varied patterns
#### World Settings
Each world can override global settings and has:
- `enabled`: Whether fireworks are active in this world
- `positions`: List of coordinates where fireworks spawn
- Any global setting can be overridden per-world
## Commands
All commands use the base command `/fireworkshow` or `/fws`:
### General Commands
- `/fws help` - Show command help
- `/fws reload` - Reload configuration
- `/fws list` - List all configured worlds
### World Management
- `/fws enable <world>` - Enable fireworks in a world
- `/fws disable <world>` - Disable fireworks in a world
### Position Management
- `/fws pos add <world> [x y z]` - Add a firework spawn position
- `/fws pos remove <world> <index>` - Remove a position by index
- `/fws pos list <world>` - List all positions in a world
- `/fws pos clear <world>` - Clear all positions in a world
### Configuration
- `/fws set <world> <setting> <value>` - Set world-specific setting
- `/fws global <setting> <value>` - Set global setting
#### Available Settings
- `spawnTick` - Time between spawns (integer)
- `flightDuration` - Flight duration (integer, 1-3)
- `muteSpawn` - Mute spawn sound (true/false)
- `muteExplode` - Mute explosion sound (true/false)
- `splitGroups` - Use alternating groups (true/false)
## Usage Examples
### Basic Setup
1. Add positions where fireworks should spawn:
```
/fws pos add lobby 0 80 0
/fws pos add lobby 10 80 10
```
2. Enable the world:
```
/fws enable lobby
```
### Advanced Configuration
1. Set faster firework spawning:
```
/fws set lobby spawnTick 20
```
2. Make fireworks fly longer:
```
/fws set lobby flightDuration 2
```
3. Mute sounds for a quieter display:
```
/fws set lobby muteSpawn true
/fws set lobby muteExplode true
```
## Performance Notes
- The plugin uses optimized packet sending instead of spawning entities
- Large numbers of positions are supported without significant performance impact
- The `splitGroups` option can help distribute load across multiple ticks
- Fireworks only spawn when players are present in the world
## Permissions
- `fireworkshow.admin` - Access to all plugin commands (default: op)
## Language Support
The plugin supports multiple languages:
- English (`en_US`)
- Chinese Simplified (`zh_CN`)
Language is automatically detected based on your server's language setting.
[/MD]