public void shatterGlass (Sorcerer sorcerer, int mana)
      {
        final int radius = mana / 200;
        final Location loc = sorcerer.getPlayer().getLocation().clone();
        glassPool.submit(new Runnable()
          {
            public void run ()
              {
                int xMax = loc.getBlockX() + radius;
                int yMax = loc.getBlockY() + (int) (radius * (3.0 / 4.0));
                int zMax = loc.getBlockZ() + radius;
                for (int x = loc.getBlockX() - radius; x <= xMax; x++)
                  {
                    for (int y = loc.getBlockY(); y <= yMax; y++)
                      {
                        for (int z = loc.getBlockZ() - radius; z <= zMax; z++)
                          {
                            final int finalX = x;
                            final int finalY = y;
                            final int finalZ = z;
                            instance
                                .getServer()
                                .getScheduler()
                                .scheduleSyncDelayedTask(instance,
                                    new Runnable()
                                      {
                                        public void run ()
                                          {
                                            Block block =
                                                loc.getWorld().getBlockAt(
                                                    finalX, finalY, finalZ);
                                            Material mat = block.getType();
                                            if (mat == Material.GLASS
                                                || mat == Material.THIN_GLASS)
                                              {
                                                block.breakNaturally();
                                                instance.createParticles(
                                                    block.getLocation(), true,
                                                    Particle.EXPLODE, 3);
                                                loc.getWorld().playSound(loc,
                                                    Sound.GLASS, radius, 1);
                                              }
                                          }
                                      });
                            try
                              {
                                Thread.sleep(5);
                              }
                            catch (InterruptedException e)
                              {
                                e.printStackTrace();
                              }
                          }
                      }
                  }
              }
          });
      }