- update: packet server character handler

- add: character grpc client interface to packet service
This commit is contained in:
2024-12-27 19:00:06 -05:00
parent f99fda9e1a
commit 17f653c629
2 changed files with 16 additions and 12 deletions

View File

@@ -1,9 +1,9 @@
fn main() { fn main() {
// gRPC Client code // gRPC Client code
tonic_build::configure() tonic_build::configure()
.build_server(false) // Generate gRPC client code .build_server(false) // Generate gRPC server code?
.compile_well_known_types(true) .compile_well_known_types(true)
.type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]") .type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]")
.compile_protos(&["../proto/auth.proto"], &["../proto"]) .compile_protos(&["../proto/auth.proto", "../proto/character.proto"], &["../proto"])
.unwrap_or_else(|e| panic!("Failed to compile protos {:?}", e)); .unwrap_or_else(|e| panic!("Failed to compile protos {:?}", e));
} }

View File

@@ -26,11 +26,13 @@ pub(crate) async fn handle_char_list_req(stream: &mut TcpStream, packet: Packet,
debug!("{:?}", request); debug!("{:?}", request);
let mut user_id = 0; let mut user_id = 0;
let session_id;
if let Some(mut state) = connection_service.get_connection(&connection_id) { if let Some(mut state) = connection_service.get_connection(&connection_id) {
user_id = state.user_id.expect("Missing user id in connection"); user_id = state.user_id.expect("Missing user id in connection state");
session_id = state.session_id.expect("Missing session id in connection state");
} }
// query the database for the character to this user // query the character service for the character list for this user
let data = SrvCharListReply { characters: vec![] }; let data = SrvCharListReply { characters: vec![] };
let response_packet = Packet::new(PacketType::PakccCharListReply, &data)?; let response_packet = Packet::new(PacketType::PakccCharListReply, &data)?;
@@ -43,10 +45,12 @@ pub(crate) async fn handle_create_char_req(stream: &mut TcpStream, packet: Packe
let request = CliCreateCharReq::decode(packet.payload.as_slice())?; let request = CliCreateCharReq::decode(packet.payload.as_slice())?;
debug!("{:?}", request); debug!("{:?}", request);
// if let Some(mut state) = connection_service.get_connection(&connection_id) { let session_id;
// // state.user_id = Some(response.user_id.parse().unwrap()); if let Some(mut state) = connection_service.get_connection(&connection_id) {
// // state.session_id = Some(response.session_id); session_id = state.session_id.expect("Missing session id in connection state");
// } }
// send the data to the character service to create the character
let data = SrvCreateCharReply { result: srv_create_char_reply::Result::Ok, platininum: 0 }; let data = SrvCreateCharReply { result: srv_create_char_reply::Result::Ok, platininum: 0 };
let response_packet = Packet::new(PacketType::PakccCreateCharReply, &data)?; let response_packet = Packet::new(PacketType::PakccCreateCharReply, &data)?;
@@ -59,10 +63,12 @@ pub(crate) async fn handle_delete_char_req(stream: &mut TcpStream, packet: Packe
let request = CliDeleteCharReq::decode(packet.payload.as_slice())?; let request = CliDeleteCharReq::decode(packet.payload.as_slice())?;
debug!("{:?}", request); debug!("{:?}", request);
let session_id;
if let Some(mut state) = connection_service.get_connection(&connection_id) { if let Some(mut state) = connection_service.get_connection(&connection_id) {
// state.user_id = Some(response.user_id.parse().unwrap()); session_id = state.session_id.expect("Missing session id in connection state");
// state.session_id = Some(response.session_id);
} }
// character_client.set_delete_character(request.is_delete, request.char_id, request.name);
let character_name = request.name; let character_name = request.name;
let data = SrvDeleteCharReply { remaining_time: 0, name: character_name }; let data = SrvDeleteCharReply { remaining_time: 0, name: character_name };
@@ -77,8 +83,6 @@ pub(crate) async fn handle_select_char_req(stream: &mut TcpStream, packet: Packe
debug!("{:?}", request); debug!("{:?}", request);
if let Some(mut state) = connection_service.get_connection_mut(&connection_id) { if let Some(mut state) = connection_service.get_connection_mut(&connection_id) {
// state.user_id = Some(response.user_id.parse().unwrap());
// state.session_id = Some(response.session_id);
state.character_id = Some(request.char_id as i8); state.character_id = Some(request.char_id as i8);
} }