88 lines
2.3 KiB
Go
88 lines
2.3 KiB
Go
package handler
|
|
|
|
import (
|
|
"ecs/proto"
|
|
"ecs/servers/game/logic"
|
|
"github.com/oylshe1314/framework/http"
|
|
"github.com/oylshe1314/framework/util"
|
|
)
|
|
|
|
func (this *InnerHandler) ServerInfo(msg *http.Message) {
|
|
var req = new(proto.MsgServerInfoReq)
|
|
var err = msg.Read(req)
|
|
if err != nil {
|
|
this.Logger().Error("Read message error, ", err)
|
|
_ = msg.Reply(proto.ErrMessageError)
|
|
return
|
|
}
|
|
|
|
if this.Logger().IsDebugEnabled() {
|
|
this.Logger().Debugf("[%s] <- ServerInfo, req: %s", msg.R.RemoteAddr, util.ToJsonString(req))
|
|
}
|
|
|
|
var ack = &proto.MsgServerInfoAck{}
|
|
|
|
var serverConfig = this.serverManager.Config()
|
|
ack.Id = serverConfig.AreaConfig.Id
|
|
ack.Platform = serverConfig.AreaConfig.Platform
|
|
ack.Channel = serverConfig.AreaConfig.Channel
|
|
ack.Area = serverConfig.AreaConfig.Area
|
|
ack.Name = serverConfig.AreaConfig.Name
|
|
ack.Online = this.serverManager.Online()
|
|
|
|
if req.UserId != 0 {
|
|
var roles []*logic.Player
|
|
roles, err = this.playerManager.QueryPlayers(req.UserId)
|
|
if err != nil {
|
|
this.Logger().Error("QueryPlayers error, ", err)
|
|
_ = msg.Read(proto.ErrInternalError)
|
|
return
|
|
}
|
|
|
|
for _, role := range roles {
|
|
if ack.RoleLv < role.RoleLevel {
|
|
ack.RoleLv = role.RoleLevel
|
|
}
|
|
}
|
|
}
|
|
|
|
if this.Logger().IsDebugEnabled() {
|
|
this.Logger().Debugf("[%s] -> ServerInfo, ack: %s", msg.R.RemoteAddr, util.ToJsonString(ack))
|
|
}
|
|
|
|
_ = msg.Reply(ack)
|
|
}
|
|
|
|
func (this *InnerHandler) ServerClose(msg *http.Message) {
|
|
if this.Logger().IsDebugEnabled() {
|
|
this.Logger().Debugf("[%s] <- ServerClose, req: %s", msg.R.RemoteAddr, util.ToJsonString(nil))
|
|
}
|
|
|
|
this.playerManager.KickAll(proto.ErrServerOffline.Error())
|
|
|
|
if this.Logger().IsDebugEnabled() {
|
|
this.Logger().Debugf("[%s] -> ServerClose, ack: %s", msg.R.RemoteAddr, util.ToJsonString(nil))
|
|
}
|
|
|
|
_ = msg.Reply(nil)
|
|
}
|
|
|
|
func (this *InnerHandler) ServerDataReload(msg *http.Message) {
|
|
if this.Logger().IsDebugEnabled() {
|
|
this.Logger().Debugf("[%s] <- ServerDataReload, req: %s", msg.R.RemoteAddr, util.ToJsonString(nil))
|
|
}
|
|
|
|
var err = this.serverManager.Reload()
|
|
if err != nil {
|
|
this.Logger().Error("Data reload failed, ", err)
|
|
_ = msg.Reply(proto.ErrDataReloadFailed)
|
|
return
|
|
}
|
|
|
|
if this.Logger().IsDebugEnabled() {
|
|
this.Logger().Debugf("[%s] <- ServerDataReload, ack: %s", msg.R.RemoteAddr, util.ToJsonString(nil))
|
|
}
|
|
|
|
_ = msg.Reply(nil)
|
|
}
|