Skip to content

API Events

SmartSpawner fires Bukkit events you can listen to in your plugin.

Event Reference

EventDescriptionCancellable
SpawnerBreakEventSpawner broken by player or explosionNo
SpawnerPlaceEventSpawner placed by playerYes
SpawnerPlayerBreakEventSpawner broken specifically by a playerYes
SpawnerStackEventSpawners stacked by handYes
SpawnerSellEventItems sold from spawner storageYes
SpawnerExpClaimEventExperience claimed from spawnerYes
SpawnerEggChangeEventSpawner type changed with spawn eggYes
SpawnerExplodeEventSpawner destroyed by explosionNo
SpawnerRemoveEventSpawners unstacked via GUIYes
SpawnerOpenGUIEventSpawner GUI opened by playerYes
SpawnerDropAllEventAll items on a storage page droppedYes
SpawnerTakeAllEventAll items on a storage page takenYes

Event Examples

SpawnerBreakEvent

java
@EventHandler
public void onSpawnerBreak(SpawnerBreakEvent event) {
    Entity breaker = event.getEntity();
    Location location = event.getLocation();
    int quantity = event.getQuantity();

    if (breaker instanceof Player player) {
        player.sendMessage("You broke " + quantity + " spawner(s)!");
    }
}

SpawnerPlaceEvent

java
@EventHandler
public void onSpawnerPlace(SpawnerPlaceEvent event) {
    Player player = event.getPlayer();
    Location location = event.getLocation();

    player.sendMessage("Spawner placed at " + location.getBlockX() + ", " + location.getBlockY() + ", " + location.getBlockZ());
}

SpawnerPlayerBreakEvent

java
@EventHandler
public void onPlayerBreakSpawner(SpawnerPlayerBreakEvent event) {
    Player player = event.getPlayer();

    if (!player.hasPermission("yourplugin.break")) {
        event.setCancelled(true);
        player.sendMessage("You cannot break spawners here.");
    }
}

SpawnerStackEvent

java
@EventHandler
public void onSpawnerStack(SpawnerStackEvent event) {
    Player player = event.getPlayer();
    int newStackSize = event.getNewStackSize();

    player.sendMessage("New stack size: " + newStackSize);
}

SpawnerSellEvent

java
@EventHandler
public void onSpawnerSell(SpawnerSellEvent event) {
    Player player = event.getPlayer();
    double price = event.getPrice();

    // Give a 10% bonus on top
    double bonus = price * 0.1;
    // economy.depositPlayer(player, bonus);
}

SpawnerExpClaimEvent

java
@EventHandler
public void onExpClaim(SpawnerExpClaimEvent event) {
    Player player = event.getPlayer();
    int expAmount = event.getExpAmount();

    // Double the XP
    event.setExpAmount(expAmount * 2);
}

SpawnerEggChangeEvent

java
@EventHandler
public void onSpawnerEggChange(SpawnerEggChangeEvent event) {
    Player player = event.getPlayer();
    EntityType oldType = event.getOldEntityType();
    EntityType newType = event.getNewEntityType();

    player.sendMessage("Changed from " + oldType + " to " + newType);
}

SpawnerOpenGUIEvent

java
@EventHandler
public void onSpawnerOpenGUI(SpawnerOpenGUIEvent event) {
    Player player = event.getPlayer();

    if (!player.hasPermission("yourplugin.gui")) {
        event.setCancelled(true);
        player.sendMessage("You cannot open spawner GUIs.");
    }
}

SpawnerDropAllEvent / SpawnerTakeAllEvent

java
@EventHandler
public void onSpawnerDropAll(SpawnerDropAllEvent event) {
    Player player = event.getPlayer();

    if (!player.hasPermission("yourplugin.dropall")) {
        event.setCancelled(true);
    }
}

@EventHandler
public void onSpawnerTakeAll(SpawnerTakeAllEvent event) {
    Player player = event.getPlayer();

    if (!player.hasPermission("yourplugin.takeall")) {
        event.setCancelled(true);
    }
}