|  | @@ -512,8 +512,23 @@ public class BlockListener implements Listener {
 | 
	
		
			
				|  |  |              else if (mcMMOPlayer.getToolPreparationMode(ToolType.SHOVEL) && ItemUtils.isShovel(heldItem) && BlockUtils.affectedByGigaDrillBreaker(blockState) && Permissions.gigaDrillBreaker(player)) {
 | 
	
		
			
				|  |  |                  mcMMOPlayer.checkAbilityActivation(PrimarySkillType.EXCAVATION);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            else if (mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockUtils.affectedByGigaDrillBreaker(blockState) || blockState.getType() == Material.SNOW || BlockUtils.affectedByBlockCracker(blockState) && Permissions.berserk(player))) {
 | 
	
		
			
				|  |  | +            else if (mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockUtils.affectedByGigaDrillBreaker(blockState)
 | 
	
		
			
				|  |  | +                    || mcMMO.getMaterialMapStore().isGlass(blockState.getType())
 | 
	
		
			
				|  |  | +                    || blockState.getType() == Material.SNOW
 | 
	
		
			
				|  |  | +                    || BlockUtils.affectedByBlockCracker(blockState) && Permissions.berserk(player))) {
 | 
	
		
			
				|  |  |                  mcMMOPlayer.checkAbilityActivation(PrimarySkillType.UNARMED);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if(mcMMOPlayer.getAbilityMode(SuperAbilityType.BERSERK)) {
 | 
	
		
			
				|  |  | +                    if (SuperAbilityType.BERSERK.blockCheck(blockState) && EventUtils.simulateBlockBreak(blockState.getBlock(), player, true)) {
 | 
	
		
			
				|  |  | +                        event.setInstaBreak(true);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                        if(blockState.getType().getKey().getKey().contains("glass")) {
 | 
	
		
			
				|  |  | +                            SoundManager.worldSendSound(player.getWorld(), blockState.getLocation(), SoundType.GLASS);
 | 
	
		
			
				|  |  | +                        } else {
 | 
	
		
			
				|  |  | +                            SoundManager.sendSound(player, blockState.getLocation(), SoundType.POP);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -593,10 +608,10 @@ public class BlockListener implements Listener {
 | 
	
		
			
				|  |  |                      blockState.update();
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            else if (SuperAbilityType.BERSERK.blockCheck(block.getState()) && EventUtils.simulateBlockBreak(block, player, true)) {
 | 
	
		
			
				|  |  | +            else if (!event.getInstaBreak() && SuperAbilityType.BERSERK.blockCheck(blockState) && EventUtils.simulateBlockBreak(block, player, true)) {
 | 
	
		
			
				|  |  |                  event.setInstaBreak(true);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                if(block.getState().getType().getKey().getKey().contains("glass")) {
 | 
	
		
			
				|  |  | +                if(blockState.getType().getKey().getKey().contains("glass")) {
 | 
	
		
			
				|  |  |                      SoundManager.worldSendSound(player.getWorld(), block.getLocation(), SoundType.GLASS);
 | 
	
		
			
				|  |  |                  } else {
 | 
	
		
			
				|  |  |                      SoundManager.sendSound(player, block.getLocation(), SoundType.POP);
 |