Don't send untranslated error messages to clients

This commit is contained in:
Ryan 2022-07-02 16:23:58 -07:00
parent 0c6ecc9c12
commit 985ecf3922
3 changed files with 18 additions and 10 deletions

View file

@ -163,7 +163,7 @@ impl Config for Game {
}
Event::Movement { position, .. } => {
if position.y <= 0.0 {
client.teleport(spawn_pos, client.pitch(), client.yaw());
client.teleport(spawn_pos, client.yaw(), client.pitch());
}
}
_ => {}

View file

@ -328,7 +328,7 @@ impl Client {
pub fn disconnect_no_reason(&mut self) {
if self.send.is_some() {
log::info!("disconnecting client '{}' (no reason)", self.username);
log::info!("disconnecting client '{}'", self.username);
self.send = None;
}
}
@ -456,12 +456,16 @@ impl Client {
C2sPlayPacket::KeepAlive(p) => {
let last_keepalive_id = self.last_keepalive_id;
if self.got_keepalive {
self.disconnect("Unexpected keepalive");
log::warn!("unexpected keepalive from player {}", self.username());
self.disconnect_no_reason();
} else if p.id != last_keepalive_id {
self.disconnect(format!(
"Keepalive ids don't match (expected {}, got {})",
last_keepalive_id, p.id
));
log::warn!(
"keepalive ids for player {} don't match (expected {}, got {})",
self.username(),
last_keepalive_id,
p.id
);
self.disconnect_no_reason();
} else {
self.got_keepalive = true;
}
@ -610,7 +614,7 @@ impl Client {
});
}
meta.player_list().packets(|pkt| self.send_packet(pkt));
meta.player_list().diff_packets(|pkt| self.send_packet(pkt));
}
// Update the players spawn position (compass position)
@ -641,7 +645,11 @@ impl Client {
self.last_keepalive_id = id;
self.got_keepalive = false;
} else {
self.disconnect("Timed out (no keepalive response)");
log::warn!(
"player {} timed out (no keepalive response)",
self.username()
);
self.disconnect_no_reason();
}
}

View file

@ -157,7 +157,7 @@ impl PlayerList {
}
}
pub(crate) fn packets(&self, mut packet: impl FnMut(S2cPlayPacket)) {
pub(crate) fn diff_packets(&self, mut packet: impl FnMut(S2cPlayPacket)) {
if !self.removed.is_empty() {
packet(PlayerInfo::RemovePlayer(self.removed.iter().cloned().collect()).into());
}