aboutsummaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/src/server.rs27
-rw-r--r--server/src/state.rs3
2 files changed, 18 insertions, 12 deletions
diff --git a/server/src/server.rs b/server/src/server.rs
index 4c46a280..918058f8 100644
--- a/server/src/server.rs
+++ b/server/src/server.rs
@@ -472,17 +472,22 @@ impl Server {
self.game.players_spatial_index.remove_entry(player);
- // TODO if holding two, one is destroyed
- for item in p.items.into_iter().flatten() {
- let pos = p.movement.position.floor().as_ivec2();
- if let Some(tile) = self.game.tiles.get_mut(&pos)
- && tile.item.is_none()
- {
- self.packet_out.push_back(PacketC::SetItem {
- location: ItemLocation::Tile(pos),
- item: Some(item.kind),
- });
- tile.item = Some(item);
+ // ! if holding two, one is destroyed
+ for (hand, item) in p.items.into_iter().enumerate() {
+ if let Some(item) = item {
+ self.game
+ .item_locations_index
+ .remove(&ItemLocation::Player(player, Hand(hand)));
+ let pos = p.movement.position.floor().as_ivec2();
+ if let Some(tile) = self.game.tiles.get_mut(&pos)
+ && tile.item.is_none()
+ {
+ self.packet_out.push_back(PacketC::SetItem {
+ location: ItemLocation::Tile(pos),
+ item: Some(item.kind),
+ });
+ tile.item = Some(item);
+ }
}
}
self.packet_out
diff --git a/server/src/state.rs b/server/src/state.rs
index c9b7e8d4..1bddf33c 100644
--- a/server/src/state.rs
+++ b/server/src/state.rs
@@ -48,10 +48,11 @@ impl Server {
}
}
for cid in keepalive_kick {
- warn!("{cid} Client did not send keepalive in time");
+ info!("{cid} Client did not send keepalive in time");
self.disconnect(cid, Some(trm!("s.disconnect_reason.keepalive_timer")));
}
for (cid, pid) in inactivity_kick {
+ info!("{cid} Removing {pid} because of inactivity");
if let Some(conn) = self.connections.get(&cid) {
let _ = conn.replies.try_send(PacketC::ServerMessage {
message: trm!("s.leave_inactivity"),