X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FHttp%2FControllers%2FAosSeedController.php;h=a1718a13fcaee60da1c91ba502edcac27e7ea00b;hb=a5e53546a5960f54fb45e06767f89e9dfeef6a47;hp=7c7e5f9fdaf04012e1f52def459b52bfabc8b88e;hpb=47033726a69270d991a496b433163b176ba58e71;p=alttp.git diff --git a/app/Http/Controllers/AosSeedController.php b/app/Http/Controllers/AosSeedController.php index 7c7e5f9..a1718a1 100644 --- a/app/Http/Controllers/AosSeedController.php +++ b/app/Http/Controllers/AosSeedController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\DiscordAppCommands\AosrPresetCommand; use App\Models\AosSeed; use Illuminate\Http\Request; use Illuminate\Support\Facades\Artisan; @@ -22,6 +23,29 @@ class AosSeedController extends Controller return $seed->toJson(); } + public function generate(Request $request) { + $validatedData = $request->validate([ + 'preset' => 'string|required', + 'race' => 'boolean', + ]); + $presetName = $validatedData['preset']; + $race = $validatedData['race'] ?? false; + + $preset = AosrPresetCommand::presetByName($presetName); + if (!$preset) { + abort(404); + } + $seed = AosSeed::generateSurge($preset['value'], $preset['settings'], $race); + Artisan::call('aos:generate '.intval($seed->id)); + + $seed = $this->censor($seed->fresh()); + return $seed->toJson(); + } + + public function presets() { + return array_values(AosrPresetCommand::$presets); + } + public function retry($hash) { $seed = AosSeed::where('hash', '=', $hash)->firstOrFail(); @@ -31,7 +55,18 @@ class AosSeedController extends Controller Artisan::call('aos:generate '.intval($seed->id)); } + $seed = $this->censor($seed->fresh()); return $seed->toJson(); } + private function censor(AosSeed $seed) { + if ($seed->race) { + $seed->makeHidden('seed'); + } + if ($seed->mystery) { + $seed->makeHidden('settings'); + } + return $seed; + } + }