1.20.80 support (#1)

This commit is contained in:
Akmal Fairuz
2025-01-01 21:42:55 +07:00
committed by GitHub
parent 03c065881e
commit 445a4a82f8
20 changed files with 7807 additions and 14 deletions

View File

@@ -0,0 +1,42 @@
package legacypacket
import (
"github.com/akmalfairuz/legacy-version/legacyver/proto"
"github.com/sandertv/gophertunnel/minecraft/protocol"
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
)
// CraftingData is sent by the server to let the client know all crafting data that the server maintains. This
// includes shapeless crafting, crafting table recipes, furnace recipes etc. Each crafting station's recipes
// are included in it.
type CraftingData struct {
// Recipes is a list of all recipes available on the server. It includes among others shapeless, shaped
// and furnace recipes. The client will only be able to craft these recipes.
Recipes []proto.Recipe
// PotionRecipes is a list of all potion mixing recipes which may be used in the brewing stand.
PotionRecipes []protocol.PotionRecipe
// PotionContainerChangeRecipes is a list of all recipes to convert a potion from one type to another,
// such as from a drinkable potion to a splash potion, or from a splash potion to a lingering potion.
PotionContainerChangeRecipes []protocol.PotionContainerChangeRecipe
// MaterialReducers is a list of all material reducers which is used in education edition chemistry.
MaterialReducers []protocol.MaterialReducer
// ClearRecipes indicates if all recipes currently active on the client should be cleaned. Doing this
// means that the client will have no recipes active by itself: Any CraftingData packets previously sent
// will also be discarded, and only the recipes in this CraftingData packet will be used.
ClearRecipes bool
}
// ID ...
func (*CraftingData) ID() uint32 {
return packet.IDCraftingData
}
func (pk *CraftingData) Marshal(io protocol.IO) {
protocol.FuncSlice(io, &pk.Recipes, func(p *proto.Recipe) {
proto.IORecipe(io, p)
})
protocol.Slice(io, &pk.PotionRecipes)
protocol.Slice(io, &pk.PotionContainerChangeRecipes)
protocol.FuncSlice(io, &pk.MaterialReducers, io.MaterialReducer)
io.Bool(&pk.ClearRecipes)
}