mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Mob Spawners no longer drop from Blast Mining Fixes #5052
This commit is contained in:
		@@ -37,6 +37,7 @@ import static com.gmail.nossr50.util.ItemUtils.isPickaxe;
 | 
			
		||||
public class MiningManager extends SkillManager {
 | 
			
		||||
 | 
			
		||||
    public static final String BUDDING_AMETHYST = "budding_amethyst";
 | 
			
		||||
    public static final Collection<Material> BLAST_MINING_BLACKLIST = List.of(Material.SPAWNER);
 | 
			
		||||
 | 
			
		||||
    public MiningManager(@NotNull McMMOPlayer mcMMOPlayer) {
 | 
			
		||||
        super(mcMMOPlayer, PrimarySkillType.MINING);
 | 
			
		||||
@@ -225,13 +226,14 @@ public class MiningManager extends SkillManager {
 | 
			
		||||
                            ? blockState.getBlock().getDrops(mmoPlayer.getPlayer().getInventory().getItemInMainHand())
 | 
			
		||||
                            : List.of(new ItemStack(blockState.getType()));
 | 
			
		||||
                    ItemUtils.spawnItems(getPlayer(), Misc.getBlockCenter(blockState),
 | 
			
		||||
                            oreDrops, ItemSpawnReason.BLAST_MINING_ORES);
 | 
			
		||||
                            oreDrops, BLAST_MINING_BLACKLIST, ItemSpawnReason.BLAST_MINING_ORES);
 | 
			
		||||
 | 
			
		||||
                    if (mcMMO.p.getAdvancedConfig().isBlastMiningBonusDropsEnabled()) {
 | 
			
		||||
                        for (int i = 1; i < dropMultiplier; i++) {
 | 
			
		||||
                            ItemUtils.spawnItems(getPlayer(),
 | 
			
		||||
                                    Misc.getBlockCenter(blockState),
 | 
			
		||||
                                    oreDrops,
 | 
			
		||||
                                    BLAST_MINING_BLACKLIST,
 | 
			
		||||
                                    ItemSpawnReason.BLAST_MINING_ORES_BONUS_DROP);
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
 
 | 
			
		||||
@@ -696,6 +696,29 @@ public final class ItemUtils {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Drop items at a given location.
 | 
			
		||||
     *
 | 
			
		||||
     * @param player player to drop the items for
 | 
			
		||||
     * @param location The location to drop the items at
 | 
			
		||||
     * @param itemStacks The items to drop
 | 
			
		||||
     * @param blackList The items to skip
 | 
			
		||||
     * @param itemSpawnReason the reason for the item drop
 | 
			
		||||
     */
 | 
			
		||||
    public static void spawnItems(@Nullable Player player,
 | 
			
		||||
                                  @NotNull Location location,
 | 
			
		||||
                                  @NotNull Collection<ItemStack> itemStacks,
 | 
			
		||||
                                  @NotNull Collection<Material> blackList,
 | 
			
		||||
                                  @NotNull ItemSpawnReason itemSpawnReason) {
 | 
			
		||||
        for (ItemStack is : itemStacks) {
 | 
			
		||||
            // Skip blacklisted items
 | 
			
		||||
            if(blackList.contains(is.getType())) {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
            spawnItem(player, location, is, itemSpawnReason);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Drop items at a given location.
 | 
			
		||||
     *
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user