public function acceptChanges(Character $character) { if ($character->in_review) { $character->approved_version = $character->latestVersion()->version; $character->in_review = false; //Inactivate all other characters this player owns. if (!$character->owner->isStoryteller()) { $was_active = $character->active; foreach (Character::where('user_id', $character->owner->id)->get() as $c) { $c->active = false; $c->save(); } $character->active = true; if (!$was_active) { //This is a new character $character->owner->sendMessage(null, "New Character Accepted", "The Storytellers have accepted your character \"" . $character->name . "\"." . " Any of your characters that were previously active have been inactivated." . " You have been granted access to your new clan's forum, and access to your old" . " clan forum has been revoked. If you have any questions, please post in the " . " \"General Messages\" forum."); $character->approved_at = new DateTime(); $xp_cost = $character->getExperienceCost(1); $character->experience -= 10 - $xp_cost; Cache::forget("character-experience-{$character->id}"); $character->save(); } else { $character->owner->sendMessage(null, "Changes to " . $character->name . " Accepted", "The Storytellers have accepted your changes to \"" . $character->name . "\"." . " You can now access your character and make further changes as necessary."); } } $character->save(); } Cache::forget('forum-listing-' . $character->owner->id); return Redirect::to($_SERVER['HTTP_REFERER']); }