From fe14932f4f8e772648371f8634b0e0019168d379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=A4rtens?= Date: Wed, 4 Nov 2020 11:46:17 +0100 Subject: [PATCH] keep Presence when possesing --- server/src/events/interaction.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server/src/events/interaction.rs b/server/src/events/interaction.rs index 9a0cfcb32f..8d034bd177 100644 --- a/server/src/events/interaction.rs +++ b/server/src/events/interaction.rs @@ -1,4 +1,8 @@ -use crate::{client::Client, presence::RegionSubscription, Server}; +use crate::{ + client::Client, + presence::{Presence, RegionSubscription}, + Server, +}; use common::{ comp::{self, item, Pos}, consts::MAX_MOUNT_RANGE, @@ -127,12 +131,16 @@ pub fn handle_possess(server: &Server, possessor_uid: Uid, possesse_uid: Uid) { clients.insert(possesse, c).ok()?; //optional entities let mut players = ecs.write_storage::(); + let mut presence = ecs.write_storage::(); let mut subscriptions = ecs.write_storage::(); let mut admins = ecs.write_storage::(); let mut waypoints = ecs.write_storage::(); players .remove(possessor) .map(|p| players.insert(possesse, p).ok()?); + presence + .remove(possessor) + .map(|p| presence.insert(possesse, p).ok()?); subscriptions .remove(possessor) .map(|s| subscriptions.insert(possesse, s).ok()?);