From 1b62f6fec13fdaf942d6bbabee5a2163ebeb6b0e Mon Sep 17 00:00:00 2001 From: 1 <1@72wo.cn> Date: Mon, 22 Sep 2025 09:15:26 +0000 Subject: [PATCH] =?UTF-8?q?refactor(user):=20=E9=87=8D=E6=9E=84=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=9C=8D=E5=8A=A1=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E5=B0=86login=E6=A8=A1=E5=9D=97=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E8=87=B3user=E6=A8=A1=E5=9D=97=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=9B=B8=E5=85=B3=E7=BB=93=E6=9E=84=E4=BD=93?= =?UTF-8?q?=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logic/controller/CreatePlayer.go | 9 +++++---- logic/controller/getserver.go | 8 ++++---- logic/controller/login.go | 7 ++++--- logic/controller/task.go | 11 ----------- logic/controller/user.go | 9 +++++++++ .../{login/create_player.go => user/CREATE_ROLE.go} | 2 +- logic/service/{commendsvr => user}/CommendSvrInfo.go | 6 ++---- logic/service/user/{user.go => GET_SIM_USERINFO.go} | 3 --- .../service/{login/LoginSidInfo.go => user/Login.go} | 12 ++++++------ 9 files changed, 31 insertions(+), 36 deletions(-) rename logic/service/{login/create_player.go => user/CREATE_ROLE.go} (98%) rename logic/service/{commendsvr => user}/CommendSvrInfo.go (93%) rename logic/service/user/{user.go => GET_SIM_USERINFO.go} (95%) rename logic/service/{login/LoginSidInfo.go => user/Login.go} (70%) diff --git a/logic/controller/CreatePlayer.go b/logic/controller/CreatePlayer.go index 42a2cf388..c737dac74 100644 --- a/logic/controller/CreatePlayer.go +++ b/logic/controller/CreatePlayer.go @@ -5,25 +5,26 @@ import ( "blazing/cool" "blazing/logic/service/common" - "blazing/logic/service/login" + "blazing/logic/service/player" "blazing/logic/service/space" + "blazing/logic/service/user" blservice "blazing/modules/blazing/service" "strings" ) // 处理命令: 1001 -func (h *Controller) CreatePlayer(data *login.CreatePlayerInboundInfo, c *player.Conn) (result *login.CreatePlayerOutInfo, err errorcode.ErrorCode) { +func (h *Controller) CreatePlayer(data *user.CreatePlayerInboundInfo, c *player.Conn) (result *user.CreatePlayerOutInfo, err errorcode.ErrorCode) { blservice.NewUserService(data.Head.UserID).Reg(cool.Filter.Replace(data.Nickname, '*'), data.Color) return result, 0 } -func (h *Controller) ChangePlayerName(data *login.ChangePlayerNameInboundInfo, c *player.Player) (result *login.ChangePlayerNameOutboundInfo, err errorcode.ErrorCode) { +func (h *Controller) ChangePlayerName(data *user.ChangePlayerNameInboundInfo, c *player.Player) (result *user.ChangePlayerNameOutboundInfo, err errorcode.ErrorCode) { newnice := cool.Filter.Replace(strings.Trim(data.Nickname, "\x00"), '*') c.Info.Nick = newnice - result = &login.ChangePlayerNameOutboundInfo{ + result = &user.ChangePlayerNameOutboundInfo{ Nickname: newnice, UserID: c.Info.UserID, } diff --git a/logic/controller/getserver.go b/logic/controller/getserver.go index 99e200ad9..70334402a 100644 --- a/logic/controller/getserver.go +++ b/logic/controller/getserver.go @@ -3,14 +3,14 @@ package controller import ( "blazing/common/socket/errorcode" - "blazing/logic/service/commendsvr" "blazing/logic/service/player" + "blazing/logic/service/user" ) // 处理命令: 105 -func (h *Controller) GetServer(data *commendsvr.SidInfo, c *player.Conn) (result *commendsvr.CommendSvrInfo, err errorcode.ErrorCode) { //这个时候player应该是空的 - result = commendsvr.NewInInfo() - result.ServerList = commendsvr.GetServerInfoList() +func (h *Controller) COMMEND_ONLINE(data *user.SidInfo, c *player.Conn) (result *user.CommendSvrInfo, err errorcode.ErrorCode) { //这个时候player应该是空的 + result = user.NewInInfo() + result.ServerList = user.GetServerInfoList() return //return //TODO 这里待实现改成接口调用Ret方法 diff --git a/logic/controller/login.go b/logic/controller/login.go index 71b1b5b6b..775f3c388 100644 --- a/logic/controller/login.go +++ b/logic/controller/login.go @@ -6,7 +6,8 @@ import ( "blazing/common/socket/errorcode" "blazing/logic/service/common" - "blazing/logic/service/login" + "blazing/logic/service/user" + "blazing/logic/service/maps" "blazing/logic/service/player" "blazing/logic/service/space" @@ -29,7 +30,7 @@ func IsToday(t time.Time) bool { } // 处理命令: 1001 -func (h *Controller) Login(data *login.InInfo, c *player.Conn) (result *login.OutInfo, err errorcode.ErrorCode) { //这个时候player应该是空的 +func (h *Controller) Login(data *user.MAIN_LOGIN_IN, c *player.Conn) (result *user.LoginMSInfo, err errorcode.ErrorCode) { //这个时候player应该是空的 if tt := data.CheakSession(); tt { //说明sid正确 h.RPCClient.Kick(data.Head.UserID) //先踢人 @@ -65,7 +66,7 @@ func (h *Controller) Login(data *login.InInfo, c *player.Conn) (result *login.Ou glog.Debug(context.Background(), "登录成功,初始地图 人数:", space.GetSpace(t.Info.MapID).Len()) - result = login.NewOutInfo() //设置登录消息 + result = user.NewOutInfo() //设置登录消息 result.PlayerInfo = *t.Info diff --git a/logic/controller/task.go b/logic/controller/task.go index aebe9ddf9..bf3c18eed 100644 --- a/logic/controller/task.go +++ b/logic/controller/task.go @@ -6,8 +6,6 @@ import ( "blazing/logic/service/player" "blazing/logic/service/task" "blazing/modules/blazing/model" - "math/rand" - "time" ) /** @@ -53,15 +51,6 @@ func (h Controller) AddTaskBuf(data *task.AddTaskBufInboundInfo, c *player.Playe return &task.AddTaskBufOutboundInfo{}, 0 } -// 生成0-24的随机整数 -func randInt0To24() int { - // 初始化随机种子(仅需初始化一次) - rand.Seed(time.Now().UnixNano()) - - // 生成0-24的随机数(Intn(n)返回[0, n)的整数) - return rand.Intn(25) -} - /** * 完成任务 */ diff --git a/logic/controller/user.go b/logic/controller/user.go index bc02e69db..423437909 100644 --- a/logic/controller/user.go +++ b/logic/controller/user.go @@ -8,12 +8,21 @@ import ( "github.com/jinzhu/copier" ) +// UserSimInfo 根据用户ID获取模拟用户信息 +// data: 包含用户ID的输入信息 +// c: 玩家对象 +// 返回: 模拟用户信息及错误码 func (h Controller) UserSimInfo(data *user.SimUserInfoInboundInfo, c *player.Player) (result *user.SimUserInfoOutboundInfo, err errorcode.ErrorCode) { ret := &user.SimUserInfoOutboundInfo{} copier.Copy(ret, c.Service.PersonOther(data.UserId)) return ret, 0 } + +// UserMoreInfo 获取用户的更多信息。 +// data: 包含用户ID的输入信息。 +// c: 当前玩家对象。 +// 返回: 包含用户更多信息的输出结果和错误码。 func (h Controller) UserMoreInfo(data *user.MoreUserInfoInboundInfo, c *player.Player) (result *user.MoreUserInfoOutboundInfo, err errorcode.ErrorCode) { ret := &user.MoreUserInfoOutboundInfo{} info := c.Service.PersonOther(data.UserId) diff --git a/logic/service/login/create_player.go b/logic/service/user/CREATE_ROLE.go similarity index 98% rename from logic/service/login/create_player.go rename to logic/service/user/CREATE_ROLE.go index 0f186ca1b..2ef94de2e 100644 --- a/logic/service/login/create_player.go +++ b/logic/service/user/CREATE_ROLE.go @@ -1,4 +1,4 @@ -package login +package user import "blazing/logic/service/player" diff --git a/logic/service/commendsvr/CommendSvrInfo.go b/logic/service/user/CommendSvrInfo.go similarity index 93% rename from logic/service/commendsvr/CommendSvrInfo.go rename to logic/service/user/CommendSvrInfo.go index 0cdea5f2b..a148c48de 100644 --- a/logic/service/commendsvr/CommendSvrInfo.go +++ b/logic/service/user/CommendSvrInfo.go @@ -1,4 +1,4 @@ -package commendsvr +package user import ( "blazing/cool" @@ -15,9 +15,7 @@ type SidInfo struct { //这里直接使用组合来实现将传入的原始头 Head player.TomeeHeader `cmd:"105" struc:"[0]pad"` //玩家登录 Sid []byte `struc:"[20]byte"` // 登录会话ID,固定长度16字节 - ret []byte `struc:"[0]pad"` - // NotLogin uint32 `error="10001"|struc:"[0]pad"` //返回错误码 ,不序列化,仅作为错误码 - // ErrorPassWord uint32 `struc:"[0]pad"` + // ret []byte `struc:"[0]pad"` } // CommendSvrInfo 初始连接请求信息结构体 diff --git a/logic/service/user/user.go b/logic/service/user/GET_SIM_USERINFO.go similarity index 95% rename from logic/service/user/user.go rename to logic/service/user/GET_SIM_USERINFO.go index 32884deda..8b393d538 100644 --- a/logic/service/user/user.go +++ b/logic/service/user/GET_SIM_USERINFO.go @@ -5,20 +5,17 @@ import ( "blazing/modules/blazing/model" ) -// SimUserInfoInboundInfo 对应 Java 的 SimUserInfoInboundInfo 类 type SimUserInfoInboundInfo struct { Head player.TomeeHeader `cmd:"2051" struc:"[0]pad"` UserId uint32 `fieldDescription:"米米号" uint:"true" codec:"true"` } type SimUserInfoOutboundInfo struct { // UserID 米米号 - // 对应 Java 注解: @FieldDescription("米米号") @UInt UserID uint32 `codec:"true"` Nick string `struc:"[16]byte" default:"seer" json:"nick"` // 16字节昵称 // Color rgb颜色 - // 对应 Java 注解: @FieldDescription("rgb颜色") @UInt Color uint32 `codec:"true"` // Texture 纹理 0 diff --git a/logic/service/login/LoginSidInfo.go b/logic/service/user/Login.go similarity index 70% rename from logic/service/login/LoginSidInfo.go rename to logic/service/user/Login.go index be5fd83b3..9a1daed4d 100644 --- a/logic/service/login/LoginSidInfo.go +++ b/logic/service/user/Login.go @@ -1,4 +1,4 @@ -package login +package user import ( "blazing/common/data/share" @@ -12,14 +12,14 @@ import ( ) // LoginSidInfo 登录携带的凭证结构体 -type InInfo struct { //这里直接使用组合来实现将传入的原始头部数据和结构体参数序列化 +type MAIN_LOGIN_IN struct { //这里直接使用组合来实现将传入的原始头部数据和结构体参数序列化 Head player.TomeeHeader `cmd:"1001" struc:"[0]pad"` //玩家登录 Sid []byte `struc:"[16]byte"` // 登录会话ID,固定长度16字节 } -func (l *InInfo) CheakSession() bool { +func (l *MAIN_LOGIN_IN) CheakSession() bool { // tt, _ := cool.CacheManager.Keys(context.Background()) //g.Dump(tt) t1 := hex.EncodeToString(l.Sid) @@ -33,13 +33,13 @@ func (l *InInfo) CheakSession() bool { return t == l.Head.UserID } -type OutInfo struct { +type LoginMSInfo struct { model.PlayerInfo } -func NewOutInfo() *OutInfo { +func NewOutInfo() *LoginMSInfo { - l := &OutInfo{ + l := &LoginMSInfo{ PlayerInfo: *model.NewPlayerInfo(), }