A powerful Minecraft plugin for controlling and canceling Bukkit events with support for versions 1.8 through 1.21+.
- Dynamic Event Discovery: Automatically discovers all Bukkit events using reflection
- Multi-Version Support: Compatible with Minecraft 1.8-1.21.10
- Flexible Event Cancellation: Cancel events globally, per-world, or in specific regions
- JSON Configuration: All discovered events and rules stored in easy-to-read JSON files
- Region System: Define custom 3D regions for location-specific event control
- Tab Completion: Full tab completion support for all commands
- Real-time Updates: Changes take effect immediately without server restart
/eventcontrol help(aliases:/ec,/events) - Show help menu/ec list- List all active event rules/ec cancel <event> global- Cancel an event globally/ec cancel <event> world [world]- Cancel an event in a specific world/ec cancel <event> region <region>- Cancel an event in a specific region/ec allow <event> <scope>- Remove event cancellation rule/ec info <event>- Get detailed information about an event/ec events [filter]- List all discovered events (optionally filtered)/ec reload- Reload configuration
/ec region help- Show region help menu/ec region pos1- Set first position for region creation/ec region pos2- Set second position for region creation/ec region create <name> [description]- Create a new region/ec region delete <name>- Delete a region/ec region list [world]- List all regions (optionally filtered by world)/ec region info <name>- Get detailed information about a region
All permissions default to op only for security.
Note: Players must have at least one EventControl permission to access any command (including help). Players without any permissions will receive a "no permission" message.
eventcontrol.admin- Full access to all EventControl features, bypasses all other permission checks
eventcontrol.events.global- Cancel/allow events globallyeventcontrol.events.world- Cancel/allow events in specific worlds
eventcontrol.region.create- Create regions and set positions (pos1/pos2)eventcontrol.region.delete- Delete regionseventcontrol.region.manage- Manage event rules for regions, view region list and info
/ec cancel EntityDamageEvent global
/ec cancel BlockBreakEvent world world_nether
/ec region pos1
/ec region pos2
/ec region create spawn "Protected spawn area"
/ec cancel BlockBreakEvent region spawn
/ec cancel BlockPlaceEvent region spawn
/ec cancel PlayerInteractEvent region spawn
/ec allow BlockBreakEvent global
/ec allow PlayerInteractEvent region spawn
/ec events
/ec events player # Filter events containing "player"
- Event Discovery: On startup, the plugin scans the Bukkit API using reflection to find all Event classes
- Event Registration: The plugin registers dynamic listeners for all cancellable events
- Event Handling: When an event fires, the plugin checks if any rules match the event
- Priority Matching: Rules are checked in order: Region > World > Global
- Event Cancellation: If a matching rule is found, the event is cancelled
- Global: Affects all worlds and all locations
- World: Affects only a specific world
- Region: Affects only a specific 3D region
This plugin is designed to work across a wide range of Minecraft versions:
- Minecraft 1.8.x - 1.21.10
- Spigot, Paper, and compatible forks
- Events that don't exist in older versions are simply ignored
- New events in newer versions are automatically discovered
This project uses Gradle.
./gradlew buildThe compiled plugin will be available in build/libs/EventControl.jar
Other useful Gradle commands:
- Run
./gradlew cleanto clean all build outputs - Run
./gradlew shadowJarto build the plugin with dependencies