aboutsummaryrefslogtreecommitdiff
path: root/azalea-protocol/src/packets/game/clientbound_update_recipes_packet.rs
diff options
context:
space:
mode:
authorEightFactorial <murphkev000@gmail.com>2022-12-06 18:48:48 -0800
committerGitHub <noreply@github.com>2022-12-06 20:48:48 -0600
commit9f5e5c092be9167e4d5222fdee4a1d2c419e5052 (patch)
tree1d0a8b57434e0afd14b4a02cbbc579a3ad70da61 /azalea-protocol/src/packets/game/clientbound_update_recipes_packet.rs
parente99a822995c80e1f95c5f7a69e0d8c5d131af20f (diff)
downloadazalea-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-xazalea-protocol/src/packets/game/clientbound_update_recipes_packet.rs146
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(())
}
}