Files
bl/logic/service/service.go
昔念 feabc7153a refactor(logic): 重构逻辑模块
- 移除了 player.go 中的 SendPackBytes 方法
- 将 TomeeHeader 中的 CMDID 改为 CMD,类型从 uint32 改为 EnumCommandID
- 删除了 controller 文件夹下的 service.go 和 login.go
- 新增了 login 文件夹下的 PlayerLoginService.go
- 优化了 main.go 中的 Start 函数,使用 controller.Recv 作为回调
2025-06-26 23:20:11 +08:00

32 lines
865 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package service
import (
"blazing/common/core"
"blazing/common/data/entity"
"github.com/panjf2000/gnet/v2"
)
func GetPlayer(c gnet.Conn, userid uint32) *entity.Player { //TODO 这里待优化,可能存在内存泄漏问题
//检查player初始化是否为conn初始后取map防止二次连接后存在两个player
clientdata := c.Context().(*entity.ClientData)
if clientdata != nil && clientdata.Player != nil {
return clientdata.Player
}
var player *entity.Player
if player1, ok := core.Mainplayer.Load((userid)); !ok {
player = entity.NewPlayer(
entity.WithUserID(userid), //注入ID
entity.WithConn(c), //注入conn
)
core.Mainplayer.Store(userid, player)
} else {
player = player1.(*entity.Player) //取成功,否则创建
}
clientdata.Player = player
return player
// return nil
}