getPlayers()); /** * @param String $filename * @return array JSON data array. */ function toDataArray($filename) { return json_decode(file_get_contents($filename), true); } /** * @param Snapshot $snapshot */ function displayMessages($snapshot) { echo '

'; foreach ($snapshot->getMessages() as $message) { echo getMessageHTML($message) . "
\n"; } echo '

'; } /** * @param Message $message * @return string */ function getMessageHTML($message) { $sender = $message->getSender(); return '[' . $message->getType() . '] ' . $sender->getUsername() . ' - ' . $message->getMessage(); } /** * @param String $identifier * @param array $snapshotData Snapshot data array. * @return Snapshot */ function toSnapshot($identifier, $snapshotData) { $timezone = new DateTimeZone($snapshotData["timezone"]); $players = toPlayers($snapshotData['usernames']); $messages = toMessages($players, $snapshotData['snapshots'], $timezone); $generated = parseDateTime($snapshotData["generated"], $timezone); return new Snapshot($identifier, $messages, $players, $generated); } /** * @param array $reportData * @param Player[] $players * @return Report */ function toReport($reportData, $players) { $id = $reportData["id"]; $serverName = $reportData["serverName"]; $suspect = getPlayer($players, $reportData["suspect"]); $reporters = toReporters($players, $reportData["reporters"]); return new Report($id, $serverName, $suspect, $reporters); } /** * @param Player[] $players * @param array $messagesData Messages data array. * @param DateTimeZone $timezone * @return Message[] */ function toMessages($players, $messagesData, $timezone) { $messages = array(); for ($i = 0; $i < count($messagesData); $i++) { $messages[$i] = getMessage($players, $messagesData[$i], $timezone); } return $messages; } /** * @param Player[] $players * @param array $messageData Message data array. * @param DateTimeZone $timezone * @return Message */ function getMessage($players, $messageData, $timezone) { $sender = getPlayer($players, $messageData['sender']); $recipients = getPlayersFromUUIDs($players, $messageData['recipients']); $dateTime = parseDateTime($messageData['time'], $timezone); $type = $messageData['type']; $message = $messageData['message']; return new Message($sender, $recipients, $dateTime, $type, $message); } /** * @param Player[] $players * @param String[] $uuidArray the UUIDs of the players to fetch * @return Player[] */ function getPlayersFromUUIDs($players, $uuidArray) { $matchedPlayers = array(); for ($i = 0; $i < count($uuidArray); $i++) { $matchedPlayers[$i] = getPlayer($players, $uuidArray[$i]); } return $matchedPlayers; } /** * @param Player[] $playersArray * @return Player[] */ function toPlayers($playersArray) // String UUID as Key { $players = array(); foreach ($playersArray as $uuid => $username) { $players[$uuid] = new Player($uuid, $username); } return $players; } /** * @param $playersArray * @param $reportersArray * @return SplObjectStorage */ function toReporters($playersArray, $reportersArray) { $reporters = new SplObjectStorage(); foreach ($reportersArray as $reporterUUID => $reason) { $reporters[getPlayer($playersArray, $reporterUUID)] = $reason; } return $reporters; } /** * @param Player[] $players * @param String $uuid * @return Player */ function getPlayer($players, $uuid) { $player = $players[$uuid]; if ($player != null) { return $player; } else { throw new RuntimeException('Player for UUID not found.'); } } /** * @param String $dateTime * @param DateTimeZone $timezone * @return DateTime */ function parseDateTime($dateTime, $timezone) { global $jsonDateTimeFormat; return DateTime::createFromFormat($jsonDateTimeFormat, $dateTime, $timezone); } /** * @param String $input * @return String */ function removeBadCharacters($input) { return preg_replace('/[^A-Za-z0-9_\-]/', '_', $input); } ?> Snapshot for Report #<?php echo $report->getId() ?>