public function teach($id)
 {
     $build = MemeBuild::find($id);
     $build->load('itemset.itemset_blocks.items', 'itemset.champion');
     //return $build;
     $blocks = [];
     foreach ($build->itemset[0]->itemset_blocks as $block) {
         $items = $block->items;
         $it = [];
         foreach ($items as $item) {
             $it[] = ['id' => $item->riot_id, 'count' => $item->pivot->count];
         }
         $blocks[] = ["type" => $block->name, "recMath" => $block->recMath, "minSummonerLevel" => $block->minSummonerLevel, "maxSummonerLevel" => $block->maxSummonerLevel, "showIfSummonerSpell" => $block->showIfSummonerSpell, "hideIfSummonerSpell" => $block->hideIfSummonerSpell, 'items' => $it];
     }
     $res = [];
     $res[] = ["title" => $build->itemset[0]->name, "type" => $build->itemset[0]->type, "map" => $build->itemset[0]->map, "mode" => $build->itemset[0]->mode, "priority" => (bool) $build->itemset[0]->priority, "sortrank" => $build->itemset[0]->sortrank == null ? 0 : $build->itemset[0]->sortrank, "blocks" => $blocks];
     return View::make('memebuild.teach')->with(['Itemset' => json_encode($res), 'ChampionKey' => $build->itemset[0]->champion()->lists('key')]);
 }
 public function meme_builds()
 {
     $path = storage_path() . "/fill/itemsets_memebuilds.json";
     if (!File::exists($path)) {
         throw new Exception("Invalid File");
     }
     $file = File::get($path);
     $obj = json_decode($file);
     $memebuilds = [];
     foreach ($obj as $itemset) {
         $slug = \Illuminate\Support\Str::slug($itemset->name);
         $memebuild = MemeBuild::firstOrNew(['name' => $itemset->name, 'slug' => $slug]);
         $memebuild->description = $itemset->description;
         $video = preg_replace("/(?:https:\\/\\/|http:\\/\\/)?(?:www\\.)?(?:youtube\\.com|youtu\\.be)\\/(?:watch\\?v=)?/", "http://www.youtube.com/embed/", $itemset->video);
         $memebuild->video = $video;
         if (isset($itemset->author)) {
             $memebuild->author = $itemset->author;
         } else {
             $memebuild->author = 'Anverid';
         }
         $memebuild->save();
         // Create the itemset
         $itemset_db = Itemset::firstOrNew(['name' => $itemset->name]);
         $itemset_db->point1 = $itemset->spell_order->point1;
         $itemset_db->point2 = $itemset->spell_order->point2;
         $itemset_db->point3 = $itemset->spell_order->point3;
         $itemset_db->max1 = $itemset->spell_order->max1;
         $itemset_db->max2 = $itemset->spell_order->max2;
         $itemset_db->max3 = $itemset->spell_order->max3;
         $itemset_db->champion_id = $itemset->champion;
         $itemset_db->summoner1 = $itemset->summoner_spells[0];
         $itemset_db->summoner2 = $itemset->summoner_spells[1];
         $memebuild->itemset = $itemset_db;
         $memebuild->itemset()->save($itemset_db);
         $blockStarting = ItemsetBlock::firstOrNew(['name' => 'Starting Items', 'type' => 1, 'itemset_id' => $itemset_db->id]);
         $itemset_db->itemset_blocks()->save($blockStarting);
         $startings_count = [];
         foreach ($itemset->starting_items as $value) {
             if (isset($startings_count[(string) $value])) {
                 $startings_count[(string) $value] = $startings_count[(string) $value] + 1;
             } else {
                 $startings_count[(string) $value] = 1;
             }
         }
         $counter = 0;
         foreach ($startings_count as $key => $value) {
             $item = Item::where('riot_id', $key)->first();
             if (!$blockStarting->items->contains($item->id)) {
                 $blockStarting->items()->save($item, ['count' => $value, 'order' => $counter]);
             }
             $counter++;
         }
         $blockFinal = ItemsetBlock::firstOrNew(['name' => 'Core Items', 'type' => 0, 'itemset_id' => $itemset_db->id]);
         $itemset_db->itemset_blocks()->save($blockFinal);
         $items_count = [];
         foreach ($itemset->items as $value) {
             if (isset($items_count[(string) $value])) {
                 $items_count[(string) $value] = $items_count[(string) $value] + 1;
             } else {
                 $items_count[(string) $value] = 1;
             }
         }
         $counter = 0;
         foreach ($items_count as $key => $value) {
             $item = Item::where('riot_id', $key)->first();
             if (!$blockFinal->items->contains($item->id)) {
                 $blockFinal->items()->save($item, ['count' => $value, 'order' => $counter]);
             }
             $counter++;
         }
         $mb = MemeBuild::where(['id' => $memebuild->id])->with('itemset.itemset_blocks.items')->first();
         if (count($memebuilds) < 5) {
             array_push($memebuilds, $mb);
         }
     }
     return $memebuilds;
 }