ecs/servers/game/handler/inner_server.go
2025-07-17 16:21:08 +08:00

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)
}