public boolean cast (Sorcerer sorcerer, Trigger trigger, Event event)
      {
        ((PlayerInteractEvent) event).setCancelled(true);
        boolean changedBlocks = false;
        Location loc = sorcerer.getPlayer().getLocation();
        int xMax = loc.getBlockX() + 2;
        int zMax = loc.getBlockZ() + 2;
        for (int x = loc.getBlockX() - 2; x <= xMax; x++)
          {
            for (int z = loc.getBlockZ() - 2; z <= zMax; z++)
              {
                Block block = loc.getWorld().getBlockAt(x, loc.getBlockY(), z);
                if (block.getType() == Material.AIR
                    && block.getRelative(BlockFace.DOWN).getType() == Material.GRASS)
                  {
                    int rand = new Random().nextInt(10);
                    if (rand == 0)
                      continue;
                    else if (rand < 4)
                      {
                        block.setType(Material.LONG_GRASS);
                        block.setData((byte) 1);
                        changedBlocks = true;
                      }
                    else if (rand < 7)
                      {
                        block.setType(Material.YELLOW_FLOWER);
                        changedBlocks = true;
                      }
                    else
                      {
                        block.setType(Material.RED_ROSE);
                        changedBlocks = true;
                      }
                    Merlin.getInstance().createParticles(block.getLocation(),
                        true, Particle.HAPPY_VILLAGER, 1);
                  }
                else
                  continue;
              }
          }
        return changedBlocks;
      }