public function add(Request $request)
{
$this->validate($request, ['player_name' => 'required|' . (option('allow_chinese_playername') ? 'pname_chinese' : 'playername')]);
Event::fire(new CheckPlayerExists($request->input('player_name')));
if (!Player::where('player_name', $request->input('player_name'))->get()->isEmpty()) {
return json(trans('user.player.add.repeated'), 6);
}
if ($this->user->getScore() < Option::get('score_per_player')) {
return json(trans('user.player.add.lack-score'), 7);
}
Event::fire(new PlayerWillBeAdded($request->input('player_name')));
$player = new Player();
$player->uid = $this->user->uid;
$player->player_name = $request->input('player_name');
$player->preference = "default";
$player->last_modified = Utils::getTimeFormatted();
$player->save();
Event::fire(new PlayerWasAdded($player));
$this->user->setScore(option('score_per_player'), 'minus');
return json(trans('user.player.add.success', ['name' => $request->input('player_name')]), 0);
}