diff --git a/src/net/mod.rs b/src/net/mod.rs
index 0dc61d3..607494c 100644
--- a/src/net/mod.rs
+++ b/src/net/mod.rs
@@ -17,14 +17,10 @@
* .
*/
-use std::time::Duration;
use color_eyre::eyre::Result;
use player::SharedPlayer;
-use tokio::{
- net::{TcpListener, UdpSocket},
- time,
-};
+use tokio::net::TcpListener;
mod io;
pub mod player;
diff --git a/src/net/player.rs b/src/net/player.rs
index 4314654..620d42e 100644
--- a/src/net/player.rs
+++ b/src/net/player.rs
@@ -248,11 +248,11 @@ impl SharedPlayer {
reduced_debug_info: !cfg!(debug_assertions),
enable_respawn_screen: false,
do_limited_crafting: false,
- dimension_type: VarInt(0),
+ dimension_type: VarInt(2),
dimension_name: Bounded::<&'static str>("minecraft:the_end"),
hashed_seed: 0,
gamemode: Gamemode::Adventure,
- previous_gamemode: None,
+ previous_gamemode: Some(Gamemode::Adventure),
is_debug: false,
is_superflat: false,
death_location: None,
diff --git a/src/protocol/datatypes/position.rs b/src/protocol/datatypes/position.rs
index 63331fa..0f7825a 100644
--- a/src/protocol/datatypes/position.rs
+++ b/src/protocol/datatypes/position.rs
@@ -17,11 +17,10 @@
* .
*/
-use std::error::Error;
use bitfield_struct::bitfield;
use byteorder::{BigEndian, WriteBytesExt};
-use color_eyre::eyre::{bail, Result};
+use color_eyre::eyre::Result;
use thiserror::Error;
use crate::protocol::Encode;
diff --git a/src/protocol/encoder.rs b/src/protocol/encoder.rs
index 74b1b0e..862546e 100644
--- a/src/protocol/encoder.rs
+++ b/src/protocol/encoder.rs
@@ -70,6 +70,14 @@ impl Encoder {
{
let initial_len = self.buf.len();
packet.encode_packet((&mut self.buf).writer())?;
+ trace!(
+ "after appending: {:#?}",
+ (&self.buf as &[u8])
+ .iter()
+ .map(|a| a.to_string())
+ .collect::>()
+ .join(" ")
+ );
let packet_size = self.buf.len() - initial_len;
diff --git a/src/protocol/packets/login/registry/dimension.rs b/src/protocol/packets/login/registry/dimension.rs
index b91d2f0..1975a52 100644
--- a/src/protocol/packets/login/registry/dimension.rs
+++ b/src/protocol/packets/login/registry/dimension.rs
@@ -19,7 +19,7 @@
use serde::{Deserialize, Serialize};
-use super::{deserialize_bool, RegistryItem};
+use super::RegistryItem;
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct DimensionType {
diff --git a/src/protocol/packets/login/registry/mod.rs b/src/protocol/packets/login/registry/mod.rs
index 13337b8..edd69ef 100644
--- a/src/protocol/packets/login/registry/mod.rs
+++ b/src/protocol/packets/login/registry/mod.rs
@@ -42,6 +42,11 @@ pub use painting::*;
pub use trim::*;
pub use wolf::*;
+pub static ALL_REGISTRIES: LazyLock = LazyLock::new(|| {
+ serde_json::from_str(include_str!("../../../../../assets/registries.json"))
+ .expect("registries.json should be parseable")
+});
+
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct Registry {
registry_id: String,
@@ -139,11 +144,6 @@ enum StringOrCompound {
Compound(T),
}
-pub static ALL_REGISTRIES: LazyLock = LazyLock::new(|| {
- serde_json::from_str(include_str!("../../../../../assets/registries.json"))
- .expect("registries.json should be parseable")
-});
-
fn deserialize_bool<'de, D>(deserializer: D) -> Result
where
D: de::Deserializer<'de>,
diff --git a/src/protocol/packets/play/login.rs b/src/protocol/packets/play/login.rs
index 7b341fc..92e544a 100644
--- a/src/protocol/packets/play/login.rs
+++ b/src/protocol/packets/play/login.rs
@@ -74,6 +74,17 @@ impl From for u8 {
}
}
+impl From for i8 {
+ fn from(value: Gamemode) -> Self {
+ match value {
+ Gamemode::Survival => 0,
+ Gamemode::Creative => 1,
+ Gamemode::Adventure => 2,
+ Gamemode::Spectator => 3,
+ }
+ }
+}
+
#[derive(Debug)]
pub struct DeathLocation<'a> {
dimension_name: Bounded<&'a str>,
@@ -103,7 +114,7 @@ impl<'a> Encode for LoginPlayC<'a> {
match self.previous_gamemode {
None => (-1).encode(&mut w)?,
- Some(g) => u8::from(g).encode(&mut w)?,
+ Some(g) => i8::from(g).encode(&mut w)?,
}
self.is_debug.encode(&mut w)?;
diff --git a/src/server/mod.rs b/src/server/mod.rs
index a77193d..9c94243 100644
--- a/src/server/mod.rs
+++ b/src/server/mod.rs
@@ -25,10 +25,7 @@ use std::sync::Arc;
use world::World;
-use crate::{
- net::player::{Player, SharedPlayer},
- CrawlState,
-};
+use crate::{net::player::SharedPlayer, CrawlState};
use self::ticker::Ticker;
@@ -36,7 +33,7 @@ use self::ticker::Ticker;
pub struct Server {
pub ticker: Ticker,
- _world: Option>,
+ world: Option>,
players: Vec,
crawlstate: CrawlState,
@@ -47,7 +44,7 @@ impl Server {
pub fn new(state: CrawlState, tick_rate: u8) -> Self {
Server {
ticker: Ticker::new(tick_rate),
- _world: None,
+ world: None,
players: Vec::new(),
crawlstate: state,
}
@@ -61,9 +58,5 @@ impl Server {
while let Ok(p) = player_recv.try_recv() {
self.players.push(p);
}
-
- self.players
- .iter()
- .for_each(|p| trace!("Ticking {}", p.id()));
}
}
diff --git a/src/server/ticker.rs b/src/server/ticker.rs
index 61b1fd6..cd0ca5a 100644
--- a/src/server/ticker.rs
+++ b/src/server/ticker.rs
@@ -47,7 +47,6 @@ impl Ticker {
}
self.last_tick = now;
- trace!("{}ms elapsed, ticking full server", elapsed.as_millis(),);
server.tick().await;
}
}
diff --git a/src/state.rs b/src/state.rs
index 3111ce8..0ffdd03 100644
--- a/src/state.rs
+++ b/src/state.rs
@@ -21,7 +21,7 @@ use std::sync::{atomic::AtomicUsize, Arc};
use tokio::sync::{mpsc, Mutex, Semaphore};
-use crate::net::player::{Player, SharedPlayer};
+use crate::net::player::SharedPlayer;
#[derive(Debug)]
pub struct State {