91 lines
2.7 KiB
Go
91 lines
2.7 KiB
Go
package main
|
|
|
|
import (
|
|
"mongo.games.com/game/common"
|
|
"mongo.games.com/game/proto"
|
|
"mongo.games.com/game/protocol/activity"
|
|
"mongo.games.com/goserver/core/logger"
|
|
"mongo.games.com/goserver/core/netlib"
|
|
)
|
|
|
|
// ------------------------------------------------
|
|
type CSSignPacketFactory struct {
|
|
}
|
|
|
|
type CSSignHandler struct {
|
|
}
|
|
|
|
func (this *CSSignPacketFactory) CreatePacket() interface{} {
|
|
pack := &activity.CSSign{}
|
|
return pack
|
|
}
|
|
|
|
func (this *CSSignHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
|
logger.Logger.Trace("CSSignHandler Process recv ", data)
|
|
if msg, ok := data.(*activity.CSSign); ok {
|
|
p := PlayerMgrSington.GetPlayer(sid)
|
|
if p == nil {
|
|
logger.Logger.Warn("CSSignHandler p == nil")
|
|
return nil
|
|
}
|
|
|
|
pack := &activity.SCSign{}
|
|
pack.SignIndex = proto.Int32(msg.GetSignIndex())
|
|
pack.SignType = proto.Int32(msg.GetSignType())
|
|
|
|
retCode := ActSignMgrSington.CanSign(p, int(msg.GetSignIndex()))
|
|
if retCode != activity.OpResultCode_ActSign_OPRC_Activity_Sign_Sucess {
|
|
pack.OpRetCode = retCode
|
|
proto.SetDefaults(pack)
|
|
p.SendToClient(int(activity.ActSignPacketID_PACKET_SCSign), pack)
|
|
return nil
|
|
}
|
|
retCode = ActSignMgrSington.Sign(p, int(msg.GetSignIndex()), msg.GetSignType())
|
|
if retCode != activity.OpResultCode_ActSign_OPRC_Activity_Sign_Sucess {
|
|
pack.OpRetCode = retCode
|
|
proto.SetDefaults(pack)
|
|
p.SendToClient(int(activity.ActSignPacketID_PACKET_SCSign), pack)
|
|
return nil
|
|
}
|
|
|
|
pack.OpRetCode = activity.OpResultCode_ActSign_OPRC_Activity_Sign_Sucess
|
|
proto.SetDefaults(pack)
|
|
p.SendToClient(int(activity.ActSignPacketID_PACKET_SCSign), pack)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ------------------------------------------------
|
|
type CSSignDataPacketFactory struct {
|
|
}
|
|
|
|
type CSSignDataHandler struct {
|
|
}
|
|
|
|
func (this *CSSignDataPacketFactory) CreatePacket() interface{} {
|
|
pack := &activity.CSSignData{}
|
|
return pack
|
|
}
|
|
|
|
func (this *CSSignDataHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
|
logger.Logger.Trace("CSSignDataHandler Process recv ", data)
|
|
if _, ok := data.(*activity.CSSignData); ok {
|
|
p := PlayerMgrSington.GetPlayer(sid)
|
|
if p == nil {
|
|
logger.Logger.Warn("CSSignDataHandler p == nil")
|
|
return nil
|
|
}
|
|
ActSignMgrSington.SendSignDataToPlayer(p)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func init() {
|
|
//签到
|
|
common.RegisterHandler(int(activity.ActSignPacketID_PACKET_CSSign), &CSSignHandler{})
|
|
netlib.RegisterFactory(int(activity.ActSignPacketID_PACKET_CSSign), &CSSignPacketFactory{})
|
|
//签到数据
|
|
common.RegisterHandler(int(activity.ActSignPacketID_PACKET_CSSignData), &CSSignDataHandler{})
|
|
netlib.RegisterFactory(int(activity.ActSignPacketID_PACKET_CSSignData), &CSSignDataPacketFactory{})
|
|
}
|