Skip to content

Commit a291cfa

Browse files
committed
Refactor recipe parsing minecraft: prefix, related to #155
1 parent b244406 commit a291cfa

File tree

1 file changed

+25
-32
lines changed

1 file changed

+25
-32
lines changed

src/protocol/packet.rs

Lines changed: 25 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2480,7 +2480,7 @@ pub struct Recipe {
24802480

24812481
impl Serializable for Recipe {
24822482
fn read_from<R: io::Read>(buf: &mut R) -> Result<Self, Error> {
2483-
let (id, ty, namespace) = {
2483+
let (id, ty) = {
24842484
let a = String::read_from(buf)?;
24852485
let b = String::read_from(buf)?;
24862486

@@ -2492,32 +2492,25 @@ impl Serializable for Recipe {
24922492
let id = b;
24932493

24942494
if let Some(at) = ty.find(':') {
2495-
let (namespace, ty) = ty.split_at(at + 1);
2496-
let ty: String = ty.into();
2497-
let namespace: String = namespace.into();
2498-
(id, ty, namespace)
2495+
(id, ty)
24992496
} else {
2500-
(id, ty, "minecraft:".to_string())
2497+
(id, format!("minecraft:{}", ty))
25012498
}
25022499
} else {
25032500
let ty = b;
25042501
let id = a;
2505-
(id, ty, "minecraft:".to_string())
2502+
(id, format!("minecraft:{}", ty))
25062503
}
25072504
};
25082505

2509-
if namespace != "minecraft:" {
2510-
panic!("unrecognized recipe type namespace: {}", namespace);
2511-
}
2512-
25132506
let data =
25142507
match ty.as_ref() {
2515-
"crafting_shapeless" => RecipeData::Shapeless {
2508+
"minecraft:crafting_shapeless" => RecipeData::Shapeless {
25162509
group: Serializable::read_from(buf)?,
25172510
ingredients: Serializable::read_from(buf)?,
25182511
result: Serializable::read_from(buf)?,
25192512
},
2520-
"crafting_shaped" => {
2513+
"minecraft:crafting_shaped" => {
25212514
let width: VarInt = Serializable::read_from(buf)?;
25222515
let height: VarInt = Serializable::read_from(buf)?;
25232516
let group: String = Serializable::read_from(buf)?;
@@ -2532,49 +2525,49 @@ impl Serializable for Recipe {
25322525

25332526
RecipeData::Shaped { width, height, group, ingredients, result }
25342527
}
2535-
"crafting_special_armordye" => RecipeData::ArmorDye,
2536-
"crafting_special_bookcloning" => RecipeData::BookCloning,
2537-
"crafting_special_mapcloning" => RecipeData::MapCloning,
2538-
"crafting_special_mapextending" => RecipeData::MapExtending,
2539-
"crafting_special_firework_rocket" => RecipeData::FireworkRocket,
2540-
"crafting_special_firework_star" => RecipeData::FireworkStar,
2541-
"crafting_special_firework_star_fade" => RecipeData::FireworkStarFade,
2542-
"crafting_special_repairitem" => RecipeData::RepairItem,
2543-
"crafting_special_tippedarrow" => RecipeData::TippedArrow,
2544-
"crafting_special_bannerduplicate" => RecipeData::BannerDuplicate,
2545-
"crafting_special_banneraddpattern" => RecipeData::BannerAddPattern,
2546-
"crafting_special_shielddecoration" => RecipeData::ShieldDecoration,
2547-
"crafting_special_shulkerboxcoloring" => RecipeData::ShulkerBoxColoring,
2548-
"crafting_special_suspiciousstew" => RecipeData::SuspiciousStew,
2549-
"smelting" => RecipeData::Smelting {
2528+
"minecraft:crafting_special_armordye" => RecipeData::ArmorDye,
2529+
"minecraft:crafting_special_bookcloning" => RecipeData::BookCloning,
2530+
"minecraft:crafting_special_mapcloning" => RecipeData::MapCloning,
2531+
"minecraft:crafting_special_mapextending" => RecipeData::MapExtending,
2532+
"minecraft:crafting_special_firework_rocket" => RecipeData::FireworkRocket,
2533+
"minecraft:crafting_special_firework_star" => RecipeData::FireworkStar,
2534+
"minecraft:crafting_special_firework_star_fade" => RecipeData::FireworkStarFade,
2535+
"minecraft:crafting_special_repairitem" => RecipeData::RepairItem,
2536+
"minecraft:crafting_special_tippedarrow" => RecipeData::TippedArrow,
2537+
"minecraft:crafting_special_bannerduplicate" => RecipeData::BannerDuplicate,
2538+
"minecraft:crafting_special_banneraddpattern" => RecipeData::BannerAddPattern,
2539+
"minecraft:crafting_special_shielddecoration" => RecipeData::ShieldDecoration,
2540+
"minecraft:crafting_special_shulkerboxcoloring" => RecipeData::ShulkerBoxColoring,
2541+
"minecraft:crafting_special_suspiciousstew" => RecipeData::SuspiciousStew,
2542+
"minecraft:smelting" => RecipeData::Smelting {
25502543
group: Serializable::read_from(buf)?,
25512544
ingredient: Serializable::read_from(buf)?,
25522545
result: Serializable::read_from(buf)?,
25532546
experience: Serializable::read_from(buf)?,
25542547
cooking_time: Serializable::read_from(buf)?,
25552548
},
2556-
"blasting" => RecipeData::Blasting {
2549+
"minecraft:blasting" => RecipeData::Blasting {
25572550
group: Serializable::read_from(buf)?,
25582551
ingredient: Serializable::read_from(buf)?,
25592552
result: Serializable::read_from(buf)?,
25602553
experience: Serializable::read_from(buf)?,
25612554
cooking_time: Serializable::read_from(buf)?,
25622555
},
2563-
"smoking" => RecipeData::Smoking {
2556+
"minecraft:smoking" => RecipeData::Smoking {
25642557
group: Serializable::read_from(buf)?,
25652558
ingredient: Serializable::read_from(buf)?,
25662559
result: Serializable::read_from(buf)?,
25672560
experience: Serializable::read_from(buf)?,
25682561
cooking_time: Serializable::read_from(buf)?,
25692562
},
2570-
"campfire" | "campfire_cooking" => RecipeData::Campfire {
2563+
"minecraft:campfire" | "minecraft:campfire_cooking" => RecipeData::Campfire {
25712564
group: Serializable::read_from(buf)?,
25722565
ingredient: Serializable::read_from(buf)?,
25732566
result: Serializable::read_from(buf)?,
25742567
experience: Serializable::read_from(buf)?,
25752568
cooking_time: Serializable::read_from(buf)?,
25762569
},
2577-
"stonecutting" => RecipeData::Stonecutting {
2570+
"minecraft:stonecutting" => RecipeData::Stonecutting {
25782571
group: Serializable::read_from(buf)?,
25792572
ingredient: Serializable::read_from(buf)?,
25802573
result: Serializable::read_from(buf)?,

0 commit comments

Comments
 (0)