query("SELECT UUID() AS id"); if (!$result) { http_response_code(500); echo json_encode(["error" => "Failed to generate UUID"]); break; } $row = $result->fetch_assoc(); $sessionId = $row['id']; // Insert into `sessions` table $stmt = $DB->prepare("INSERT INTO `sessions` (`ID`, `timestamp`, 'version') VALUES (?, CURRENT_TIMESTAMP(), 0)"); $stmt->bind_param("s", $sessionId); if (!$stmt->execute()) { http_response_code(500); echo json_encode(["error" => "Failed to insert into sessions"]); break; } $stmt->close(); // Prepare data as JSON and insert into `data` table if($jsx['type'] == "json") { $data = json_encode($jsx['data']); }else if($jsx ['type'] == "nbt") { $data = base64_decode($jsx['data']); } $stmt = $DB->prepare("INSERT INTO `data` (`ID`, `SessionData`) VALUES (?, ?)"); $null = NULL; // Required for bind_param with blob $stmt->bind_param("sb", $sessionId, $null); // Temporarily bind $null for blob // Send the actual blob content using send_long_data $stmt->send_long_data(1, $data); // Index 1 refers to the second "?" in bind_param if (!$stmt->execute()) { http_response_code(500); echo json_encode(["error" => "Failed to insert into data"]); break; } $stmt->close(); return $sessionId; } switch($jsx['cmd']) { case "create": { $session = create($DB, $jsx, false); echo json_encode(["status" => "ok", "session" => $sessionId]); break; } // Not AI Generated case "createv2": { $session = create($DB, $jsx, true); echo json_encode(["status" => "created", "session" => $sessionId]); break; } // Not AI Generated case "get_version": { $sessionId = $jsx['id']; $stmt = $DB->prepare("SELECT `version` FROM `sessions` WHERE `ID` = ?"); $stmt->bind_param("s", $sessionId); $stmt->execute(); $stmt->store_result(); if($stmt->num_rows === 0) { http_response_code(418); echo json_encode({"error" => "Session not found"}); $stmt->close(); break; } $stmt->bind_result($version); $stmt->fetch(); $stmt->close(); echo json_encode({"status" => "version_back", "version" => $version}); break; } case "get": { $sessionId = $jsx['id']; $stmt = $DB->prepare("SELECT `SessionData` FROM `data` WHERE `ID` = ?"); $stmt->bind_param("s", $sessionId); $stmt->execute(); $stmt->store_result(); if ($stmt->num_rows === 0) { http_response_code(404); echo json_encode({"error" => "Session not found"}); $stmt->close(); break; } $stmt->bind_result($sessionData); $stmt->fetch(); $stmt->close(); // Decode the JSON blob (optional — if you want raw JSON output) $testDecoded = json_decode($sessionData, true); if(json_last_error() == JSON_ERROR_NONE) { header("Content-Type: application/json"); die($sessionData); }else { header("Content-Type: application/nbt"); die(base64_encode($sessionData)); //die($sessionData); } break; } } ?>