Add missing translation
This commit is contained in:
@@ -18,7 +18,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
//go:embed block_states_766.nbt
|
//go:embed data/block_states_766.nbt
|
||||||
latestBlockStateData []byte
|
latestBlockStateData []byte
|
||||||
|
|
||||||
// latestBlockMapping is the BlockMapping used for translating blocks between versions.
|
// latestBlockMapping is the BlockMapping used for translating blocks between versions.
|
||||||
|
|||||||
40
legacyver/legacypacket/camera_aim_assist.go
Normal file
40
legacyver/legacypacket/camera_aim_assist.go
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
package legacypacket
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
|
"github.com/sandertv/gophertunnel/minecraft/protocol"
|
||||||
|
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CameraAimAssist is sent by the server to the client to set up aim assist for the client's camera.
|
||||||
|
type CameraAimAssist struct {
|
||||||
|
// Preset is the ID of the preset that has previously been defined in the CameraAimAssistPresets packet.
|
||||||
|
Preset string
|
||||||
|
// Angle is the maximum angle around the playes's cursor that the aim assist should check for a target,
|
||||||
|
// if TargetMode is set to protocol.AimAssistTargetModeAngle.
|
||||||
|
Angle mgl32.Vec2
|
||||||
|
// Distance is the maximum distance from the player's cursor should check for a target, if TargetMode is
|
||||||
|
// set to protocol.AimAssistTargetModeDistance.
|
||||||
|
Distance float32
|
||||||
|
// TargetMode is the mode that the camera should use for detecting targets. This is currently one of
|
||||||
|
// protocol.AimAssistTargetModeAngle or protocol.AimAssistTargetModeDistance.
|
||||||
|
TargetMode byte
|
||||||
|
// Action is the action that should be performed with the aim assist. This is one of the constants above.
|
||||||
|
Action byte
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID ...
|
||||||
|
func (*CameraAimAssist) ID() uint32 {
|
||||||
|
return packet.IDCameraAimAssist
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pk *CameraAimAssist) Marshal(io protocol.IO) {
|
||||||
|
if proto.IsProtoGTE(io, proto.ID766) {
|
||||||
|
io.String(&pk.Preset)
|
||||||
|
}
|
||||||
|
io.Vec2(&pk.Angle)
|
||||||
|
io.Float32(&pk.Distance)
|
||||||
|
io.Uint8(&pk.TargetMode)
|
||||||
|
io.Uint8(&pk.Action)
|
||||||
|
}
|
||||||
23
legacyver/legacypacket/camera_presets.go
Normal file
23
legacyver/legacypacket/camera_presets.go
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
package legacypacket
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
||||||
|
"github.com/sandertv/gophertunnel/minecraft/protocol"
|
||||||
|
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CameraPresets gives the client a list of custom camera presets.
|
||||||
|
type CameraPresets struct {
|
||||||
|
// Presets is a list of camera presets that can be used by other cameras. The order of this list is important because
|
||||||
|
// the index of presets is used as a pointer in the CameraInstruction packet.
|
||||||
|
Presets []proto.CameraPreset
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID ...
|
||||||
|
func (*CameraPresets) ID() uint32 {
|
||||||
|
return packet.IDCameraPresets
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pk *CameraPresets) Marshal(io protocol.IO) {
|
||||||
|
protocol.Slice(io, &pk.Presets)
|
||||||
|
}
|
||||||
@@ -7,102 +7,6 @@ import (
|
|||||||
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
|
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
|
||||||
)
|
)
|
||||||
|
|
||||||
const PlayerAuthInputBitsetSize = 65
|
|
||||||
|
|
||||||
const (
|
|
||||||
InputFlagAscend = iota
|
|
||||||
InputFlagDescend
|
|
||||||
InputFlagNorthJump
|
|
||||||
InputFlagJumpDown
|
|
||||||
InputFlagSprintDown
|
|
||||||
InputFlagChangeHeight
|
|
||||||
InputFlagJumping
|
|
||||||
InputFlagAutoJumpingInWater
|
|
||||||
InputFlagSneaking
|
|
||||||
InputFlagSneakDown
|
|
||||||
InputFlagUp
|
|
||||||
InputFlagDown
|
|
||||||
InputFlagLeft
|
|
||||||
InputFlagRight
|
|
||||||
InputFlagUpLeft
|
|
||||||
InputFlagUpRight
|
|
||||||
InputFlagWantUp
|
|
||||||
InputFlagWantDown
|
|
||||||
InputFlagWantDownSlow
|
|
||||||
InputFlagWantUpSlow
|
|
||||||
InputFlagSprinting
|
|
||||||
InputFlagAscendBlock
|
|
||||||
InputFlagDescendBlock
|
|
||||||
InputFlagSneakToggleDown
|
|
||||||
InputFlagPersistSneak
|
|
||||||
InputFlagStartSprinting
|
|
||||||
InputFlagStopSprinting
|
|
||||||
InputFlagStartSneaking
|
|
||||||
InputFlagStopSneaking
|
|
||||||
InputFlagStartSwimming
|
|
||||||
InputFlagStopSwimming
|
|
||||||
InputFlagStartJumping
|
|
||||||
InputFlagStartGliding
|
|
||||||
InputFlagStopGliding
|
|
||||||
InputFlagPerformItemInteraction
|
|
||||||
InputFlagPerformBlockActions
|
|
||||||
InputFlagPerformItemStackRequest
|
|
||||||
InputFlagHandledTeleport
|
|
||||||
InputFlagEmoting
|
|
||||||
InputFlagMissedSwing
|
|
||||||
InputFlagStartCrawling
|
|
||||||
InputFlagStopCrawling
|
|
||||||
InputFlagStartFlying
|
|
||||||
InputFlagStopFlying
|
|
||||||
InputFlagClientAckServerData
|
|
||||||
InputFlagClientPredictedVehicle
|
|
||||||
InputFlagPaddlingLeft
|
|
||||||
InputFlagPaddlingRight
|
|
||||||
InputFlagBlockBreakingDelayEnabled
|
|
||||||
InputFlagHorizontalCollision
|
|
||||||
InputFlagVerticalCollision
|
|
||||||
InputFlagDownLeft
|
|
||||||
InputFlagDownRight
|
|
||||||
InputFlagStartUsingItem
|
|
||||||
InputFlagCameraRelativeMovementEnabled
|
|
||||||
InputFlagRotControlledByMoveDirection
|
|
||||||
InputFlagStartSpinAttack
|
|
||||||
InputFlagStopSpinAttack
|
|
||||||
InputFlagIsHotbarTouchOnly
|
|
||||||
InputFlagJumpReleasedRaw
|
|
||||||
InputFlagJumpPressedRaw
|
|
||||||
InputFlagJumpCurrentRaw
|
|
||||||
InputFlagSneakReleasedRaw
|
|
||||||
InputFlagSneakPressedRaw
|
|
||||||
InputFlagSneakCurrentRaw
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
InputModeMouse = iota + 1
|
|
||||||
InputModeTouch
|
|
||||||
InputModeGamePad
|
|
||||||
InputModeMotionController
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
PlayModeNormal = iota
|
|
||||||
PlayModeTeaser
|
|
||||||
PlayModeScreen
|
|
||||||
PlayModeViewer
|
|
||||||
PlayModeReality
|
|
||||||
PlayModePlacement
|
|
||||||
PlayModeLivingRoom
|
|
||||||
PlayModeExitLevel
|
|
||||||
PlayModeExitLevelLivingRoom
|
|
||||||
PlayModeNumModes
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
InteractionModelTouch = iota
|
|
||||||
InteractionModelCrosshair
|
|
||||||
InteractionModelClassic
|
|
||||||
)
|
|
||||||
|
|
||||||
// PlayerAuthInput is sent by the client to allow for server authoritative movement. It is used to synchronise
|
// PlayerAuthInput is sent by the client to allow for server authoritative movement. It is used to synchronise
|
||||||
// the player input with the position server-side.
|
// the player input with the position server-side.
|
||||||
// The client sends this packet when the ServerAuthoritativeMovementMode field in the StartGame packet is set
|
// The client sends this packet when the ServerAuthoritativeMovementMode field in the StartGame packet is set
|
||||||
@@ -172,7 +76,7 @@ func (pk *PlayerAuthInput) Marshal(io protocol.IO) {
|
|||||||
io.Vec2(&pk.MoveVector)
|
io.Vec2(&pk.MoveVector)
|
||||||
io.Float32(&pk.HeadYaw)
|
io.Float32(&pk.HeadYaw)
|
||||||
if proto.IsProtoGTE(io, proto.ID766) {
|
if proto.IsProtoGTE(io, proto.ID766) {
|
||||||
io.Bitset(&pk.InputData, PlayerAuthInputBitsetSize)
|
io.Bitset(&pk.InputData, packet.PlayerAuthInputBitsetSize)
|
||||||
} else {
|
} else {
|
||||||
io.Bitset(&pk.InputData, 64)
|
io.Bitset(&pk.InputData, 64)
|
||||||
}
|
}
|
||||||
@@ -184,19 +88,19 @@ func (pk *PlayerAuthInput) Marshal(io protocol.IO) {
|
|||||||
io.Varuint64(&pk.Tick)
|
io.Varuint64(&pk.Tick)
|
||||||
io.Vec3(&pk.Delta)
|
io.Vec3(&pk.Delta)
|
||||||
|
|
||||||
if pk.InputData.Load(InputFlagPerformItemInteraction) {
|
if pk.InputData.Load(packet.InputFlagPerformItemInteraction) {
|
||||||
io.PlayerInventoryAction(&pk.ItemInteractionData)
|
io.PlayerInventoryAction(&pk.ItemInteractionData)
|
||||||
}
|
}
|
||||||
|
|
||||||
if pk.InputData.Load(InputFlagPerformItemStackRequest) {
|
if pk.InputData.Load(packet.InputFlagPerformItemStackRequest) {
|
||||||
protocol.Single(io, &pk.ItemStackRequest)
|
protocol.Single(io, &pk.ItemStackRequest)
|
||||||
}
|
}
|
||||||
|
|
||||||
if pk.InputData.Load(InputFlagPerformBlockActions) {
|
if pk.InputData.Load(packet.InputFlagPerformBlockActions) {
|
||||||
protocol.SliceVarint32Length(io, &pk.BlockActions)
|
protocol.SliceVarint32Length(io, &pk.BlockActions)
|
||||||
}
|
}
|
||||||
|
|
||||||
if pk.InputData.Load(InputFlagClientPredictedVehicle) {
|
if pk.InputData.Load(packet.InputFlagClientPredictedVehicle) {
|
||||||
io.Vec2(&pk.VehicleRotation)
|
io.Vec2(&pk.VehicleRotation)
|
||||||
io.Varint64(&pk.ClientPredictedVehicle)
|
io.Varint64(&pk.ClientPredictedVehicle)
|
||||||
}
|
}
|
||||||
|
|||||||
130
legacyver/proto/camera.go
Normal file
130
legacyver/proto/camera.go
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
package proto
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/go-gl/mathgl/mgl32"
|
||||||
|
"github.com/sandertv/gophertunnel/minecraft/protocol"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CameraPreset represents a basic preset that can be extended upon by more complex instructions.
|
||||||
|
type CameraPreset struct {
|
||||||
|
// Name is the name of the preset. Each preset must have their own unique name.
|
||||||
|
Name string
|
||||||
|
// Parent is the name of the preset that this preset extends upon. This can be left empty.
|
||||||
|
Parent string
|
||||||
|
// PosX is the default X position of the camera.
|
||||||
|
PosX protocol.Optional[float32]
|
||||||
|
// PosY is the default Y position of the camera.
|
||||||
|
PosY protocol.Optional[float32]
|
||||||
|
// PosZ is the default Z position of the camera.
|
||||||
|
PosZ protocol.Optional[float32]
|
||||||
|
// RotX is the default pitch of the camera.
|
||||||
|
RotX protocol.Optional[float32]
|
||||||
|
// RotY is the default yaw of the camera.
|
||||||
|
RotY protocol.Optional[float32]
|
||||||
|
// RotationSpeed is the speed at which the camera should rotate.
|
||||||
|
RotationSpeed protocol.Optional[float32]
|
||||||
|
// SnapToTarget determines whether the camera should snap to the target entity or not.
|
||||||
|
SnapToTarget protocol.Optional[bool]
|
||||||
|
// HorizontalRotationLimit is the horizontal rotation limit of the camera.
|
||||||
|
HorizontalRotationLimit protocol.Optional[mgl32.Vec2]
|
||||||
|
// VerticalRotationLimit is the vertical rotation limit of the camera.
|
||||||
|
VerticalRotationLimit protocol.Optional[mgl32.Vec2]
|
||||||
|
// ContinueTargeting determines whether the camera should continue targeting when using aim assist.
|
||||||
|
ContinueTargeting protocol.Optional[bool]
|
||||||
|
// TrackingRadius is the radius around the camera that the aim assist should track targets.
|
||||||
|
TrackingRadius protocol.Optional[float32]
|
||||||
|
// ViewOffset is only used in a follow_orbit camera and controls an offset based on a pivot point to the
|
||||||
|
// player, causing it to be shifted in a certain direction.
|
||||||
|
ViewOffset protocol.Optional[mgl32.Vec2]
|
||||||
|
// EntityOffset controls the offset from the entity that the camera should be rendered at.
|
||||||
|
EntityOffset protocol.Optional[mgl32.Vec3]
|
||||||
|
// Radius is only used in a follow_orbit camera and controls how far away from the player the camera should
|
||||||
|
// be rendered.
|
||||||
|
Radius protocol.Optional[float32]
|
||||||
|
// AudioListener defines where the audio should be played from when using this preset. This is one of the
|
||||||
|
// constants above.
|
||||||
|
AudioListener protocol.Optional[byte]
|
||||||
|
// PlayerEffects is currently unknown.
|
||||||
|
PlayerEffects protocol.Optional[bool]
|
||||||
|
// AlignTargetAndCameraForward determines whether the camera should align the target and the camera forward
|
||||||
|
// or not.
|
||||||
|
AlignTargetAndCameraForward protocol.Optional[bool]
|
||||||
|
// AimAssist defines the aim assist to use when using this preset.
|
||||||
|
AimAssist protocol.Optional[protocol.CameraPresetAimAssist]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CameraPreset) FromLatest(cp protocol.CameraPreset) {
|
||||||
|
x.Name = cp.Name
|
||||||
|
x.Parent = cp.Parent
|
||||||
|
x.PosX = cp.PosX
|
||||||
|
x.PosY = cp.PosY
|
||||||
|
x.PosZ = cp.PosZ
|
||||||
|
x.RotX = cp.RotX
|
||||||
|
x.RotY = cp.RotY
|
||||||
|
x.RotationSpeed = cp.RotationSpeed
|
||||||
|
x.SnapToTarget = cp.SnapToTarget
|
||||||
|
x.HorizontalRotationLimit = cp.HorizontalRotationLimit
|
||||||
|
x.VerticalRotationLimit = cp.VerticalRotationLimit
|
||||||
|
x.ContinueTargeting = cp.ContinueTargeting
|
||||||
|
x.TrackingRadius = cp.TrackingRadius
|
||||||
|
x.ViewOffset = cp.ViewOffset
|
||||||
|
x.EntityOffset = cp.EntityOffset
|
||||||
|
x.Radius = cp.Radius
|
||||||
|
x.AudioListener = cp.AudioListener
|
||||||
|
x.PlayerEffects = cp.PlayerEffects
|
||||||
|
x.AlignTargetAndCameraForward = cp.AlignTargetAndCameraForward
|
||||||
|
x.AimAssist = cp.AimAssist
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *CameraPreset) ToLatest() protocol.CameraPreset {
|
||||||
|
return protocol.CameraPreset{
|
||||||
|
Name: x.Name,
|
||||||
|
Parent: x.Parent,
|
||||||
|
PosX: x.PosX,
|
||||||
|
PosY: x.PosY,
|
||||||
|
PosZ: x.PosZ,
|
||||||
|
RotX: x.RotX,
|
||||||
|
RotY: x.RotY,
|
||||||
|
RotationSpeed: x.RotationSpeed,
|
||||||
|
SnapToTarget: x.SnapToTarget,
|
||||||
|
HorizontalRotationLimit: x.HorizontalRotationLimit,
|
||||||
|
VerticalRotationLimit: x.VerticalRotationLimit,
|
||||||
|
ContinueTargeting: x.ContinueTargeting,
|
||||||
|
TrackingRadius: x.TrackingRadius,
|
||||||
|
ViewOffset: x.ViewOffset,
|
||||||
|
EntityOffset: x.EntityOffset,
|
||||||
|
Radius: x.Radius,
|
||||||
|
AudioListener: x.AudioListener,
|
||||||
|
PlayerEffects: x.PlayerEffects,
|
||||||
|
AlignTargetAndCameraForward: x.AlignTargetAndCameraForward,
|
||||||
|
AimAssist: x.AimAssist,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Marshal encodes/decodes a CameraPreset.
|
||||||
|
func (x *CameraPreset) Marshal(r protocol.IO) {
|
||||||
|
r.String(&x.Name)
|
||||||
|
r.String(&x.Parent)
|
||||||
|
protocol.OptionalFunc(r, &x.PosX, r.Float32)
|
||||||
|
protocol.OptionalFunc(r, &x.PosY, r.Float32)
|
||||||
|
protocol.OptionalFunc(r, &x.PosZ, r.Float32)
|
||||||
|
protocol.OptionalFunc(r, &x.RotX, r.Float32)
|
||||||
|
protocol.OptionalFunc(r, &x.RotY, r.Float32)
|
||||||
|
protocol.OptionalFunc(r, &x.RotationSpeed, r.Float32)
|
||||||
|
protocol.OptionalFunc(r, &x.SnapToTarget, r.Bool)
|
||||||
|
protocol.OptionalFunc(r, &x.HorizontalRotationLimit, r.Vec2)
|
||||||
|
protocol.OptionalFunc(r, &x.VerticalRotationLimit, r.Vec2)
|
||||||
|
protocol.OptionalFunc(r, &x.ContinueTargeting, r.Bool)
|
||||||
|
if IsProtoGTE(r, ID766) {
|
||||||
|
protocol.OptionalFunc(r, &x.TrackingRadius, r.Float32)
|
||||||
|
}
|
||||||
|
protocol.OptionalFunc(r, &x.ViewOffset, r.Vec2)
|
||||||
|
protocol.OptionalFunc(r, &x.EntityOffset, r.Vec3)
|
||||||
|
protocol.OptionalFunc(r, &x.Radius, r.Float32)
|
||||||
|
protocol.OptionalFunc(r, &x.AudioListener, r.Uint8)
|
||||||
|
protocol.OptionalFunc(r, &x.PlayerEffects, r.Bool)
|
||||||
|
protocol.OptionalFunc(r, &x.AlignTargetAndCameraForward, r.Bool)
|
||||||
|
if IsProtoGTE(r, ID766) {
|
||||||
|
protocol.OptionalMarshaler(r, &x.AimAssist)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,8 +19,10 @@ func init() {
|
|||||||
|
|
||||||
packetPoolServer[packet.IDItemStackResponse] = func() packet.Packet { return &legacypacket.ItemStackResponse{} }
|
packetPoolServer[packet.IDItemStackResponse] = func() packet.Packet { return &legacypacket.ItemStackResponse{} }
|
||||||
packetPoolServer[packet.IDResourcePacksInfo] = func() packet.Packet { return &legacypacket.ResourcePacksInfo{} }
|
packetPoolServer[packet.IDResourcePacksInfo] = func() packet.Packet { return &legacypacket.ResourcePacksInfo{} }
|
||||||
|
packetPoolServer[packet.IDCameraPresets] = func() packet.Packet { return &legacypacket.CameraPresets{} }
|
||||||
|
|
||||||
packetPoolClient[packet.IDPlayerAuthInput] = func() packet.Packet { return &legacypacket.PlayerAuthInput{} }
|
packetPoolClient[packet.IDPlayerAuthInput] = func() packet.Packet { return &legacypacket.PlayerAuthInput{} }
|
||||||
|
packetPoolClient[packet.IDCameraAimAssist] = func() packet.Packet { return &legacypacket.CameraAimAssist{} }
|
||||||
}
|
}
|
||||||
|
|
||||||
type Protocol struct {
|
type Protocol struct {
|
||||||
@@ -69,6 +71,14 @@ func (p *Protocol) ConvertFromLatest(pk packet.Packet, conn *minecraft.Conn) []p
|
|||||||
func (p *Protocol) downgradePackets(pks []packet.Packet, conn *minecraft.Conn) []packet.Packet {
|
func (p *Protocol) downgradePackets(pks []packet.Packet, conn *minecraft.Conn) []packet.Packet {
|
||||||
for pkIndex, pk := range pks {
|
for pkIndex, pk := range pks {
|
||||||
switch pk := pk.(type) {
|
switch pk := pk.(type) {
|
||||||
|
case *packet.CameraPresets:
|
||||||
|
presets := make([]proto.CameraPreset, len(pk.Presets))
|
||||||
|
for i, p := range pk.Presets {
|
||||||
|
presets[i].FromLatest(p)
|
||||||
|
}
|
||||||
|
pks[pkIndex] = &legacypacket.CameraPresets{
|
||||||
|
Presets: presets,
|
||||||
|
}
|
||||||
case *packet.StartGame:
|
case *packet.StartGame:
|
||||||
pk.GameVersion = p.ver
|
pk.GameVersion = p.ver
|
||||||
pk.BaseGameVersion = p.ver
|
pk.BaseGameVersion = p.ver
|
||||||
@@ -163,6 +173,14 @@ func (p *Protocol) downgradePackets(pks []packet.Packet, conn *minecraft.Conn) [
|
|||||||
func (p *Protocol) upgradePackets(pks []packet.Packet, conn *minecraft.Conn) []packet.Packet {
|
func (p *Protocol) upgradePackets(pks []packet.Packet, conn *minecraft.Conn) []packet.Packet {
|
||||||
for pkIndex, pk := range pks {
|
for pkIndex, pk := range pks {
|
||||||
switch pk := pk.(type) {
|
switch pk := pk.(type) {
|
||||||
|
case *legacypacket.CameraPresets:
|
||||||
|
presets := make([]protocol.CameraPreset, len(pk.Presets))
|
||||||
|
for i, p := range pk.Presets {
|
||||||
|
presets[i] = p.ToLatest()
|
||||||
|
}
|
||||||
|
pks[pkIndex] = &packet.CameraPresets{
|
||||||
|
Presets: presets,
|
||||||
|
}
|
||||||
case *packet.StartGame:
|
case *packet.StartGame:
|
||||||
pk.GameVersion = p.ver
|
pk.GameVersion = p.ver
|
||||||
pk.BaseGameVersion = p.ver
|
pk.BaseGameVersion = p.ver
|
||||||
|
|||||||
@@ -15,11 +15,11 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
//go:embed item_runtime_ids_748.nbt
|
//go:embed data/item_runtime_ids_748.nbt
|
||||||
itemRuntimeIDData748 []byte
|
itemRuntimeIDData748 []byte
|
||||||
//go:embed required_item_list_748.json
|
//go:embed data/required_item_list_748.json
|
||||||
requiredItemList748 []byte
|
requiredItemList748 []byte
|
||||||
//go:embed block_states_748.nbt
|
//go:embed data/block_states_748.nbt
|
||||||
blockStateData748 []byte
|
blockStateData748 []byte
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -13,11 +13,11 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
//go:embed item_runtime_ids_766.nbt
|
//go:embed data/item_runtime_ids_766.nbt
|
||||||
itemRuntimeIDData766 []byte
|
itemRuntimeIDData766 []byte
|
||||||
//go:embed required_item_list_766.json
|
//go:embed data/required_item_list_766.json
|
||||||
requiredItemList766 []byte
|
requiredItemList766 []byte
|
||||||
//go:embed block_states_766.nbt
|
//go:embed data/block_states_766.nbt
|
||||||
blockStateData766 []byte
|
blockStateData766 []byte
|
||||||
|
|
||||||
itemMappingLatest = mapping.NewItemMapping(itemRuntimeIDData766, requiredItemList766, ItemVersion766, false)
|
itemMappingLatest = mapping.NewItemMapping(itemRuntimeIDData766, requiredItemList766, ItemVersion766, false)
|
||||||
|
|||||||
Reference in New Issue
Block a user