This commit is contained in:
yoncodes
2025-10-28 21:21:28 -04:00
commit e58fd190b4
2962 changed files with 3063199 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
use bd2::prost::Message;
use bd2::proto::proto_net::{SaveUserPositionRequest, SaveUserPositionResponse};
use common::packet_code::PacketCodeType;
use crypto::network::GameResponse;
use sqlx::SqlitePool;
use tracing::info;
pub async fn handle(pool: &SqlitePool, uid: i64, req: SaveUserPositionRequest) -> GameResponse {
info!(
"Handling SaveUserPositionRequest: uid={}, pack_position={:?}",
uid, req.pack_position
);
if let Some(pos) = &req.pack_position {
if let Err(e) = sqlx::query(
r#"
INSERT INTO UserPosition (Uid, PackPosition)
VALUES (?, ?)
ON CONFLICT(Uid)
DO UPDATE SET PackPosition = excluded.PackPosition
"#,
)
.bind(uid)
.bind(pos)
.execute(pool)
.await
{
eprintln!("Failed to update position: {:?}", e);
}
}
let response = SaveUserPositionResponse {}; // no fields
let resp_bytes = response.encode_to_vec();
let (route, code) = PacketCodeType::SaveUserPosition.info();
GameResponse::success(route, &resp_bytes, code)
}