diff --git a/pumpkin-world/src/block/block_registry.rs b/pumpkin-world/src/block/block_registry.rs index 7229509c8..d043c21f2 100644 --- a/pumpkin-world/src/block/block_registry.rs +++ b/pumpkin-world/src/block/block_registry.rs @@ -53,7 +53,7 @@ pub static BLOCK_ID_BY_ITEM_ID: LazyLock> = LazyLock::new(|| { }); pub fn get_block(registry_id: &str) -> Option<&Block> { - let id = BLOCK_ID_BY_REGISTRY_ID.get(registry_id)?; + let id = BLOCK_ID_BY_REGISTRY_ID.get(®istry_id.replace("minecraft:", ""))?; BLOCKS_BY_ID.get(id) } diff --git a/pumpkin/src/command/args/arg_block.rs b/pumpkin/src/command/args/arg_block.rs index 6aa80f3ce..41e3ebd31 100644 --- a/pumpkin/src/command/args/arg_block.rs +++ b/pumpkin/src/command/args/arg_block.rs @@ -37,14 +37,7 @@ impl ArgumentConsumer for BlockArgumentConsumer { args: &mut RawArgs<'a>, ) -> Option> { let s = args.pop()?; - - let name = if s.contains(':') { - s.to_string() - } else { - format!("minecraft:{s}") - }; - - Some(Arg::Block(name)) + Some(Arg::Block(s)) } async fn suggest<'a>( diff --git a/pumpkin/src/command/args/arg_item.rs b/pumpkin/src/command/args/arg_item.rs index 96557ba75..3deeb2fe7 100644 --- a/pumpkin/src/command/args/arg_item.rs +++ b/pumpkin/src/command/args/arg_item.rs @@ -34,16 +34,8 @@ impl ArgumentConsumer for ItemArgumentConsumer { _server: &'a Server, args: &mut RawArgs<'a>, ) -> Option> { - let s = args.pop()?; - - let name = if s.contains(':') { - s.to_string() - } else { - format!("minecraft:{s}") - }; - // todo: get an actual item - Some(Arg::Item(name)) + Some(Arg::Item(args.pop()?)) } async fn suggest<'a>( diff --git a/pumpkin/src/command/args/arg_resource_location.rs b/pumpkin/src/command/args/arg_resource_location.rs index 059c39257..7ed52f2b6 100644 --- a/pumpkin/src/command/args/arg_resource_location.rs +++ b/pumpkin/src/command/args/arg_resource_location.rs @@ -32,15 +32,7 @@ impl ArgumentConsumer for ResourceLocationArgumentConsumer { _server: &'a Server, args: &mut RawArgs<'a>, ) -> Option> { - let s = args.pop()?; - - let name = if s.contains(':') { - s.to_string() - } else { - format!("minecraft:{s}") - }; - - Some(Arg::ResourceLocation(name)) + Some(Arg::ResourceLocation(args.pop()?)) } async fn suggest<'a>( diff --git a/pumpkin/src/command/args/arg_simple.rs b/pumpkin/src/command/args/arg_simple.rs index 67b82a1ef..1412d63ed 100644 --- a/pumpkin/src/command/args/arg_simple.rs +++ b/pumpkin/src/command/args/arg_simple.rs @@ -35,7 +35,7 @@ impl ArgumentConsumer for SimpleArgConsumer { _server: &'a Server, args: &mut RawArgs<'a>, ) -> Option> { - Some(Arg::Simple(args.pop()?.to_string())) + Some(Arg::Simple(args.pop()?)) } async fn suggest<'a>( diff --git a/pumpkin/src/command/args/mod.rs b/pumpkin/src/command/args/mod.rs index d436bc62d..3274dd8d4 100644 --- a/pumpkin/src/command/args/mod.rs +++ b/pumpkin/src/command/args/mod.rs @@ -84,16 +84,16 @@ pub(crate) enum Arg<'a> { Rotation(f32, f32), GameMode(GameMode), CommandTree(&'a CommandTree<'a>), - Item(String), - ResourceLocation(String), - Block(String), + Item(&'a str), + ResourceLocation(&'a str), + Block(&'a str), BossbarColor(BossbarColor), BossbarStyle(BossbarDivisions), Msg(String), Num(Result), Bool(bool), #[allow(unused)] - Simple(String), + Simple(&'a str), } /// see [`crate::commands::tree_builder::argument`] and [`CommandTree::execute`]/[`crate::commands::tree_builder::NonLeafNodeBuilder::execute`] diff --git a/pumpkin/src/command/commands/cmd_bossbar.rs b/pumpkin/src/command/commands/cmd_bossbar.rs index 3e57f69f4..eb9d3c8a2 100644 --- a/pumpkin/src/command/commands/cmd_bossbar.rs +++ b/pumpkin/src/command/commands/cmd_bossbar.rs @@ -53,6 +53,7 @@ enum CommandValueSet { struct BossbarAddExecuter; #[async_trait] +#[expect(clippy::inefficient_to_string)] impl CommandExecutor for BossbarAddExecuter { async fn execute<'a>( &self, @@ -74,7 +75,7 @@ impl CommandExecutor for BossbarAddExecuter { return Ok(()); } - let bossbar = Bossbar::new(name.clone()); + let bossbar = Bossbar::new(name.to_string()); server .bossbars .lock() @@ -320,7 +321,7 @@ impl CommandExecutor for BossbarSetExecuter { .bossbars .lock() .await - .update_name(server, namespace.to_string(), name.clone()) + .update_name(server, namespace, name) .await { Ok(()) => {} diff --git a/pumpkin/src/world/custom_bossbar.rs b/pumpkin/src/world/custom_bossbar.rs index db97e684b..3f7542e62 100644 --- a/pumpkin/src/world/custom_bossbar.rs +++ b/pumpkin/src/world/custom_bossbar.rs @@ -235,10 +235,10 @@ impl CustomBossbars { pub async fn update_name( &mut self, server: &Server, - resource_location: String, - new_title: String, + resource_location: &str, + new_title: &str, ) -> Result<(), BossbarUpdateError> { - let bossbar = self.custom_bossbars.get_mut(&resource_location); + let bossbar = self.custom_bossbars.get_mut(resource_location); if let Some(bossbar) = bossbar { if bossbar.bossbar_data.title == new_title { return Err(BossbarUpdateError::NoChanges(String::from( @@ -246,7 +246,7 @@ impl CustomBossbars { ))); } - bossbar.bossbar_data.title = new_title; + bossbar.bossbar_data.title = new_title.to_string(); if !bossbar.visible { return Ok(()); @@ -269,7 +269,7 @@ impl CustomBossbars { return Ok(()); } Err(BossbarUpdateError::InvalidResourceLocation( - resource_location, + resource_location.to_string(), )) }