Browse Source

Fix player_piles

new_protocol
ThePerkinrex 5 years ago
parent
commit
a456ebc9b4
No known key found for this signature in database GPG Key ID: 1F45A7C4BFB41607
  1. 2
      server/src/db.rs
  2. 36
      server/src/server/game.rs

2
server/src/db.rs

@ -149,7 +149,7 @@ impl Db {
} }
// FIXME: return Results intead of crashing // FIXME: return Results intead of crashing
pub fn disconnect(&mut self, user: Uuid) { pub fn disconnect(&mut self, user: Uuid) {
// self.leave_lobby(user).await; self.leave_lobby(user);
log::info!("{} disconnecting", user); log::info!("{} disconnecting", user);
self.conn self.conn
.execute( .execute(

36
server/src/server/game.rs

@ -3,7 +3,11 @@ use crate::{db, games::Game};
use super::{ use super::{
client_id, client_id,
grpc::game::{game_server, message_status::Piles, CardKind, Image, MessageStatus}, grpc::game::{
game_server,
message_status::Piles,
CardKind, Image, MessageStatus,
},
}; };
pub use game_server::GameServer; pub use game_server::GameServer;
use tonic::{Response, Status}; use tonic::{Response, Status};
@ -144,7 +148,10 @@ impl game_server::Game for GameService {
names.push((conn.get_name_for_uuid(uuid.clone()).await, *id)) names.push((conn.get_name_for_uuid(uuid.clone()).await, *id))
} }
names.sort_by(|(_, a), (_, b)| a.cmp(b)); names.sort_by(|(_, a), (_, b)| a.cmp(b));
let names = names.into_iter().map(|(x, _)| super::grpc::common::Name {name: x}).collect(); let names = names
.into_iter()
.map(|(x, _)| super::grpc::common::Name { name: x })
.collect();
let status = MessageStatus { let status = MessageStatus {
current_turn: game.get_current_player(), current_turn: game.get_current_player(),
common_piles: Some(Piles { common_piles: Some(Piles {
@ -169,7 +176,30 @@ impl game_server::Game for GameService {
}) })
.collect(), .collect(),
}), }),
player_piles: vec![], player_piles: game
.player_piles.clone()
.into_iter()
.map(|piles| Piles {
piles: piles
.into_iter()
.map(|(k, v)| {
(
k,
super::grpc::game::message_status::Pile {
cards: v
.cards
.into_iter()
.map(|x| super::grpc::game::message_status::Card {
kind: Some(CardKind {kind: x}),
visible: true,
})
.collect(),
},
)
})
.collect(),
})
.collect(),
names, names,
}; };
Ok(Response::new(status)) Ok(Response::new(status))

Loading…
Cancel
Save