diff --git a/src/webserver/api/me.php b/src/webserver/api/me.php new file mode 100644 index 0000000..8f5363c --- /dev/null +++ b/src/webserver/api/me.php @@ -0,0 +1,90 @@ +prepare("SELECT * FROM Players p WHERE p.id = :player_id AND p.is_active = 1"); + $player_query->bindValue(':player_id', $_SESSION['player_id']); + $player_result = $player_query->execute(); + + if ($player_result) { + $player_record = $player_result->fetchArray(SQLITE3_ASSOC); + } + + // get player items + $items_query = $conn->prepare("SELECT * FROM PlayerItems pi JOIN Items i ON pi.item_id = i.id WHERE pi.player_id = :player_id"); + $items_query->bindValue(':player_id', $_SESSION['player_id']); + $items_result = $items_query->execute(); + + if ($items_result) { + while ($items_record = $items_result->fetchArray(SQLITE3_ASSOC)) { + array_push($items, $items_record); + } + } + + // get player NPCs + $npcs_query = $conn->prepare("SELECT * FROM PlayerNPCs pn WHERE pn.player_id = :player_id AND pn.is_active = 1"); + $npcs_query->bindValue(':player_id', $_SESSION['player_id']); + $npcs_result = $npcs_query->execute(); + + if ($npcs_result) { + while ($npcs_record = $npcs_result->fetchArray(SQLITE3_ASSOC)) { + array_push($npcs, $npcs_record); + } + } + + // get player NPC encounters + $encounters_query = $conn->prepare("SELECT * FROM PlayerEncounters pe WHERE pe.player_id = :player_id"); + $encounters_query->bindValue(':player_id', $_SESSION['player_id']); + $encounters_result = $encounters_query->execute(); + + if ($encounters_result) { + while ($encounters_record = $encounters_result->fetchArray(SQLITE3_ASSOC)) { + array_push($encounters, $encounters_record); + } + } + + // get player quests + $quests_query = $conn->prepare("SELECT * FROM PlayerQuests pq JOIN Quests q ON pq.quest_id = q.id WHERE pq.player_id = :player_id"); + $quests_query->bindValue(':player_id', $_SESSION['player_id']); + $quests_result = $quests_query->execute(); + + if ($quests_result) { + while ($quests_record = $quests_result->fetchArray(SQLITE3_ASSOC)) { + array_push($quests, $quests_record); + } + } + + // put it all together and return as JSON + $player = (object) [ + 'id' => $player_record['id'], + 'nickname' => $player_record['nickname'], + 'items' => $items, + 'npcs' => $npcs, + 'encounters' => $encounters, + 'quests' => $quests + ]; + + header('Content-Type: application/json; charset=utf-8'); + echo json_encode($player); + exit(); + } +?> diff --git a/src/webserver/auth/login.php b/src/webserver/auth/login.php index 67adc6c..ef4337c 100644 --- a/src/webserver/auth/login.php +++ b/src/webserver/auth/login.php @@ -46,9 +46,17 @@ echo "

Register a new account, reset your password, or try again.

"; loginForm(); } else { - echo "

You are now logged in as " . $_SESSION['nickname'] . "

\n"; - echo "

Play now

\n"; - echo "

Log out

\n"; + if (isset($_GET['redirect']) && $_GET['redirect'] == "play") { + ?> + + You are now logged in as " . $_SESSION['nickname'] . "

\n"; + echo "

Play now

\n"; + echo "

Log out

\n"; + } } } diff --git a/src/webserver/play/index.php b/src/webserver/play/index.php index f0a7a6a..f5a6b02 100644 --- a/src/webserver/play/index.php +++ b/src/webserver/play/index.php @@ -1,5 +1,10 @@