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