Snowiiii 2024-12-07 16:59:38 +01:00
parent ed293463c5
commit c7e02ecfe2
8 changed files with 17 additions and 39 deletions

View File

@ -53,7 +53,7 @@ pub static BLOCK_ID_BY_ITEM_ID: LazyLock<HashMap<u16, u16>> = LazyLock::new(|| {
}); });
pub fn get_block(registry_id: &str) -> Option<&Block> { 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(&registry_id.replace("minecraft:", ""))?;
BLOCKS_BY_ID.get(id) BLOCKS_BY_ID.get(id)
} }

View File

@ -37,14 +37,7 @@ impl ArgumentConsumer for BlockArgumentConsumer {
args: &mut RawArgs<'a>, args: &mut RawArgs<'a>,
) -> Option<Arg<'a>> { ) -> Option<Arg<'a>> {
let s = args.pop()?; let s = args.pop()?;
Some(Arg::Block(s))
let name = if s.contains(':') {
s.to_string()
} else {
format!("minecraft:{s}")
};
Some(Arg::Block(name))
} }
async fn suggest<'a>( async fn suggest<'a>(

View File

@ -34,16 +34,8 @@ impl ArgumentConsumer for ItemArgumentConsumer {
_server: &'a Server, _server: &'a Server,
args: &mut RawArgs<'a>, args: &mut RawArgs<'a>,
) -> Option<Arg<'a>> { ) -> Option<Arg<'a>> {
let s = args.pop()?;
let name = if s.contains(':') {
s.to_string()
} else {
format!("minecraft:{s}")
};
// todo: get an actual item // todo: get an actual item
Some(Arg::Item(name)) Some(Arg::Item(args.pop()?))
} }
async fn suggest<'a>( async fn suggest<'a>(

View File

@ -32,15 +32,7 @@ impl ArgumentConsumer for ResourceLocationArgumentConsumer {
_server: &'a Server, _server: &'a Server,
args: &mut RawArgs<'a>, args: &mut RawArgs<'a>,
) -> Option<Arg<'a>> { ) -> Option<Arg<'a>> {
let s = args.pop()?; Some(Arg::ResourceLocation(args.pop()?))
let name = if s.contains(':') {
s.to_string()
} else {
format!("minecraft:{s}")
};
Some(Arg::ResourceLocation(name))
} }
async fn suggest<'a>( async fn suggest<'a>(

View File

@ -35,7 +35,7 @@ impl ArgumentConsumer for SimpleArgConsumer {
_server: &'a Server, _server: &'a Server,
args: &mut RawArgs<'a>, args: &mut RawArgs<'a>,
) -> Option<Arg<'a>> { ) -> Option<Arg<'a>> {
Some(Arg::Simple(args.pop()?.to_string())) Some(Arg::Simple(args.pop()?))
} }
async fn suggest<'a>( async fn suggest<'a>(

View File

@ -84,16 +84,16 @@ pub(crate) enum Arg<'a> {
Rotation(f32, f32), Rotation(f32, f32),
GameMode(GameMode), GameMode(GameMode),
CommandTree(&'a CommandTree<'a>), CommandTree(&'a CommandTree<'a>),
Item(String), Item(&'a str),
ResourceLocation(String), ResourceLocation(&'a str),
Block(String), Block(&'a str),
BossbarColor(BossbarColor), BossbarColor(BossbarColor),
BossbarStyle(BossbarDivisions), BossbarStyle(BossbarDivisions),
Msg(String), Msg(String),
Num(Result<Number, NotInBounds>), Num(Result<Number, NotInBounds>),
Bool(bool), Bool(bool),
#[allow(unused)] #[allow(unused)]
Simple(String), Simple(&'a str),
} }
/// see [`crate::commands::tree_builder::argument`] and [`CommandTree::execute`]/[`crate::commands::tree_builder::NonLeafNodeBuilder::execute`] /// see [`crate::commands::tree_builder::argument`] and [`CommandTree::execute`]/[`crate::commands::tree_builder::NonLeafNodeBuilder::execute`]

View File

@ -53,6 +53,7 @@ enum CommandValueSet {
struct BossbarAddExecuter; struct BossbarAddExecuter;
#[async_trait] #[async_trait]
#[expect(clippy::inefficient_to_string)]
impl CommandExecutor for BossbarAddExecuter { impl CommandExecutor for BossbarAddExecuter {
async fn execute<'a>( async fn execute<'a>(
&self, &self,
@ -74,7 +75,7 @@ impl CommandExecutor for BossbarAddExecuter {
return Ok(()); return Ok(());
} }
let bossbar = Bossbar::new(name.clone()); let bossbar = Bossbar::new(name.to_string());
server server
.bossbars .bossbars
.lock() .lock()
@ -320,7 +321,7 @@ impl CommandExecutor for BossbarSetExecuter {
.bossbars .bossbars
.lock() .lock()
.await .await
.update_name(server, namespace.to_string(), name.clone()) .update_name(server, namespace, name)
.await .await
{ {
Ok(()) => {} Ok(()) => {}

View File

@ -235,10 +235,10 @@ impl CustomBossbars {
pub async fn update_name( pub async fn update_name(
&mut self, &mut self,
server: &Server, server: &Server,
resource_location: String, resource_location: &str,
new_title: String, new_title: &str,
) -> Result<(), BossbarUpdateError> { ) -> 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 let Some(bossbar) = bossbar {
if bossbar.bossbar_data.title == new_title { if bossbar.bossbar_data.title == new_title {
return Err(BossbarUpdateError::NoChanges(String::from( 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 { if !bossbar.visible {
return Ok(()); return Ok(());
@ -269,7 +269,7 @@ impl CustomBossbars {
return Ok(()); return Ok(());
} }
Err(BossbarUpdateError::InvalidResourceLocation( Err(BossbarUpdateError::InvalidResourceLocation(
resource_location, resource_location.to_string(),
)) ))
} }