Skip to content

Commit

Permalink
Support 1.9.1 and 1.9.2
Browse files Browse the repository at this point in the history
  • Loading branch information
coelho committed Mar 30, 2016
1 parent 49df8fb commit 9728604
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 2 deletions.
2 changes: 1 addition & 1 deletion packet/minecraft/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const (
PACKET_SERVER_STATUS_PING = 0x01
)

var Versions = []int{107, 47, 5, 4}
var Versions = []int{109, 108, 107, 47, 5, 4}

var HandshakePacketServerCodec = packet.NewPacketCodecRegistryDual([]packet.PacketCodec{}, []packet.PacketCodec{
PACKET_SERVER_HANDSHAKE: new(CodecServerHandshake),
Expand Down
77 changes: 77 additions & 0 deletions packet/minecraft/v19/clientJoinGame01.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
package v19

import (
"github.com/LilyPad/GoLilyPad/packet"
minecraft "github.com/LilyPad/GoLilyPad/packet/minecraft"
"io"
)

type CodecClientJoinGame01 struct {
IdMap *minecraft.IdMap
}

func (this *CodecClientJoinGame01) Decode(reader io.Reader) (decode packet.Packet, err error) {
packetClientJoinGame := new(minecraft.PacketClientJoinGame)
packetClientJoinGame.IdFrom(this.IdMap)
packetClientJoinGame.EntityId, err = packet.ReadInt32(reader)
if err != nil {
return
}
packetClientJoinGame.Gamemode, err = packet.ReadInt8(reader)
if err != nil {
return
}
dimension32, err := packet.ReadInt32(reader)
if err != nil {
return
}
packetClientJoinGame.Dimension = int8(dimension32)
packetClientJoinGame.Difficulty, err = packet.ReadInt8(reader)
if err != nil {
return
}
packetClientJoinGame.MaxPlayers, err = packet.ReadInt8(reader)
if err != nil {
return
}
packetClientJoinGame.LevelType, err = packet.ReadString(reader)
if err != nil {
return
}
packetClientJoinGame.ReducedDebugInfo, err = packet.ReadBool(reader)
if err != nil {
return
}
decode = packetClientJoinGame
return
}

func (this *CodecClientJoinGame01) Encode(writer io.Writer, encode packet.Packet) (err error) {
packetClientJoinGame := encode.(*minecraft.PacketClientJoinGame)
err = packet.WriteInt32(writer, packetClientJoinGame.EntityId)
if err != nil {
return
}
err = packet.WriteInt8(writer, packetClientJoinGame.Gamemode)
if err != nil {
return
}
err = packet.WriteInt32(writer, int32(packetClientJoinGame.Dimension))
if err != nil {
return
}
err = packet.WriteInt8(writer, packetClientJoinGame.Difficulty)
if err != nil {
return
}
err = packet.WriteInt8(writer, packetClientJoinGame.MaxPlayers)
if err != nil {
return
}
err = packet.WriteString(writer, packetClientJoinGame.LevelType)
if err != nil {
return
}
err = packet.WriteBool(writer, packetClientJoinGame.ReducedDebugInfo)
return
}
19 changes: 19 additions & 0 deletions packet/minecraft/v19/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -405,3 +405,22 @@ var Version = &minecraft.Version{
}

var VersionNum = 107
var VersionNum01 = 108

var PlayPacketServerCodec01 *packet.PacketCodecRegistry = nil
var PlayPacketClientCodec01 *packet.PacketCodecRegistry = nil
var Version01 *minecraft.Version = nil

func init() {
PlayPacketServerCodec01 = PlayPacketServerCodec.Copy()
PlayPacketServerCodec01.EncodeCodecs[PACKET_CLIENT_JOIN_GAME] = &CodecClientJoinGame01{IdMap}
PlayPacketClientCodec01 = PlayPacketServerCodec01.Flip()
Version01 = &minecraft.Version{
Name: "1.9",
LoginClientCodec: mc18.LoginPacketClientCodec,
LoginServerCodec: mc18.LoginPacketServerCodec,
PlayClientCodec: PlayPacketClientCodec01,
PlayServerCodec: PlayPacketServerCodec01,
IdMap: IdMap,
}
}
4 changes: 3 additions & 1 deletion server/proxy/session.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,9 @@ func (this *Session) HandlePacket(packet packet.Packet) (err error) {
err = errors.New(fmt.Sprintf("Protocol version does not match: %d", this.protocolVersion))
return
}
if this.protocolVersion >= mc19.VersionNum {
if this.protocolVersion >= mc19.VersionNum01 {
this.protocol = mc19.Version01
} else if this.protocolVersion >= mc19.VersionNum {
this.protocol = mc19.Version
} else if this.protocolVersion >= mc18.VersionNum {
this.protocol = mc18.Version
Expand Down

0 comments on commit 9728604

Please sign in to comment.