Merge branch 'songtronix/fix-517' into 'master'

fix #517

Closes #517

See merge request veloren/veloren!842
This commit is contained in:
Imbris 2020-03-09 23:25:04 +00:00
commit 5598fe7166
2 changed files with 11 additions and 2 deletions

View File

@ -1,7 +1,8 @@
use super::Event;
use crate::{client::Client, Server, StateExt};
use crate::{auth_provider::AuthProvider, client::Client, Server, StateExt};
use common::{
comp,
comp::Player,
msg::{ClientState, PlayerListUpdate, ServerMsg},
sync::{Uid, UidAllocator},
};
@ -51,6 +52,15 @@ pub fn handle_client_disconnect(server: &mut Server, entity: EcsEntity) -> Event
)))
}
// Make sure to remove the player from the logged in list. (See AuthProvider)
{
let players = state.ecs().read_storage::<Player>();
let mut accounts = state.ecs().write_resource::<AuthProvider>();
if let Some(player) = players.get(entity) {
accounts.logout(player.uuid());
}
}
// Delete client entity
if let Err(err) = state.delete_entity_recorded(entity) {
error!("Failed to delete disconnected client: {:?}", err);

View File

@ -300,7 +300,6 @@ impl<'a> System<'a> for Sys {
None,
ServerMsg::broadcast(format!("{} went offline.", &player.alias)),
));
accounts.logout(player.uuid());
}
server_emitter.emit(ServerEvent::ClientDisconnect(entity));
client.postbox.send_message(ServerMsg::Disconnect);