- update: packet server character handler
- add: character grpc client interface to packet service
This commit is contained in:
@@ -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));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user