X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FDiscordAppCommands%2FAosrPresetCommand.php;h=9a537db8006452ed349a99cc7a1fec099746d856;hb=47033726a69270d991a496b433163b176ba58e71;hp=a023fcbd45752ff704f223cf1a789260bbb33960;hpb=ca90048a9fb2d8c3c65d81096ecd36bbf7c51ff5;p=alttp.git diff --git a/app/DiscordAppCommands/AosrPresetCommand.php b/app/DiscordAppCommands/AosrPresetCommand.php index a023fcb..9a537db 100644 --- a/app/DiscordAppCommands/AosrPresetCommand.php +++ b/app/DiscordAppCommands/AosrPresetCommand.php @@ -5,9 +5,6 @@ namespace App\DiscordAppCommands; use App\Models\AosSeed; use Discord\Builders\MessageBuilder; use Discord\Discord; -use Discord\Parts\Embed\Embed; -use Discord\Parts\Embed\Field; -use Discord\Parts\Embed\Footer; use Discord\Parts\Interactions\Interaction; class AosrPresetCommand { @@ -43,6 +40,14 @@ class AosrPresetCommand { 'type' => 3, 'required' => true, 'choices' => $choices, + ], [ + 'name' => 'race', + 'description' => 'Generate race ROM, seed will be hidden', + 'description_localizations' => [ + 'de' => 'Race ROM generieren, Seed wird versteckt.', + ], + 'type' => 5, + 'required' => false, ]], ]], ]); @@ -55,41 +60,35 @@ class AosrPresetCommand { ->acknowledgeWithResponse() ->done(function() use($discord, $interaction) { $presetName = $interaction->data->options['preset']->options['preset']->value; - $message = MessageBuilder::new(); + $race = isset($interaction->data->options['preset']->options['race']) + ? $interaction->data->options['preset']->options['race']->value : false; if (isset(static::$presets[$presetName])) { $preset = static::$presets[$presetName]; - $seed = AosSeed::generateSurge($presetName, $preset['settings']); + $seed = AosSeed::generateSurge($presetName, $preset['settings'], $race); + + $process = $seed->createProcess(); + $process->on('exit', function() use ($discord, $interaction, $seed) { + $seed = $seed->fresh(); + + $embed = $seed->createEmbed($discord); + $message = MessageBuilder::new(); + $message->addEmbed($embed); + + $interaction->updateOriginalResponse($message); + }); - $embed = new Embed($discord, [ - 'fields' => [ - new Field($discord, [ 'name' => 'Generator', 'value' => 'This seed has been generated with fusecv\'s randomizer on aosrando.surge.sh.' ]), - new Field($discord, [ 'name' => 'Preset', 'value' => $preset['name'], 'inline' => true ]), - new Field($discord, [ 'name' => 'Seed', 'value' => $seed->seed, 'inline' => true ]), - new Field($discord, [ 'name' => 'Logic', 'value' => $preset['settings']['logic'], 'inline' => true ]), - new Field($discord, [ 'name' => 'Area', 'value' => $preset['settings']['area'], 'inline' => true ]), - new Field($discord, [ 'name' => 'Boss', 'value' => $preset['settings']['boss'], 'inline' => true ]), - new Field($discord, [ 'name' => 'Enemy', 'value' => $preset['settings']['enemy'], 'inline' => true ]), - new Field($discord, [ 'name' => 'Permalink', 'value' => $seed->permalink ]), - ], - 'footer' => new Footer($discord, [ - 'text' => 'Grün', - ]), - 'timestamp' => now(), - 'title' => 'AoSRando Seed', - 'type' => 'rich', - 'url' => $seed->permalink, - ]); - $message->addEmbed($embed); + $process->start($discord->getLoop()); } else { + $message = MessageBuilder::new(); $message->setContent('unknown preset '.$presetName); + $interaction->updateOriginalResponse($message); } - $interaction->updateOriginalResponse($message); }); return true; }); } - private static $presets = [ + public static $presets = [ 'Normal' => [ 'name' => 'Normal', 'value' => 'Normal',