| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- namespace App\Module\Farm\Commands;
- use App\Module\Farm\Models\FarmShrineConfig;
- use App\Module\Game\DCache\FarmShrineJsonConfig;
- use Illuminate\Console\Command;
- use Illuminate\Support\Facades\Log;
- /**
- * 生成神像配置表JSON数据命令
- *
- * 该命令用于从数据库中的神像配置表生成JSON数据文件,供客户端使用。
- * 生成的JSON文件包含神像的基本信息,如类型、名称、描述、持续时间等。
- * 该命令通常在神像配置数据更新后运行,以确保客户端获取最新的配置数据。
- */
- class GenerateFarmShrineConfigJson extends Command
- {
- /**
- * 命令名称
- *
- * @var string
- */
- protected $signature = 'farm:generate-shrine-json';
- /**
- * 命令描述
- *
- * @var string
- */
- protected $description = '生成神像配置JSON文件';
- /**
- * 生成神像配置JSON数据
- *
- * @return array|bool 生成的数据或失败标志
- */
- public static function generateJson()
- {
- try {
- // 获取所有神像配置
- $configs = FarmShrineConfig::orderBy('buff_type')->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;
- }
- }
|