API Events
API Events
Section titled “API Events”SmartSpawner provides various events to hook into spawner-related actions:
| Event | Description | Cancellable |
|---|---|---|
SpawnerBreakEvent | Spawner broken by a player or an explosion | ❌ |
SpawnerPlaceEvent | Spawner placed by player | ✅ |
SpawnerPlayerBreakEvent | Spawner broken by player | ✅ |
SpawnerStackEvent | Spawners stacking by hand | ✅ |
SpawnerSellEvent | Selling item from spawner storage | ✅ |
SpawnerExpClaimEvent | Experience claimed from spawner | ✅ |
SpawnerEggChangeEvent | Spawner type changed with egg | ✅ |
SpawnerExplodeEvent | Spawners destroyed by explosion | ❌ |
SpawnerRemoveEvent | Unstack spawners from the stacker GUI | ✅ |
SpawnerOpenGUIEvent | GUI opened by player | ✅ |
SpawnerBreakEvent
Section titled “SpawnerBreakEvent”Triggered when a spawner is broken by a player or explosion.
import github.nighter.smartspawner.api.events.SpawnerBreakEvent;
@EventHandlerpublic void onSpawnerBreak(SpawnerBreakEvent event) { Entity breaker = event.getEntity(); Location location = event.getLocation(); int quantity = event.getQuantity();
// Handle spawner break if (breaker instanceof Player) { Player player = (Player) breaker; player.sendMessage("You broke " + quantity + " spawner(s)!"); }}SpawnerPlaceEvent
Section titled “SpawnerPlaceEvent”Triggered when a spawner is placed.
import github.nighter.smartspawner.api.events.SpawnerPlaceEvent;
@EventHandlerpublic void onSpawnerPlace(SpawnerPlaceEvent event) { Player player = event.getPlayer(); Location location = event.getLocation();
// Handle spawner placement player.sendMessage("Spawner placed at " + location.toString());}SpawnerPlayerBreakEvent
Section titled “SpawnerPlayerBreakEvent”Triggered specifically when a player breaks a spawner.
import github.nighter.smartspawner.api.events.SpawnerPlayerBreakEvent;
@EventHandlerpublic void onPlayerBreakSpawner(SpawnerPlayerBreakEvent event) { Player player = event.getPlayer(); int quantity = event.getQuantity();
// Cancel if player doesn't have permission if (!player.hasPermission("spawner.break")) { event.setCancelled(true); player.sendMessage("No permission to break spawners!"); }}SpawnerStackEvent
Section titled “SpawnerStackEvent”Triggered when spawners are stacked by hand.
import github.nighter.smartspawner.api.events.SpawnerStackEvent;
@EventHandlerpublic void onSpawnerStack(SpawnerStackEvent event) { Player player = event.getPlayer(); int newStackSize = event.getNewStackSize();
player.sendMessage("Spawner stacked! New size: " + newStackSize);}SpawnerSellEvent
Section titled “SpawnerSellEvent”Triggered when items are sold from spawner storage.
import github.nighter.smartspawner.api.events.SpawnerSellEvent;
@EventHandlerpublic void onSpawnerSell(SpawnerSellEvent event) { Player player = event.getPlayer(); double price = event.getPrice();
// Add bonus money double bonus = price * 0.1; // 10% bonus // Give bonus to player via your economy plugin}SpawnerExpClaimEvent
Section titled “SpawnerExpClaimEvent”Triggered when experience is claimed from spawners.
import github.nighter.smartspawner.api.events.SpawnerExpClaimEvent;
@EventHandlerpublic void onExpClaim(SpawnerExpClaimEvent event) { Player player = event.getPlayer(); int expAmount = event.getExpAmount();
// Modify experience amount event.setExpAmount(expAmount * 2); // Double EXP}SpawnerEggChangeEvent
Section titled “SpawnerEggChangeEvent”Triggered when a spawner’s entity type is changed using spawn eggs.
import github.nighter.smartspawner.api.events.SpawnerEggChangeEvent;
@EventHandlerpublic void onSpawnerEggChange(SpawnerEggChangeEvent event) { Player player = event.getPlayer(); EntityType oldType = event.getOldEntityType(); EntityType newType = event.getNewEntityType();
player.sendMessage("Changed spawner from " + oldType + " to " + newType);}SpawnerExplodeEvent
Section titled “SpawnerExplodeEvent”Triggered when spawners are destroyed by explosions.
import github.nighter.smartspawner.api.events.SpawnerExplodeEvent;
@EventHandlerpublic void onSpawnerExplode(SpawnerExplodeEvent event) { Location location = event.getLocation(); int quantity = event.getQuantity();
// Log explosion getLogger().info("Spawners destroyed by explosion at " + location);}SpawnerRemoveEvent
Section titled “SpawnerRemoveEvent”Triggered when spawners are unstacked from the stacker GUI.
import github.nighter.smartspawner.api.events.SpawnerRemoveEvent;
@EventHandlerpublic void onSpawnerRemove(SpawnerRemoveEvent event) { Location location = event.getLocation();
// Handle spawner removal getLogger().info("Spawner removed at " + location);}SpawnerOpenGUIEvent
Section titled “SpawnerOpenGUIEvent”Triggered when a player opens the spawner GUI.
import github.nighter.smartspawner.api.events.SpawnerOpenGUIEvent;
@EventHandlerpublic void onSpawnerOpenGUI(SpawnerOpenGUIEvent event) { Player player = event.getPlayer(); EntityType entityType = event.getEntityType(); boolean isRefresh = event.isRefresh();
// Handle GUI open if (!player.hasPermission("spawner.gui.open")) { event.setCancelled(true); player.sendMessage("No permission to open spawner GUI!"); }}Last update: November 17, 2025 11:38:36