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> {
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)
}

View File

@ -37,14 +37,7 @@ impl ArgumentConsumer for BlockArgumentConsumer {
args: &mut RawArgs<'a>,
) -> Option<Arg<'a>> {
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>(

View File

@ -34,16 +34,8 @@ impl ArgumentConsumer for ItemArgumentConsumer {
_server: &'a Server,
args: &mut RawArgs<'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
Some(Arg::Item(name))
Some(Arg::Item(args.pop()?))
}
async fn suggest<'a>(

View File

@ -32,15 +32,7 @@ impl ArgumentConsumer for ResourceLocationArgumentConsumer {
_server: &'a Server,
args: &mut RawArgs<'a>,
) -> Option<Arg<'a>> {
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>(

View File

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

View File

@ -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<Number, NotInBounds>),
Bool(bool),
#[allow(unused)]
Simple(String),
Simple(&'a str),
}
/// 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;
#[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(()) => {}

View File

@ -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(),
))
}