- 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() {
// gRPC Client code
tonic_build::configure()
.build_server(false) // Generate gRPC client code
.build_server(false) // Generate gRPC server code?
.compile_well_known_types(true)
.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));
}

View File

@@ -26,11 +26,13 @@ pub(crate) async fn handle_char_list_req(stream: &mut TcpStream, packet: Packet,
debug!("{:?}", request);
let mut user_id = 0;
let session_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 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())?;
debug!("{:?}", request);
// if let Some(mut state) = connection_service.get_connection(&connection_id) {
// // state.user_id = Some(response.user_id.parse().unwrap());
// // state.session_id = Some(response.session_id);
// }
let session_id;
if let Some(mut state) = connection_service.get_connection(&connection_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 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())?;
debug!("{:?}", request);
let session_id;
if let Some(mut state) = connection_service.get_connection(&connection_id) {
// state.user_id = Some(response.user_id.parse().unwrap());
// state.session_id = Some(response.session_id);
session_id = state.session_id.expect("Missing session id in connection state");
}
// character_client.set_delete_character(request.is_delete, request.char_id, request.name);
let character_name = request.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);
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);
}