summaryrefslogtreecommitdiff
path: root/server/src/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/server.rs')
-rw-r--r--server/src/server.rs38
1 files changed, 19 insertions, 19 deletions
diff --git a/server/src/server.rs b/server/src/server.rs
index 848e2bb4..c9961412 100644
--- a/server/src/server.rs
+++ b/server/src/server.rs
@@ -20,9 +20,9 @@ use crate::{
entity::{Entities, EntityContext},
interaction::{interact, tick_slot},
scoreboard::ScoreboardStore,
- ConnectionID,
+ tre, ConnectionID, TrError,
};
-use anyhow::{anyhow, bail, Context, Result};
+use anyhow::{Context, Result};
use hurrycurry_client_lib::{Game, Involvement, Item, Player, Tile};
use hurrycurry_protocol::{
glam::{IVec2, Vec2},
@@ -341,7 +341,11 @@ impl Server {
self.entities = entities;
}
- pub fn packet_in(&mut self, packet: PacketS, replies: &mut Vec<PacketC>) -> Result<()> {
+ pub fn packet_in(
+ &mut self,
+ packet: PacketS,
+ replies: &mut Vec<PacketC>,
+ ) -> Result<(), TrError> {
match packet {
PacketS::Join {
name,
@@ -362,7 +366,7 @@ impl Server {
.game
.players
.remove(&player)
- .ok_or(anyhow!("player does not exist"))?;
+ .ok_or(tre!("s.error.no_player"))?;
self.game.players_spatial_index.remove_entry(player);
@@ -394,7 +398,7 @@ impl Server {
.game
.players
.get_mut(&player)
- .ok_or(anyhow!("player does not exist"))?;
+ .ok_or(tre!("s.error.no_player"))?;
pd.movement.input(direction, boost);
@@ -437,25 +441,25 @@ impl Server {
.game
.players
.get_mut(&pid)
- .ok_or(anyhow!("player does not exist"))?;
+ .ok_or(tre!("s.error.no_player"))?;
let (pos, edge) = match (pos, player.interacting) {
(None, None) => return Ok(()), // this is silent because of auto release
(None, Some(pos)) => (pos, false),
(Some(pos), None) => (pos, true),
- (Some(_), Some(_)) => bail!("already interacting"),
+ (Some(_), Some(_)) => return Err(tre!("s.error.already_interacting")),
};
let entpos = pos.as_vec2() + Vec2::splat(0.5);
if edge && entpos.distance(player.movement.position) > 2. {
- bail!("interacting too far from player");
+ return Err(tre!("s.error.interacting_too_far"));
}
let tile = self
.game
.tiles
.get_mut(&pos)
- .ok_or(anyhow!("tile does not exist"))?;
+ .ok_or(tre!("s.error.no_tile"))?;
// No going back from here on
@@ -476,10 +480,10 @@ impl Server {
.game
.players
.get_many_mut([&pid, &base_pid])
- .ok_or(anyhow!("Interacting with yourself. This is impossible."))?;
+ .ok_or(tre!("s.error.self_interact"))?;
if this.character < 0 || other.character < 0 {
- bail!("You shall not interact with customers.")
+ return Err(tre!("s.error.customer_interact"));
}
interact(
@@ -501,7 +505,7 @@ impl Server {
.game
.players
.get_mut(&pid)
- .ok_or(anyhow!("The player does not exist"))?;
+ .ok_or(tre!("s.error.no_player"))?;
interact(
&self.game.data,
@@ -548,11 +552,7 @@ impl Server {
})
}
PacketS::ReplaceHand { item, player } => {
- let pdata = self
- .game
- .players
- .get_mut(&player)
- .ok_or(anyhow!("The player does not exist"))?;
+ let pdata = self.game.players.get_mut(&player).ok_or(tre!(""))?;
pdata.item = item.map(|i| Item {
kind: i,
active: None,
@@ -568,7 +568,7 @@ impl Server {
self.game.score.points += score.points;
self.score_changed = true;
}
- PacketS::ReplayTick { .. } => bail!("Packet not supported in this session"),
+ PacketS::ReplayTick { .. } => return Err(tre!("s.error.packet_not_supported")),
}
Ok(())
}
@@ -681,7 +681,7 @@ impl Server {
while let Some(p) = self.packet_loopback.pop_front() {
if let Err(e) = self.packet_in(p, &mut vec![]) {
- warn!("Internal packet errored: {e}");
+ warn!("Internal packet errored: {e:?}");
}
}