goserver_sync/srvlib/action/transithandler.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
}