argument('user'); $characters = $this->argument('characters'); if(Str::contains($userId, '-')) $user = User::find($userId); else $user = User::findBySteamID($userId); if ($user === null) { $this->error('User id "' . $userId . '" not found'); return; } if(count($characters) <= 0) { $characters = Characters::cases(); } else { $foundCharacters = []; foreach ($characters as $character) { $parsed = Characters::tryFrom($character); if ($parsed === null && $character === 'Fog') { $foundCharacters[] = Characters::Smoke; } else if($parsed === null) { $this->error('Could not parse Character "'.$character.'", skipping'); continue; } $foundCharacters[] = $parsed; } $characters = $foundCharacters; } $playerData = $user->playerData(); foreach ($characters as $character) { /** @var CharacterItemConfig $config */ $config = $character->getCharacter()->getItemConfigClass(); $characterId = $config::getCharacterId(); try { $this->info('Attaching Character "'.$characterId->toString().'" ('.$character->value.')'); $playerData->inventory()->attach($characterId->toString()); } catch (UniqueConstraintViolationException $e) { $this->warn('Skipping Character '.$characterId.' ('.$character->value.') because it already is inside the players inventory.'); } } } }