示例#1
0
 public static function boot()
 {
     parent::boot();
     Account::deleting(function ($account) {
         Character::where('membershipId', $account->membershipId)->delete();
     });
 }
示例#2
0
 public function validateCharacterReal($attribute, $value, $parameters)
 {
     try {
         $character = Character::where('characterId', $value)->firstOrFail();
     } catch (ModelNotFoundException $e) {
         return false;
     }
     return true;
 }
示例#3
0
 /**
  * @param string $url
  * @param array $data
  * @return bool
  */
 private function updateOrAddCharacter($url, $data)
 {
     $activity = false;
     $charBase = $data['characterBase'];
     $character = Character::where('characterId', $charBase['characterId'])->first();
     if (!$character instanceof Character) {
         $character = new Character();
         $character->membershipId = $charBase['membershipId'];
         $character->characterId = $charBase['characterId'];
     } else {
         $activity = $this->checkForActivity($character, $charBase['minutesPlayedTotal']);
     }
     $character->setTranslatorUrl($url);
     $character->realLevel = $charBase['powerLevel'];
     // deprecated as of TTK
     $character->next_level_exp = $data['levelProgression']['nextLevelAt'];
     $character->progress_exp = $data['levelProgression']['progressToNextLevel'];
     $character->last_played = new Carbon($charBase['dateLastPlayed']);
     $character->minutes_played = $charBase['minutesPlayedTotal'];
     $character->minutes_played_last_session = $charBase['minutesPlayedThisSession'];
     $character->level = $data['characterLevel'];
     $character->race = $charBase['raceHash'];
     $character->gender = $charBase['genderHash'];
     $character->class = $charBase['classHash'];
     $character->defense = $charBase['stats']['STAT_DEFENSE']['value'];
     $character->intellect = $charBase['stats']['STAT_INTELLECT']['value'];
     $character->discipline = $charBase['stats']['STAT_DISCIPLINE']['value'];
     $character->strength = $charBase['stats']['STAT_STRENGTH']['value'];
     if (isset($charBase['stats']['STAT_LIGHT'])) {
         $character->light = $charBase['stats']['STAT_LIGHT']['value'];
         // apply highest light they've earned on this char.
         if (isset($character->highest_light)) {
             $character->highest_light = max($character->light, $character->highest_light);
         }
     } else {
         // under lvl20, no LIGHT
         $character->light = 0;
     }
     $character->subclass = $charBase['peerView']['equipment'][0]['itemHash'];
     $character->helmet = $charBase['peerView']['equipment'][1]['itemHash'];
     $character->arms = $charBase['peerView']['equipment'][2]['itemHash'];
     $character->chest = $charBase['peerView']['equipment'][3]['itemHash'];
     $character->boots = $charBase['peerView']['equipment'][4]['itemHash'];
     $character->class_item = $charBase['peerView']['equipment'][5]['itemHash'];
     $character->primary = $charBase['peerView']['equipment'][6]['itemHash'];
     $character->secondary = $charBase['peerView']['equipment'][7]['itemHash'];
     $character->heavy = $charBase['peerView']['equipment'][8]['itemHash'];
     $character->ship = $charBase['peerView']['equipment'][9]['itemHash'];
     $this->setEquipmentField($character, $charBase, 'sparrow', 10);
     $this->setEquipmentField($character, $charBase, 'ghost', 11);
     $this->setEquipmentField($character, $charBase, 'background', 12);
     $this->setEquipmentField($character, $charBase, 'shader', 13);
     $this->setEquipmentField($character, $charBase, 'emote', 14);
     $this->setEquipmentField($character, $charBase, 'horn', 15);
     $this->setEquipmentField($character, $charBase, 'artifact', 16);
     $character->emblem = $data['emblemHash'];
     $character->save();
     return $activity;
 }