aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-06-25 23:52:32 +0200
committermetamuffin <metamuffin@disroot.org>2024-06-25 23:52:32 +0200
commit9cd92ce6266bfe7be6a44e3985ee49f959f88e16 (patch)
treea5d524407f217ee15f3e1cf0d745171c67d2c78b
parentab6279e726ac7e10a4c5211a3d3827471fd35ccf (diff)
downloadhurrycurry-9cd92ce6266bfe7be6a44e3985ee49f959f88e16.tar
hurrycurry-9cd92ce6266bfe7be6a44e3985ee49f959f88e16.tar.bz2
hurrycurry-9cd92ce6266bfe7be6a44e3985ee49f959f88e16.tar.zst
dont add players twice on map change
-rw-r--r--server/src/game.rs15
1 files changed, 13 insertions, 2 deletions
diff --git a/server/src/game.rs b/server/src/game.rs
index c0a03616..48427ba1 100644
--- a/server/src/game.rs
+++ b/server/src/game.rs
@@ -92,6 +92,7 @@ impl Game {
let players = self
.players
.iter()
+ .filter(|(id, _)| id.0 >= 0)
.map(|(id, p)| (*id, (p.name.to_owned(), p.character)))
.collect::<HashMap<_, _>>();
@@ -111,8 +112,18 @@ impl Game {
);
}
for (id, (name, character)) in players {
- self.packet_in(id, PacketS::Join { name, character })
- .unwrap();
+ self.players.insert(
+ id,
+ Player {
+ item: None,
+ last_position_ts: Instant::now(),
+ character,
+ position: self.data.chef_spawn,
+ communicate: None,
+ interacting: None,
+ name: name.clone(),
+ },
+ );
}
self.packet_out.extend(self.prime_client());