@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
  public void onBlockPlace(BlockPlaceEvent event) {
    if (event.isCancelled()) {
      return;
    }
    Block blockPlaced = event.getBlockPlaced();
    // Just mob spawner events
    if (blockPlaced.getType() != Material.MOB_SPAWNER) {
      return;
    }
    Player player = event.getPlayer();
    // If the player can't build here, return
    if (!su.canBuildHere(player, blockPlaced.getLocation())) {
      return;
    }
    // Get the item
    ItemStack item = event.getItemInHand();
    // Get data from item
    short entityID = su.getStoredSpawnerItemEntityID(item);
    boolean defaultID = false;
    // 0 or unknown then fallback
    if (entityID == 0 || !su.knownEids.contains(entityID)) {
      // Default
      defaultID = true;
      entityID = su.getDefaultEntityID();
    }

    // Names
    String creatureName = su.getCreatureName(entityID);
    String spawnerName = creatureName.toLowerCase().replace(" ", "");

    // Check for place permission
    if (!player.hasPermission("silkspawners.place." + spawnerName)) {
      event.setCancelled(true);
      player.sendMessage(
          ChatColor.translateAlternateColorCodes(
                  '\u0026',
                  plugin
                      .localization
                      .getString("noPermissionPlace")
                      .replace("%ID%", Short.toString(entityID)))
              .replace("%creature%", creatureName));
      return;
    }

    // Message default
    if (defaultID) {
      plugin.informPlayer(
          player,
          ChatColor.translateAlternateColorCodes(
              '\u0026', plugin.localization.getString("placingDefault")));
    } else {
      // Else message the type
      plugin.informPlayer(
          player,
          ChatColor.translateAlternateColorCodes(
                  '\u0026', plugin.localization.getString("spawnerPlaced"))
              .replace("%creature%", su.getCreatureName(entityID)));
    }

    su.setSpawnerEntityID(blockPlaced, entityID);
  }