aboutsummaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-06-03 20:00:18 +0200
committermetamuffin <metamuffin@disroot.org>2025-06-03 20:00:18 +0200
commitdb4587d3ec64b7e28691b43f9d9701939eed94d1 (patch)
tree1005017ea4a5d4e287024eaf08f876c7e34bfbdb /server/src
parent9ee7eef2919feffe4e0695494d4027e8ec011808 (diff)
downloadhurrycurry-db4587d3ec64b7e28691b43f9d9701939eed94d1.tar
hurrycurry-db4587d3ec64b7e28691b43f9d9701939eed94d1.tar.bz2
hurrycurry-db4587d3ec64b7e28691b43f9d9701939eed94d1.tar.zst
update rust toolchain and rust dependencies.
`map_many_mut` and `trait_upcasting` was stabilized.
Diffstat (limited to 'server/src')
-rw-r--r--server/src/entity/conveyor.rs3
-rw-r--r--server/src/entity/item_portal.rs2
-rw-r--r--server/src/lib.rs9
-rw-r--r--server/src/main.rs10
-rw-r--r--server/src/scoreboard.rs8
-rw-r--r--server/src/server.rs4
6 files changed, 17 insertions, 19 deletions
diff --git a/server/src/entity/conveyor.rs b/server/src/entity/conveyor.rs
index 6177ba9c..4c50365d 100644
--- a/server/src/entity/conveyor.rs
+++ b/server/src/entity/conveyor.rs
@@ -65,7 +65,8 @@ impl Entity for Conveyor {
if self.from == self.to {
bail!("conveyor does ends in itself")
}
- let [Some(from), Some(to)] = c.game.tiles.get_many_mut([&self.from, &self.to]) else {
+ let [Some(from), Some(to)] = c.game.tiles.get_disjoint_mut([&self.from, &self.to])
+ else {
bail!("at least one conveyor end not on map");
};
diff --git a/server/src/entity/item_portal.rs b/server/src/entity/item_portal.rs
index 3ea33fa6..ef73e6ec 100644
--- a/server/src/entity/item_portal.rs
+++ b/server/src/entity/item_portal.rs
@@ -31,7 +31,7 @@ impl Entity for ItemPortal {
if self.from == self.to {
bail!("item portal ends in itself")
}
- let [Some(from), Some(to)] = c.game.tiles.get_many_mut([&self.from, &self.to]) else {
+ let [Some(from), Some(to)] = c.game.tiles.get_disjoint_mut([&self.from, &self.to]) else {
bail!("at least one item portal end not on map");
};
diff --git a/server/src/lib.rs b/server/src/lib.rs
index 9fba35ce..372b0b62 100644
--- a/server/src/lib.rs
+++ b/server/src/lib.rs
@@ -15,14 +15,7 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-#![feature(
- if_let_guard,
- map_many_mut,
- let_chains,
- iterator_try_collect,
- trait_upcasting,
- stmt_expr_attributes
-)]
+#![feature(if_let_guard, let_chains, iterator_try_collect, stmt_expr_attributes)]
pub mod commands;
pub mod data;
pub mod entity;
diff --git a/server/src/main.rs b/server/src/main.rs
index b1dc503b..cc5bcb52 100644
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -206,7 +206,7 @@ async fn run(args: Args) -> anyhow::Result<()> {
for p in init {
if let Err(e) = write
.send(tokio_tungstenite::tungstenite::Message::Text(
- serde_json::to_string(&p).unwrap(),
+ serde_json::to_string(&p).unwrap().into(),
))
.await
{
@@ -233,9 +233,13 @@ async fn run(args: Args) -> anyhow::Result<()> {
break;
};
let message = if supports_binary.load(Ordering::Relaxed) {
- Message::Binary(bincode::encode_to_vec(&packet, BINCODE_CONFIG).unwrap())
+ Message::Binary(
+ bincode::encode_to_vec(&packet, BINCODE_CONFIG)
+ .unwrap()
+ .into(),
+ )
} else {
- Message::Text(serde_json::to_string(&packet).unwrap())
+ Message::Text(serde_json::to_string(&packet).unwrap().into())
};
if let Err(e) = write.send(message).await {
warn!("WebSocket error: {e}");
diff --git a/server/src/scoreboard.rs b/server/src/scoreboard.rs
index f61b3001..f2fb86a2 100644
--- a/server/src/scoreboard.rs
+++ b/server/src/scoreboard.rs
@@ -42,7 +42,7 @@ pub struct ScoreboardEntry {
impl ScoreboardStore {
pub async fn load() -> Result<Self> {
let path =
- xdg::BaseDirectories::with_prefix("hurrycurry")?.place_data_file("scoreboards.json")?;
+ xdg::BaseDirectories::with_prefix("hurrycurry").place_data_file("scoreboards.json")?;
// TOCTOU because its easier that way
if !path.exists() {
ScoreboardStore::default().save().await?;
@@ -52,9 +52,9 @@ impl ScoreboardStore {
}
pub async fn save(&self) -> Result<()> {
let path =
- xdg::BaseDirectories::with_prefix("hurrycurry")?.place_data_file("scoreboards.json")?;
- let buffer_path = xdg::BaseDirectories::with_prefix("hurrycurry")?
- .place_data_file("scoreboards.json~")?;
+ xdg::BaseDirectories::with_prefix("hurrycurry").place_data_file("scoreboards.json")?;
+ let buffer_path =
+ xdg::BaseDirectories::with_prefix("hurrycurry").place_data_file("scoreboards.json~")?;
File::create(&buffer_path)
.await?
.write_all(serde_json::to_string(self)?.as_bytes())
diff --git a/server/src/server.rs b/server/src/server.rs
index f9342add..3823c0ca 100644
--- a/server/src/server.rs
+++ b/server/src/server.rs
@@ -531,7 +531,7 @@ impl Server {
return Err(tre!("s.error.self_interact"));
}
let [Some(other), Some(this)] =
- self.game.players.get_many_mut([&pid, &base_pid])
+ self.game.players.get_disjoint_mut([&pid, &base_pid])
else {
return Err(tre!("s.error.self_interact"));
};
@@ -677,7 +677,7 @@ impl Server {
.players_spatial_index
.query(pos1, 2., |p2, _pos2| {
if p1 != p2 {
- if let [Some(a), Some(b)] = self.game.players.get_many_mut([&p1, &p2]) {
+ if let [Some(a), Some(b)] = self.game.players.get_disjoint_mut([&p1, &p2]) {
a.movement.collide(&mut b.movement, dt)
}
}