36 lines
1.0 KiB
Go
36 lines
1.0 KiB
Go
package action
|
|
|
|
import (
|
|
"mongo.games.com/goserver/core/logger"
|
|
"mongo.games.com/goserver/core/netlib"
|
|
"mongo.games.com/goserver/srvlib"
|
|
"mongo.games.com/goserver/srvlib/protocol"
|
|
)
|
|
|
|
type PacketTransitPacketFactory struct {
|
|
}
|
|
|
|
type PacketTransitHandler struct {
|
|
}
|
|
|
|
func init() {
|
|
netlib.RegisterHandler(int(protocol.SrvlibPacketID_PACKET_SS_TRANSIT), &PacketTransitHandler{})
|
|
netlib.RegisterFactory(int(protocol.SrvlibPacketID_PACKET_SS_TRANSIT), &PacketTransitPacketFactory{})
|
|
}
|
|
|
|
func (this *PacketTransitPacketFactory) CreatePacket() interface{} {
|
|
pack := &protocol.SSPacketTransit{}
|
|
return pack
|
|
}
|
|
|
|
func (this *PacketTransitHandler) Process(s *netlib.Session, packetid int, data interface{}) error {
|
|
logger.Logger.Trace("PacketTransitHandler.Process")
|
|
if pr, ok := data.(*protocol.SSPacketTransit); ok {
|
|
targetS := srvlib.ServerSessionMgrSington.GetSession(int(pr.GetSArea()), int(pr.GetSType()), int(pr.GetSId()))
|
|
if targetS != nil {
|
|
targetS.Send(int(pr.GetPacketId()), pr.GetData())
|
|
}
|
|
}
|
|
return nil
|
|
}
|