mirror of
https://github.com/yoncodes/BD2PS.git
synced 2026-08-05 06:12:14 +02:00
changed file section
This commit is contained in:
54
gameserver/src/logic/game/active/active_map.rs
Normal file
54
gameserver/src/logic/game/active/active_map.rs
Normal file
@@ -0,0 +1,54 @@
|
||||
use bd2::prost::Message;
|
||||
use bd2::proto::proto_net::{ActiveMapRequest, ActiveMapResponse, Notify};
|
||||
use common::packet_code::PacketCodeType;
|
||||
use crypto::network::GameResponse;
|
||||
use database::db::map::map_active_info::add_map_active_info;
|
||||
use database::models::game::map_active_info::MapActiveInfo;
|
||||
use serde_json::to_string;
|
||||
use sqlx::SqlitePool;
|
||||
use tracing::info;
|
||||
|
||||
pub async fn handle(pool: &SqlitePool, uid: i64, req: ActiveMapRequest) -> GameResponse {
|
||||
info!("Handling ActiveMapRequest: {:?}", req);
|
||||
|
||||
let active_info_json = to_string(&req.active_info).unwrap_or_else(|_| "[]".to_string());
|
||||
|
||||
if let Some(id) = req.map_id {
|
||||
let record = MapActiveInfo {
|
||||
index: 0, // autoincrement
|
||||
uid,
|
||||
map_id: Some(id),
|
||||
active_info: active_info_json,
|
||||
};
|
||||
|
||||
if let Err(e) = add_map_active_info(pool, &record).await {
|
||||
eprintln!(
|
||||
"Failed to insert active_info {} for uid {}: {:?}",
|
||||
id, uid, e
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
let response = ActiveMapResponse {
|
||||
// TODO: Fill in response fields
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let resp_bytes = response.encode_to_vec();
|
||||
|
||||
let notify = Notify {
|
||||
achievement_update_info: vec![],
|
||||
mission_update_info: vec![],
|
||||
event_mission_update_info: vec![],
|
||||
active_login_event: vec![1, 2, 625, 626, 627],
|
||||
active_contents_info: vec![],
|
||||
ll_type: Some("".to_string()),
|
||||
is_purchasing_disabled: Some(false),
|
||||
maintenance_start_date: Some(1688646600000),
|
||||
notice_last_seq: Some(8818),
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let (route, code) = PacketCodeType::Common.info();
|
||||
GameResponse::success(route, &resp_bytes, code).with_notify(¬ify)
|
||||
}
|
||||
Reference in New Issue
Block a user