JaneDoe-ZS/nap_gameserver/src/handlers/client_systems.rs
xeon 99123a15ef newtype fun
use newtypes for template ids, pros:
1) enforces id validation
2) ease of use (helper method for getting template struct right away)
2024-07-25 01:24:48 +03:00

159 lines
4.5 KiB
Rust

use crate::logic::{EOperator, ESystem};
use super::*;
use data::tables;
pub async fn on_get_tips_info(
_session: &NetSession,
_player: &mut Player,
req: GetTipsInfoCsReq,
) -> NetResult<GetTipsInfoScRsp> {
Ok(GetTipsInfoScRsp {
retcode: Retcode::RetSucc.into(),
tips_info: Some(TipsInfo::default()),
ofolagfmcmo: req.ofolagfmcmo, // tips group type
})
}
pub async fn on_get_client_systems_info(
_session: &NetSession,
player: &mut Player,
_req: GetClientSystemsInfoCsReq,
) -> NetResult<GetClientSystemsInfoScRsp> {
Ok(GetClientSystemsInfoScRsp {
retcode: Retcode::RetSucc.into(),
info: Some(ClientSystemsInfo {
post_girl_data: Some(PostGirlData {
selected_post_girl_id_list: tables::post_girl_config_template_tb::iter()
.map(|template| template.id.value())
.collect(),
post_girl_list: tables::post_girl_config_template_tb::iter()
.map(|template| PostGirlItem {
template_id: template.id.value(),
unlock_time: 1000,
})
.collect(),
..Default::default()
}),
unlock_data: Some(player.lock_model.to_client()),
hbhfjgbahgf: Some(Aboegnnepmi::default()),
..Default::default()
}),
})
}
pub async fn on_get_news_stand_data(
_session: &NetSession,
_player: &mut Player,
_req: GetNewsStandDataCsReq,
) -> NetResult<GetNewsStandDataScRsp> {
Ok(GetNewsStandDataScRsp {
retcode: Retcode::RetSucc.into(),
news_stand_data: Some(NewsStandData::default()),
})
}
pub async fn on_get_trashbin_hermit_data(
_session: &NetSession,
_player: &mut Player,
_req: GetTrashbinHermitDataCsReq,
) -> NetResult<GetTrashbinHermitDataScRsp> {
Ok(GetTrashbinHermitDataScRsp {
retcode: Retcode::RetSucc.into(),
trashbin_hermit_data: Some(TrashbinHermitData::default()),
})
}
pub async fn on_get_exploration_data(
_session: &NetSession,
_player: &mut Player,
_req: GetExplorationDataCsReq,
) -> NetResult<GetExplorationDataScRsp> {
Ok(GetExplorationDataScRsp {
retcode: Retcode::RetSucc.into(),
..Default::default()
})
}
pub async fn on_report_ui_layout_platform(
_session: &NetSession,
_player: &mut Player,
_req: ReportUiLayoutPlatformCsReq,
) -> NetResult<ReportUiLayoutPlatformScRsp> {
Ok(ReportUiLayoutPlatformScRsp {
retcode: Retcode::RetSucc.into(),
})
}
pub async fn on_unlock_newbie_group(
_session: &NetSession,
_player: &mut Player,
req: UnlockNewbieGroupCsReq,
) -> NetResult<UnlockNewbieGroupScRsp> {
Ok(UnlockNewbieGroupScRsp {
retcode: Retcode::RetSucc.into(),
group_id: req.group_id,
})
}
pub async fn on_battle_report(
_session: &NetSession,
_player: &mut Player,
_req: BattleReportCsReq,
) -> NetResult<BattleReportScRsp> {
Ok(BattleReportScRsp {
retcode: Retcode::RetSucc.into(),
})
}
pub async fn on_player_operation(
_session: &NetSession,
_player: &mut Player,
req: PlayerOperationCsReq,
) -> NetResult<PlayerOperationScRsp> {
tracing::info!(
"PlayerOperation(system={:?}, operator={:?}, param={})",
ESystem::from(req.system),
EOperator::from(req.operator),
req.param
);
Ok(PlayerOperationScRsp {
retcode: Retcode::RetSucc.into(),
})
}
pub async fn on_pop_up_window_seen(
_session: &NetSession,
_player: &mut Player,
req: PopUpWindowSeenCsReq,
) -> NetResult<PopUpWindowSeenScRsp> {
Ok(PopUpWindowSeenScRsp {
retcode: Retcode::RetSucc.into(),
popup_group_id_list: req.popup_group_id_list,
})
}
pub async fn on_report_system_settings_change(
_session: &NetSession,
_player: &mut Player,
req: ReportSystemSettingsChangeCsReq,
) -> NetResult<ReportSystemSettingsChangeScRsp> {
tracing::info!("system settings change {req:?}");
Ok(ReportSystemSettingsChangeScRsp {
retcode: Retcode::RetSucc.into(),
})
}
pub async fn on_interact_with_scene_object(
_session: &NetSession,
_player: &mut Player,
_req: InteractWithSceneObjectCsReq,
) -> NetResult<InteractWithSceneObjectScRsp> {
// this request is used for interaction with STATIC scene objects (not controlled by server, e.g. door in workshop)
Ok(InteractWithSceneObjectScRsp {
retcode: Retcode::RetSucc.into(),
})
}