feat(socket): 调整踢人逻辑以支持错误返回

将 KickPlayer 方法的返回值从 void 改为 error,
并在 KickPerson 中正确处理该错误返回。

fix(controller): 登录时增加延迟以确保踢人操作完成

在登录流程中添加 3 秒延迟,避免用户尚未被踢出就重新上线的问题。

feat(task): 完善任务缓冲获取逻辑

初始化 GetTaskBufOutboundInfo 时直接赋值 TaskId,
并移除后续重复赋值操作,提升代码可读性。

refactor(player): 优化玩家踢出方法结构

清理
This commit is contained in:
2025-10-16 12:16:03 +08:00
parent 09c6189b80
commit 42bb66f677
4 changed files with 10 additions and 7 deletions

View File

@@ -8,8 +8,8 @@ import (
func (h *Server) KickPerson(a int) error {
fmt.Println("检测到踢人请求", a)
player.KickPlayer(uint32(a))
return nil
return player.KickPlayer(uint32(a))
}
func (h *Server) QuitSelf(a int) error {
//TODO 这里待退出

View File

@@ -39,6 +39,7 @@ func (h *Controller) Login(data *user.MAIN_LOGIN_IN, c gnet.Conn) (result *user.
if err != nil {
fmt.Println("踢人失败", err)
}
<-time.After(time.Millisecond * 3000)
share.ShareManager.SetUserOnline(data.Head.UserID, h.Port) //设置用户登录服务器
t := player.GetPlayer(c, data.Head.UserID)
t.Service = blservice.NewUserService(data.Head.UserID)

View File

@@ -550,9 +550,11 @@ func (h Controller) Complete_Task(data *task.CompleteTaskInboundInfo, c *player.
* 获取任务状态
*/
func (h Controller) Get_Task_Buf(data *task.GetTaskBufInboundInfo, c *player.Player) (result *task.GetTaskBufOutboundInfo, err errorcode.ErrorCode) {
result = &task.GetTaskBufOutboundInfo{}
result = &task.GetTaskBufOutboundInfo{
TaskId: data.TaskId,
}
c.Service.Task(data.TaskId, func(te *model.TaskEX) bool {
result.TaskId = te.TaskID
result.TaskList = te.Data
return false
})

View File

@@ -29,7 +29,7 @@ func GetPlayer(c gnet.Conn, userid uint32) *Player { //TODO 这里待优化,可
return clientdata.Player
// return nil
}
func KickPlayer(userid uint32) { //踢出玩家
func KickPlayer(userid uint32) error { //踢出玩家
//TODO 返回错误码
//var player *entity.Player
if player1, ok := Mainplayer.Load(userid); ok {
@@ -41,7 +41,7 @@ func KickPlayer(userid uint32) { //踢出玩家
//实际上这里有个问题,会造成重复保存问题
player1.SendPack(head.Pack(nil))
player1.MainConn.Context().(*ClientData).Mu.Lock()
player1.MainConn.Close()
player1.MainConn.Context().(*ClientData).Mu.Unlock()
@@ -51,5 +51,5 @@ func KickPlayer(userid uint32) { //踢出玩家
}
//return player
// return nil
return nil
}