aboutsummaryrefslogtreecommitdiff
path: root/server/registry
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-12-23 11:47:34 +0100
committermetamuffin <metamuffin@disroot.org>2024-12-23 11:47:34 +0100
commit6ddb571e02dc04b1125669135eab5731523e8f73 (patch)
tree33374f4f6a97455127e632ff44958414538b8202 /server/registry
parentcc175b0f605c55c1d98f0889d099433c36141e9b (diff)
downloadhurrycurry-6ddb571e02dc04b1125669135eab5731523e8f73.tar
hurrycurry-6ddb571e02dc04b1125669135eab5731523e8f73.tar.bz2
hurrycurry-6ddb571e02dc04b1125669135eab5731523e8f73.tar.zst
Fix bug where registry lobby would forget joined state every packet
Diffstat (limited to 'server/registry')
-rw-r--r--server/registry/src/lobby.rs12
1 files changed, 7 insertions, 5 deletions
diff --git a/server/registry/src/lobby.rs b/server/registry/src/lobby.rs
index 7f2387b8..f8f5f1f2 100644
--- a/server/registry/src/lobby.rs
+++ b/server/registry/src/lobby.rs
@@ -97,7 +97,12 @@ async fn handle_conn(sock: TcpStream, addr: SocketAddr, entries: &[Entry]) -> Re
});
let (mut write, mut read) = sock.split();
-
+
+ let mut joined = false;
+ let mut redirected = false;
+ let mut movement = MovementBase::new(Vec2::ZERO);
+ let mut last_movement = Instant::now();
+
loop {
for p in out.drain(..) {
write
@@ -122,10 +127,6 @@ async fn handle_conn(sock: TcpStream, addr: SocketAddr, entries: &[Entry]) -> Re
_ => continue,
};
- let mut joined = false;
- let mut redirected = false;
- let mut movement = MovementBase::new(Vec2::ZERO);
- let mut last_movement = Instant::now();
match packet {
PacketS::Join {
character, name, ..
@@ -174,6 +175,7 @@ async fn handle_conn(sock: TcpStream, addr: SocketAddr, entries: &[Entry]) -> Re
out.push(PacketC::Redirect {
uri: e.address.clone(),
});
+ break;
}
}
}