M client/src/cfg/mod.rs => client/src/cfg/mod.rs +3 -0
@@ 47,6 47,8 @@ impl Default for CfgSettings {
pub struct CfgUser {
/// User logged in status
pub logged_in: bool,
+ /// User ID
+ pub id: String,
/// Username
pub username: String,
/// User Session Cookie
@@ 57,6 59,7 @@ impl Default for CfgUser {
fn default() -> Self {
CfgUser {
logged_in: false,
+ id: "".to_string(),
username: "".to_string(),
cookie: "".to_string(),
}
M => +11 -11
@@ 167,28 167,28 @@ fn browse_forming(ui: &mut egui::Ui, data: &mut PlayScreenData, cfg_user: &CfgUs
.inner_margin(4.)
.show(ui, |ui| {
ui.horizontal(|ui| {
ui.label(format!("Host: {}", game.host.username));
//ui.label(format!("Host: {}", game.host.username));
ui.label("Host: host-username-here");
ui.with_layout(
egui::Layout::right_to_left(egui::Align::Center),
|ui| {
if game.guest_id == cfg_user.id {
if game.guest_id.unwrap_or_default().to_string() == cfg_user.id
{
ui.add_enabled(false, egui::Button::new("Joined"));
if ui.button("Inspect").clicked() {
rtdmenu.cur_game = Some(game.clone());
rtdmenu.play_menu_ui_state =
PlayMenuUIState::InLobbyGuest;
data.cur_game = Some(game.clone());
data.state = PlayScreenState::InLobbyGuest;
}
} else if game.host_id == cfg_user.id {
} else if game.host_id.to_string() == cfg_user.id {
ui.add_enabled(false, egui::Button::new("Host"));
if ui.button("Inspect").clicked() {
rtdmenu.cur_game = Some(game.clone());
rtdmenu.play_menu_ui_state =
PlayMenuUIState::InLobbyHost;
data.cur_game = Some(game.clone());
data.state = PlayScreenState::InLobbyHost;
}
} else {
if ui.button("Join").clicked() {
rtdmenu.cur_game = Some(game.clone());
joingame_ev_w.send(JoinGameEvent);
//data.cur_game = Some(game.clone());
//joingame_ev_w.send(JoinGameEvent);
}
}
},
M client/src/plugins/networking/systems/events/receive/mod.rs => client/src/plugins/networking/systems/events/receive/mod.rs +1 -0
@@ 66,6 66,7 @@ pub fn message_events(
// TODO: move handling to a separate function?
// save details from AfterAuth
+ cfg_user.id = aa_message.id;
cfg_user.username = aa_message.username;
cfg_user.cookie = aa_message.cookie;
M server/src/main.rs => server/src/main.rs +2 -2
@@ 15,7 15,7 @@ use bevy_log::{info, LogPlugin};
use naia_bevy_server::{Plugin as ServerPlugin, ReceiveEvents, ServerConfig, UserKey};
-use laurelin_shared::server::protocol::protocol;
+use laurelin_shared::{server::protocol::protocol, types::user::UserPub};
mod systems;
@@ 27,7 27,7 @@ pub struct Config {
/// Temporary runtime data
#[derive(Resource)]
pub struct RuntimeTemp {
- pub afterauth_details: HashMap<UserKey, (String, String)>,
+ pub afterauth_details: HashMap<UserKey, (UserPub, String)>,
}
#[derive(Resource)]
M server/src/systems/event/mod.rs => server/src/systems/event/mod.rs +4 -3
@@ 50,7 50,7 @@ pub(crate) fn auth_events(
ResponseRegister::Ok(user) => {
server.accept_connection(&user_key);
temp.afterauth_details
- .insert(user_key, (user.username, wrapped.cookie));
+ .insert(user_key, (user, wrapped.cookie));
}
}
}
@@ 62,7 62,7 @@ pub(crate) fn auth_events(
ResponseLogin::Ok(user) => {
server.accept_connection(&user_key);
temp.afterauth_details
- .insert(user_key, (user.username, wrapped.cookie));
+ .insert(user_key, (user, wrapped.cookie));
}
}
}
@@ 86,7 86,8 @@ pub(crate) fn connect_events(
server.send_message::<AfterAuthChannel, AfterAuth>(
&user_key,
&AfterAuth {
- username: aa_details.0.clone(),
+ id: aa_details.0.id.to_string().clone(),
+ username: aa_details.0.username.clone(),
cookie: aa_details.1.clone(),
},
);
M shared/src/server/messages/auth.rs => shared/src/server/messages/auth.rs +3 -1
@@ 30,13 30,15 @@ impl Auth {
pub struct AfterAuth {
pub cookie: String,
pub username: String,
+ pub id: String,
}
impl AfterAuth {
- pub fn new(cookie: &str, username: &str) -> Self {
+ pub fn new(cookie: &str, username: &str, id: &str) -> Self {
Self {
cookie: cookie.to_string(),
username: username.to_string(),
+ id: id.to_string(),
}
}
}