From 17f19846998126b198cba0fb52c66b16dcc0ba23 Mon Sep 17 00:00:00 2001 From: Snowiiii Date: Tue, 5 Nov 2024 23:32:56 +0100 Subject: [PATCH] Remove some ToPrimitive --- pumpkin-core/src/gamemode.rs | 5 +++-- pumpkin-inventory/src/lib.rs | 4 ++-- pumpkin/src/client/client_packet.rs | 10 ++++------ pumpkin/src/entity/player.rs | 4 ++-- pumpkin/src/world/mod.rs | 5 ++--- 5 files changed, 13 insertions(+), 15 deletions(-) diff --git a/pumpkin-core/src/gamemode.rs b/pumpkin-core/src/gamemode.rs index 6e996a6f9..085d0be2d 100644 --- a/pumpkin-core/src/gamemode.rs +++ b/pumpkin-core/src/gamemode.rs @@ -1,12 +1,13 @@ use std::str::FromStr; -use num_derive::{FromPrimitive, ToPrimitive}; +use num_derive::FromPrimitive; use serde::{Deserialize, Serialize}; #[derive(Debug, PartialEq, Eq)] pub struct ParseGameModeError; -#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize, FromPrimitive, ToPrimitive)] +#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize, FromPrimitive)] +#[repr(i8)] pub enum GameMode { Undefined = -1, Survival, diff --git a/pumpkin-inventory/src/lib.rs b/pumpkin-inventory/src/lib.rs index f7e64aace..c50af3fb6 100644 --- a/pumpkin-inventory/src/lib.rs +++ b/pumpkin-inventory/src/lib.rs @@ -1,6 +1,6 @@ use crate::container_click::MouseClick; use crate::player::PlayerInventory; -use num_derive::{FromPrimitive, ToPrimitive}; +use num_derive::FromPrimitive; use pumpkin_macros::screen; use pumpkin_world::item::ItemStack; @@ -15,7 +15,7 @@ pub use error::InventoryError; pub use open_container::OpenContainer; /// https://wiki.vg/Inventory -#[derive(Debug, ToPrimitive, FromPrimitive, Clone, Copy, Eq, PartialEq)] +#[derive(Debug, FromPrimitive, Clone, Copy, Eq, PartialEq)] #[repr(u8)] pub enum WindowType { // not used diff --git a/pumpkin/src/client/client_packet.rs b/pumpkin/src/client/client_packet.rs index cee93fa06..d534eb958 100644 --- a/pumpkin/src/client/client_packet.rs +++ b/pumpkin/src/client/client_packet.rs @@ -1,4 +1,4 @@ -use num_traits::{FromPrimitive, ToPrimitive}; +use num_traits::FromPrimitive; use pumpkin_config::{ADVANCED_CONFIG, BASIC_CONFIG}; use pumpkin_core::text::TextComponent; use pumpkin_protocol::{ @@ -81,13 +81,11 @@ impl Client { // Don't allow new logons when server is full. // If max players is set to zero, then there is no max player count enforced. // TODO: If client is an operator or otherwise suitable elevated permissions, allow client to bypass this requirement. - let max_players = BASIC_CONFIG - .max_players - .to_usize() - .expect("Unable to convert to usize"); - if max_players > 0 && server.get_player_count().await >= max_players { + let max_players = BASIC_CONFIG.max_players; + if max_players > 0 && server.get_player_count().await >= max_players as usize { self.kick("The server is currently full, please try again later") .await; + return; } if !Self::is_valid_player_name(&login_start.name) { diff --git a/pumpkin/src/entity/player.rs b/pumpkin/src/entity/player.rs index 5f63f189b..e72446658 100644 --- a/pumpkin/src/entity/player.rs +++ b/pumpkin/src/entity/player.rs @@ -10,7 +10,6 @@ use std::{ use crossbeam::atomic::AtomicCell; use itertools::Itertools; use num_derive::FromPrimitive; -use num_traits::ToPrimitive; use pumpkin_config::ADVANCED_CONFIG; use pumpkin_core::{ math::{boundingbox::BoundingBox, position::WorldPosition, vector2::Vector2, vector3::Vector3}, @@ -591,10 +590,11 @@ impl Player { }], )) .await; + #[allow(clippy::cast_precision_loss)] self.client .send_packet(&CGameEvent::new( GameEvent::ChangeGameMode, - gamemode.to_f32().unwrap(), + gamemode as i32 as f32, )) .await; } diff --git a/pumpkin/src/world/mod.rs b/pumpkin/src/world/mod.rs index 620a044f5..ad74771ec 100644 --- a/pumpkin/src/world/mod.rs +++ b/pumpkin/src/world/mod.rs @@ -9,7 +9,6 @@ use crate::entity::{ player::{ChunkHandleWrapper, Player}, Entity, }; -use num_traits::ToPrimitive; use pumpkin_config::BasicConfiguration; use pumpkin_core::math::vector2::Vector2; use pumpkin_core::math::{position::WorldPosition, vector3::Vector3}; @@ -162,8 +161,8 @@ impl World { 0.into(), "minecraft:overworld", 0, // seed - gamemode.to_u8().unwrap(), - base_config.default_gamemode.to_i8().unwrap(), + gamemode as u8, + base_config.default_gamemode as i8, false, false, None,