private function infoModApi($output, $slug, $version) { displayServerInfo($output); $apiClient = new Client(); $appConfig = solder_config(); $apiResponse = $apiClient->get($appConfig->api . '/mod/' . $slug . '/' . $version)->json(); if (isset($apiResponse['error'])) { throw new \Exception($apiResponse['error']); } $rows = array(); foreach ($apiResponse as $key => $value) { if ($key == 'versions') { $rows[] = array("<info>{$key}</info>", implode($value, "\n")); } else { $rows[] = array("<info>{$key}</info>", mb_strimwidth($value, 0, 60, "...")); } } $output->writeln(''); $output->writeln("<comment>Mod:</comment>"); $table = new Table($output); $table->setRows($rows)->setStyle('compact')->render(); }
private function infoModpack($output, $modpackSlug, $modpackBuild) { $apiClient = new Client(); $appConfig = solder_config(); displayServerInfo($output); if ($modpackBuild == 'latest' || $modpackBuild == 'recommended') { $apiResponse = $apiClient->get($appConfig->api . '/modpack/' . $modpackSlug)->json(); $modpackBuild = $apiResponse[$modpackBuild]; } if ($modpackSlug == '' && $modpackBuild == '') { $apiUri = $appConfig->api . '/modpack'; } elseif ($modpackSlug != '' && $modpackBuild == '') { $apiUri = $appConfig->api . '/modpack/' . $modpackSlug; } else { $apiUri = $appConfig->api . '/modpack/' . $modpackSlug . '/' . $modpackBuild; } $apiResponse = $apiClient->get($apiUri)->json(); if (isset($apiResponse['error'])) { throw new \Exception($apiResponse['error']); } $rows = array(); $mods = array(); $modpacks = array(); foreach ($apiResponse as $key => $value) { if ($key == 'mods') { foreach ($value as $mod) { $mods[] = array("<info>{$mod['name']}</info>", $mod['version']); } } elseif ($key == 'modpacks') { foreach ($value as $slug => $build) { $modpacks[] = array("<info>{$slug}</info>", $build); } } elseif (is_array($value)) { $rows[] = array("<info>{$key}</info>", implode($value, "\n")); } else { $rows[] = array("<info>{$key}</info>", mb_strimwidth($value, 0, 60, "...")); } } if ($modpackSlug == '' && $modpackBuild == '') { $output->writeln(''); $output->writeln('<comment>Available Modpacks:</comment>'); $table = new Table($output); $table->setRows($modpacks)->setStyle('compact')->render(); } if ($modpackSlug != '' && $modpackBuild == '') { $output->writeln(''); $output->writeln("<comment>Modpack:</comment>"); $table = new Table($output); $table->setRows($rows)->setStyle('compact')->render(); } if ($modpackBuild != '') { $output->writeln(''); $output->writeln('<comment>Build:</comment>'); $table = new Table($output); $table->setRows($rows)->setStyle('compact')->render(); $output->writeln(''); $output->writeln('<comment>Mods:</comment>'); $table = new Table($output); $table->setRows($mods)->setStyle('compact')->render(); } }