feat: send all crafting recipes to players (#1999)

* feat: send all recipes to players

* chore: clippy and added config option
This commit is contained in:
RB007
2026-04-10 13:17:35 -04:00
committed by GitHub
parent b8c7067d21
commit a7ebad7eee
13 changed files with 933 additions and 11 deletions

View File

@@ -9,10 +9,11 @@ use pumpkin_protocol::java::server::play::{
SAttack, SChangeGameMode, SChatCommand, SChatMessage, SChunkBatch, SClickSlot, SClientCommand,
SClientInformationPlay, SClientTickEnd, SCloseContainer, SCommandSuggestion, SConfirmTeleport,
SCookieResponse as SPCookieResponse, SCustomPayload, SInteract, SKeepAlive, SMoveVehicle,
SPaddleBoat, SPickItemFromBlock, SPlayPingRequest, SPlayerAbilities, SPlayerAction,
SPlayerCommand, SPlayerInput, SPlayerLoaded, SPlayerPosition, SPlayerPositionRotation,
SPlayerRotation, SPlayerSession, SSetCommandBlock, SSetCreativeSlot, SSetHeldItem,
SSetPlayerGround, SSwingArm, SUpdateSign, SUseItem, SUseItemOn,
SPaddleBoat, SPickItemFromBlock, SPlaceRecipe, SPlayPingRequest, SPlayerAbilities,
SPlayerAction, SPlayerCommand, SPlayerInput, SPlayerLoaded, SPlayerPosition,
SPlayerPositionRotation, SPlayerRotation, SPlayerSession, SRecipeBookChangeSettings,
SRecipeBookSeenRecipe, SSetCommandBlock, SSetCreativeSlot, SSetHeldItem, SSetPlayerGround,
SSwingArm, SUpdateSign, SUseItem, SUseItemOn,
};
use pumpkin_protocol::packet::MultiVersionJavaPacket;
use pumpkin_protocol::{
@@ -856,6 +857,24 @@ impl JavaClient {
);
server.plugin_manager.fire(event).await;
}
id if id == SRecipeBookChangeSettings::to_id(version) => {
self.handle_recipe_book_change_settings(
player,
SRecipeBookChangeSettings::read(payload, &version)?,
)
.await;
}
id if id == SRecipeBookSeenRecipe::to_id(version) => {
self.handle_recipe_book_seen_recipe(
player,
SRecipeBookSeenRecipe::read(payload, &version)?,
)
.await;
}
id if id == SPlaceRecipe::to_id(version) => {
self.handle_place_recipe(player, SPlaceRecipe::read(payload, &version)?)
.await;
}
_ => {
warn!("Failed to handle player packet id {}", packet.id);
}