summaryrefslogtreecommitdiff
path: root/server/src/server.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-10-13 22:21:44 +0200
committermetamuffin <metamuffin@disroot.org>2024-10-13 22:21:44 +0200
commit8300b2f1853e026a2c3d5d1aa40a185341deba47 (patch)
tree5fe814992e917ea1a06c2e9faf1fd72bf5bb097b /server/src/server.rs
parent21a9b4087b6612383ee4beb16c2576a4eeb6b38f (diff)
downloadhurrycurry-8300b2f1853e026a2c3d5d1aa40a185341deba47.tar
hurrycurry-8300b2f1853e026a2c3d5d1aa40a185341deba47.tar.bz2
hurrycurry-8300b2f1853e026a2c3d5d1aa40a185341deba47.tar.zst
fix compile for new rust nightly
Diffstat (limited to 'server/src/server.rs')
-rw-r--r--server/src/server.rs19
1 files changed, 12 insertions, 7 deletions
diff --git a/server/src/server.rs b/server/src/server.rs
index d8470fb8..18f78fc0 100644
--- a/server/src/server.rs
+++ b/server/src/server.rs
@@ -498,11 +498,14 @@ impl Server {
};
if let Some(base_pid) = other_pid {
- let [other, this] = self
- .game
- .players
- .get_many_mut([&pid, &base_pid])
- .ok_or(tre!("s.error.self_interact"))?;
+ if pid == base_pid {
+ return Err(tre!("s.error.self_interact"));
+ }
+ let [Some(other), Some(this)] =
+ self.game.players.get_many_mut([&pid, &base_pid])
+ else {
+ return Err(tre!("s.error.self_interact"));
+ };
if this.class == PlayerClass::Customer || other.class == PlayerClass::Customer {
return Err(tre!("s.error.customer_interact"));
@@ -633,8 +636,10 @@ impl Server {
self.game
.players_spatial_index
.query(pos1, 2., |p2, _pos2| {
- if let Some([a, b]) = self.game.players.get_many_mut([&p1, &p2]) {
- a.movement.collide(&mut b.movement, dt)
+ if p1 != p2 {
+ if let [Some(a), Some(b)] = self.game.players.get_many_mut([&p1, &p2]) {
+ a.movement.collide(&mut b.movement, dt)
+ }
}
})
});