add license and fix some bugs
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
package packet
|
||||
|
||||
import (
|
||||
"git.konjactw.dev/falloutBot/go-mc/data/packetid"
|
||||
pk "git.konjactw.dev/falloutBot/go-mc/net/packet"
|
||||
)
|
||||
import loginclient "git.konjactw.dev/patyhank/minego/pkg/protocol/packet/login/client"
|
||||
import gameclient "git.konjactw.dev/patyhank/minego/pkg/protocol/packet/game/client"
|
||||
import configclient "git.konjactw.dev/patyhank/minego/pkg/protocol/packet/configuration/client"
|
||||
import loginserver "git.konjactw.dev/patyhank/minego/pkg/protocol/packet/login/server"
|
||||
import gameserver "git.konjactw.dev/patyhank/minego/pkg/protocol/packet/game/server"
|
||||
import configserver "git.konjactw.dev/patyhank/minego/pkg/protocol/packet/configuration/server"
|
||||
|
||||
type ServerboundPacket interface {
|
||||
pk.Field
|
||||
PacketID() packetid.ServerboundPacketID
|
||||
}
|
||||
|
||||
type ClientboundPacket interface {
|
||||
pk.Field
|
||||
PacketID() packetid.ClientboundPacketID
|
||||
}
|
||||
|
||||
type State int32
|
||||
|
||||
const (
|
||||
StateLogin State = iota
|
||||
StateConfig
|
||||
StatePlay
|
||||
)
|
||||
|
||||
func GetClientPacket(state State, id int32) ClientboundPacket {
|
||||
switch state {
|
||||
case StateLogin:
|
||||
return loginclient.ClientboundPackets[packetid.ClientboundPacketID(id)]()
|
||||
case StateConfig:
|
||||
return configclient.ClientboundPackets[packetid.ClientboundPacketID(id)]()
|
||||
case StatePlay:
|
||||
return gameclient.ClientboundPackets[packetid.ClientboundPacketID(id)]()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetServerPacket(state State, id int32) ServerboundPacket {
|
||||
switch state {
|
||||
case StateLogin:
|
||||
creator := loginserver.ServerboundPackets[packetid.ServerboundPacketID(id)]
|
||||
if creator == nil {
|
||||
return nil
|
||||
}
|
||||
return creator()
|
||||
case StateConfig:
|
||||
creator := configserver.ServerboundPackets[packetid.ServerboundPacketID(id)]
|
||||
if creator == nil {
|
||||
return nil
|
||||
}
|
||||
return creator()
|
||||
case StatePlay:
|
||||
creator := gameserver.ServerboundPackets[packetid.ServerboundPacketID(id)]
|
||||
if creator == nil {
|
||||
return nil
|
||||
}
|
||||
return creator()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user