From 1b510eaa212597b582becd717bf1bfacbb021f5c Mon Sep 17 00:00:00 2001 From: Snowiiii Date: Fri, 1 Nov 2024 16:18:01 +0100 Subject: [PATCH] Fix: https://github.com/Snowiiii/Pumpkin/issues/222 Check if item is a block, Because Not every item can be placed --- pumpkin/src/client/player_packet.rs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/pumpkin/src/client/player_packet.rs b/pumpkin/src/client/player_packet.rs index ea3c9bd72..ea85d3b6a 100644 --- a/pumpkin/src/client/player_packet.rs +++ b/pumpkin/src/client/player_packet.rs @@ -615,21 +615,23 @@ impl Player { if let Some(face) = BlockFace::from_i32(use_item_on.face.0) { if let Some(item) = self.inventory.lock().await.held_item() { - let block = get_block_by_item(item.item_id) - .expect("No item found, TODO Better error handling"); - let entity = &self.living_entity.entity; - let world = &entity.world; + let block = get_block_by_item(item.item_id); + // check if item is a block, Because Not every item can be placed :D + if let Some(block) = block { + let entity = &self.living_entity.entity; + let world = &entity.world; - world - .set_block( - WorldPosition(location.0 + face.to_offset()), - block.default_state_id, - ) + world + .set_block( + WorldPosition(location.0 + face.to_offset()), + block.default_state_id, + ) + .await; + } + self.client + .send_packet(&CAcknowledgeBlockChange::new(use_item_on.sequence)) .await; } - self.client - .send_packet(&CAcknowledgeBlockChange::new(use_item_on.sequence)) - .await; } else { self.kick(TextComponent::text("Invalid block face")).await; }