Files
bl/logic/controller/user.go
昔念 9739598df2 ```
feat(xml): 更新任务配置结构以支持新能量节点解析

将原先的 TalkCount 和 TalkEntry 结构替换为 TalkRoot 和 Energy,
以适配新的 XML 配置格式。同时更新了相关引用代码以确保类型一致性。

refactor(item): 优化物品添加方法支持可变参数传入

调整 ItemAdd 方法签名,从接收数组改为接收可变参数,
提升调用灵活性,并同步修改控制器中对物品添加逻辑的处理方式。

feat(login): 修复每日重置逻辑并引入 gtime 时间管理

修正登录时每日任务重置区间错误(400~100 改为 400~500),
并改用 gtime.Now().Time 提供更准确的时间戳记录与比较,
同时增强挖矿次数等
2025-10-23 01:02:19 +08:00

68 lines
1.9 KiB
Go

package controller
import (
"blazing/common/socket/errorcode"
"blazing/logic/service/common"
"blazing/logic/service/player"
"blazing/logic/service/space"
"blazing/logic/service/user"
"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.Person(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.Person(data.UserId)
copier.Copy(ret, info)
//todo 待实现
return ret, 0
}
func (h Controller) Aimat(data *user.AimatInboundInfo, c *player.Player) (result *user.AimatOutboundInfo, err errorcode.ErrorCode) {
ret := &user.AimatOutboundInfo{
ItemId: data.ItemId,
Point: data.Point,
ShootType: data.ShootType,
UserId: c.Info.UserID,
}
defer space.GetSpace(c.Info.MapID).User.IterCb(func(playerID uint32, player common.PlayerI) {
data.Head.Result = 0
player.SendPack(data.Head.Pack(ret))
})
return ret, -1
}
func (h Controller) Chat(data *user.ChatInboundInfo, c *player.Player) (result *user.ChatOutboundInfo, err errorcode.ErrorCode) {
result = &user.ChatOutboundInfo{
Message: data.Message,
SenderNickname: c.Info.Nick,
SenderId: c.Info.UserID,
}
defer space.GetSpace(c.Info.MapID).User.IterCb(func(playerID uint32, v common.PlayerI) {
v.SendPack(data.Head.Pack(result))
})
return nil, -1
}