A comprehensive custom event system for Minecraft servers
EventBundler provides 110 highly customizable events across 10 categories, designed to boost server interactivity and automation. With a robust developer API, comprehensive documentation, and practical examples, EventBundler enables developers to create complex systems and seamless plugin integration.
- 110 Custom Events - Organized into 10 logical categories
- Developer-Friendly API - Simple, intuitive event system
- Full Configurability - Enable/disable events and categories
- Event Statistics - Track event usage and performance
- Cross-Version Support - Works on Minecraft 1.12 through 1.21+
- Zero Dependencies - Only requires Spigot/Paper API
- Extensive Documentation - API docs and usage examples included
| Category | Events | Description |
|---|---|---|
| Transfer | 10 | Money, items, data transfers |
| Player | 15 | Extended player interactions |
| Block | 12 | Custom block behaviors |
| Entity | 12 | Enhanced entity systems |
| Combat | 10 | Advanced combat mechanics |
| Economy | 10 | Transaction and shop events |
| Social | 10 | Party, friend, guild systems |
| World | 10 | Chunk and world manipulation |
| Admin | 8 | Moderation and logging |
| Custom | 13 | Server-specific events |
- Download
EventBundler.jar - Place in your
plugins/folder - Restart your server
- Configure in
plugins/EventBundler/config.yml
Add as dependency:
<!-- Maven -->
<dependency>
<groupId>com.eventbundler</groupId>
<artifactId>EventBundler</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
</dependency>// Gradle
dependencies {
compileOnly 'com.eventbundler:EventBundler:1.0.0'
}Use the API:
import com.eventbundler.EventBundler;
import com.eventbundler.api.EventBundlerAPI;
import com.eventbundler.api.events.categories.transfer.EBTransferEvent;
// Fire an event
EventBundlerAPI api = EventBundler.getApi();
EBTransferEvent event = new EBTransferEvent(sender, receiver, type, data, amount);
api.fireEvent(event);
// Listen to events
@EventHandler
public void onTransfer(EBTransferEvent event) {
if (event.getAmount() > 1000) {
event.setCancelled(true);
}
}Generic transfer event supporting multiple transfer types (money, items, data, etc.)
EBTransferEvent event = new EBTransferEvent(
sender,
receiver,
EBTransferEvent.TransferType.MONEY,
moneyData,
1000.0
);
api.fireEvent(event);Fired when a transfer is cancelled, allowing plugins to react appropriately
@EventHandler
public void onTransferCancel(EBTransferCancelEvent event) {
String reason = event.getReason();
event.getSender().sendMessage("Transfer cancelled: " + reason);
}Comprehensive player leveling with configurable rewards
@EventHandler
public void onLevelUp(EBPlayerLevelUpEvent event) {
int newLevel = event.getNewLevel();
double reward = event.getReward();
event.getPlayer().sendMessage("Level " + newLevel + "! Reward: $" + reward);
}Flexible combat tagging system
@EventHandler
public void onCombatStart(EBCombatStartEvent event) {
event.setCombatDuration(15); // 15 seconds
event.setAllowFlight(false); // Disable flight in combat
}Dynamic shop system with discount support
@EventHandler
public void onShopPurchase(EBShopPurchaseEvent event) {
if (event.getPlayer().hasPermission("shop.vip")) {
event.setDiscount(0.20); // 20% off for VIPs
}
}| Command | Permission | Description |
|---|---|---|
/eb reload |
eventbundler.reload |
Reload configuration |
/eb list [category] |
eventbundler.list |
List events |
/eb info |
eventbundler.list |
Show plugin info |
/eb toggle <event> |
eventbundler.toggle |
Toggle event on/off |
/eb stats |
eventbundler.admin |
View statistics |
/eb reset |
eventbundler.admin |
Reset statistics |
Events can be individually configured in config.yml:
events:
eb-transfer:
enabled: true
cancellable: true
async: false
description: "Fired when any transfer occurs"
eb-money-transfer:
enabled: true
cancellable: true
async: false
description: "Fired when money is transferred"Categories can be toggled to disable multiple events at once:
categories:
transfer:
enabled: true
description: "Money, item, and data transfer events"
combat:
enabled: false # Disables all combat events- API Documentation - Complete API reference
- Usage Examples - Practical implementation examples
- Config Guide - Inline configuration documentation
Track all financial transactions, apply taxes, detect suspicious activity
Create RPG-style progression with rewards and milestones
Prevent combat logging with flexible tagging system
Dynamic pricing with VIP discounts and purchase tracking
Cooperative gameplay with party-wide rewards
Detect suspicious patterns across multiple event types
Generic event-driven minigame system
Enhanced moderation with automatic punishment escalation
Track player accomplishments with meta-achievements
Automatic restarts, backups, and maintenance
EventBundler is designed for high-performance servers:
- Minimal overhead - Events only fire when needed
- Async support - Heavy operations can run asynchronously
- Smart caching - Configuration cached for fast lookups
- Memory efficient - Automatic cleanup of inactive data
- Minecraft: 1.12 - 1.21+
- Java: 8+
- Server Software: Spigot, Paper, Purpur, and forks
- Dependencies: None (standalone)
- Issues: Report bugs via GitHub Issues
- Documentation: See
API_DOCUMENTATION.mdandUSAGE_EXAMPLES.md - Examples: Check
com.eventbundler.examplespackage
This project is licensed under the MIT License.
EventBundler - Empowering developers with 110 events for infinite possibilities.