diff options
| author | EightFactorial <murphkev000@gmail.com> | 2022-12-06 18:48:48 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-06 20:48:48 -0600 |
| commit | 9f5e5c092be9167e4d5222fdee4a1d2c419e5052 (patch) | |
| tree | 1d0a8b57434e0afd14b4a02cbbc579a3ad70da61 /azalea-protocol/src/packets/game/clientbound_update_recipes_packet.rs | |
| parent | e99a822995c80e1f95c5f7a69e0d8c5d131af20f (diff) | |
| download | azalea-drasl-9f5e5c092be9167e4d5222fdee4a1d2c419e5052.tar.xz | |
Complete ClientboundCommand{Suggestion}sPacket, Serde support for NBT Tags (#49)
* Serializing ClientboundStatusResponsePacket
Enable serialization of ClientboundStatusResponsePacket
* Update clientbound_status_response_packet.rs
Add options previewsChat and enforcesSecureChat
* Serialize Style and TextColor
* Serialize BaseComponent
* Serialize TextComponent
* Fix Style
* Serialize Component
* Fix multiple formats per message, fix reset tag
* Fix Style, again
* Use FlatMapSerializer
* Forgot italics
* Count struct fields, reorganize logic
* Serialize TranslatableComponent
* Rewrite TextComponent Serializer
* Fix using TextColor::Parse
* Code Cleanup
* Add default attribute, just in case
* Clippy
* use serde derive feature + preferred formatting choices
* McBufWritable for BrigadierNodeStub
* Thanks Clippy...
* Implement suggestions in azalea-brigadier
* Serde support for NBT Tags
* Serde options
* Forgot Options
* Oops, that's McBufWritable for BrigadierParser
* Fix McBufWritable for SlotData
* Complete ClientboundUpdateRecipesPacket
* fix some issues
* better impl McBufReadable for Suggestions
Co-authored-by: BuildTools <unconfigured@null.spigotmc.org>
Co-authored-by: mat <github@matdoes.dev>
Diffstat (limited to 'azalea-protocol/src/packets/game/clientbound_update_recipes_packet.rs')
| -rwxr-xr-x | azalea-protocol/src/packets/game/clientbound_update_recipes_packet.rs | 146 |
1 files changed, 144 insertions, 2 deletions
diff --git a/azalea-protocol/src/packets/game/clientbound_update_recipes_packet.rs b/azalea-protocol/src/packets/game/clientbound_update_recipes_packet.rs index db31ef78..9c325d29 100755 --- a/azalea-protocol/src/packets/game/clientbound_update_recipes_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_update_recipes_packet.rs @@ -121,8 +121,150 @@ pub struct Ingredient { } impl McBufWritable for Recipe { - fn write_into(&self, _buf: &mut impl Write) -> Result<(), std::io::Error> { - todo!() + fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> { + match &self.data { + RecipeData::CraftingShapeless(recipe) => { + ResourceLocation::new("minecraft:crafting_shapeless") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + recipe.write_into(buf)?; + } + RecipeData::CraftingShaped(recipe) => { + ResourceLocation::new("minecraft:crafting_shaped") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + recipe.write_into(buf)?; + } + RecipeData::CraftingSpecialArmorDye => { + ResourceLocation::new("minecraft:crafting_special_armordye") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialBookCloning => { + ResourceLocation::new("minecraft:crafting_special_bookcloning") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialMapCloning => { + ResourceLocation::new("minecraft:crafting_special_mapcloning") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialMapExtending => { + ResourceLocation::new("minecraft:crafting_special_mapextending") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialFireworkRocket => { + ResourceLocation::new("minecraft:crafting_special_firework_rocket") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialFireworkStar => { + ResourceLocation::new("minecraft:crafting_special_firework_star") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialFireworkStarFade => { + ResourceLocation::new("minecraft:crafting_special_firework_star_fade") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialRepairItem => { + ResourceLocation::new("minecraft:crafting_special_repairitem") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialTippedArrow => { + ResourceLocation::new("minecraft:crafting_special_tippedarrow") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialBannerDuplicate => { + ResourceLocation::new("minecraft:crafting_special_bannerduplicate") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialBannerAddPattern => { + ResourceLocation::new("minecraft:crafting_special_banneraddpattern") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialShieldDecoration => { + ResourceLocation::new("minecraft:crafting_special_shielddecoration") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialShulkerBoxColoring => { + ResourceLocation::new("minecraft:crafting_special_shulkerboxcoloring") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::CraftingSpecialSuspiciousStew => { + ResourceLocation::new("minecraft:crafting_special_suspiciousstew") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + } + RecipeData::Smelting(recipe) => { + ResourceLocation::new("minecraft:smelting") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + recipe.write_into(buf)?; + } + RecipeData::Blasting(recipe) => { + ResourceLocation::new("minecraft:blasting") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + recipe.write_into(buf)?; + } + RecipeData::Smoking(recipe) => { + ResourceLocation::new("minecraft:smoking") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + recipe.write_into(buf)?; + } + RecipeData::CampfireCooking(recipe) => { + ResourceLocation::new("minecraft:campfire_cooking") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + recipe.write_into(buf)?; + } + RecipeData::Stonecutting(recipe) => { + ResourceLocation::new("minecraft:stonecutting") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + recipe.write_into(buf)?; + } + RecipeData::Smithing(recipe) => { + ResourceLocation::new("minecraft:smithing") + .unwrap() + .write_into(buf)?; + self.identifier.write_into(buf)?; + recipe.write_into(buf)?; + } + }; + Ok(()) } } |
