get(); // 准备JSON数据 $jsonData = [ 'generated_ts' => time(), 'shrine_configs' => [] ]; foreach ($configs as $config) { $jsonData['shrine_configs'][] = [ 'id' => $config->id, 'buff_type' => $config->buff_type, 'name' => $config->name, 'description' => $config->description, 'duration_hours' => $config->duration_hours, 'item_id' => $config->item_id, 'display_attributes' => $config->display_attributes, 'numeric_attributes' => $config->numeric_attributes, ]; } return $jsonData; } catch (\Exception $e) { Log::error('Generate farm_shrine.json failed: ' . $e->getMessage()); if (php_sapi_name() === 'cli') { echo "Error: Generate farm_shrine.json failed: {$e->getMessage()}\n"; } return false; } } /** * 执行命令 * * @return int */ public function handle() { $this->info('Generating farm_shrine.json...'); $result = FarmShrineJsonConfig::getData([], true); $this->info('Successfully generated farm_shrine.json with ' . count($result['shrine_configs']) . ' shrine configs.'); return 0; } }