Files
bl/logic/service/user/GET_SIM_USERINFO.go
昔念 026689f3ed ```
feat(cache): 添加复合键缓存操作支持

添加了基于 uint32+string 组合键的缓存操作方法,包括
GetByCompoundKey、SetByCompoundKey、DelByCompoundKey 和
ContainsByCompoundKey 方法,用于处理用户ID和会话ID的组合缓存场景

fix(vscode): 添加 cSpell 配置支持 struc 词汇

refactor(session): 移除过时的会话管理方法

移除了基于单一字符串键的会话管理方法,因为已迁移到使用
复合键的缓存操作方式
```
2026-01-19 18:51:56 +08:00

137 lines
5.0 KiB
Go

package user
import (
"blazing/logic/service/common"
"blazing/modules/player/model"
)
type SimUserInfoInboundInfo struct {
Head common.TomeeHeader `cmd:"2051" struc:"skip"`
UserId uint32 `fieldDescription:"米米号" uint:"true" codec:"true"`
}
type SimUserInfoOutboundInfo struct {
// UserID 米米号
UserID uint32 `codec:"true"`
Nick string `struc:"[16]byte" default:"seer" json:"nick"` // 16字节昵称
Title uint32 `struc:"uint32" json:"title"` // 称号
// Color rgb颜色
Color uint32 `codec:"true"`
// Texture 纹理 0
// 对应 Java 注解: @FieldDescription("纹理 0") @UInt
Texture uint32 `codec:"true"`
// Vip 默认值 1 位置
// 对应 Java 注解: @FieldDescription("默认值 1 位置") @UInt
Vip uint32 `codec:"true"`
// Status 默认值0 未知
// 对应 Java 注解: @FieldDescription("默认值0 未知") @UInt
Status uint32 `codec:"true"`
// MapType 地图类型 进入地图包传入的字段
// 对应 Java 注解: @FieldDescription("地图类型 进入地图包传入的字段") @UInt
MapType uint32 `codec:"true"`
// MapID 地图id
// 对应 Java 注解: @FieldDescription("地图id") @UInt
MapID uint32 `codec:"true"`
// IsCanBeTeacher 能不能做教官
// 对应 Java 注解: @FieldDescription("能不能做教官") @UInt
IsCanBeTeacher uint32 `codec:"true"`
// TeacherID 教官id
// 对应 Java 注解: @FieldDescription("教官id") @UInt
TeacherID uint32 `codec:"true"`
// StudentID 学生id
// 对应 Java 注解: @FieldDescription("学生id") @UInt
StudentID uint32 `codec:"true"`
// GraduationCount 教官成绩
// 对应 Java 注解: @FieldDescription("教官成绩") @UInt
GraduationCount uint32 `codec:"true"`
// VipLevel vip等级 8
// 对应 Java 注解: @FieldDescription("vip等级 8") @UInt
VipLevel uint32 `codec:"true"`
// TeamId 战队id
// 对应 Java 注解: @FieldDescription("战队id") @UInt
TeamId uint32 `codec:"true"`
// IsShow 有没有跟随的精灵
// 对应 Java 注解: @FieldDescription("有没有跟随的精灵") @UInt
IsShow uint32 `codec:"true"`
ClothesCount uint32 `struc:"sizeof=Clothes" json:"clothes_count"` // 穿戴装备数量
// Clothes 穿戴装备
// 对应 Java 注解: @FieldDescription("穿戴装备") @Builder.Default
Clothes []model.PeopleItemInfo `codec:"true"`
}
type MoreUserInfoInboundInfo struct {
Head common.TomeeHeader `cmd:"2052" struc:"skip"`
UserId uint32 `fieldDescription:"米米号" uint:"true" codec:"true"`
}
type MoreUserInfoOutboundInfo struct {
// UserID 米米号
// 对应 Java 注解: @FieldDescription("米米号") @UInt
UserID uint32 `codec:"true"`
Nick string `struc:"[16]byte" default:"seer" json:"nick"` // 16字节昵称
Title uint32 `struc:"uint32" json:"title"` // 称号
RegisterTime uint32 `struc:"uint32" json:"register_time"` // 注册时间(秒时间戳)
// PetAllNum 所有精灵数量
// 对应 Java 注解: @FieldDescription("所有精灵数量") @UInt
AllPetNumber uint32 `codec:"true"`
// PetMaxLev 精灵最大等级
// 对应 Java 注解: @FieldDescription("精灵最大等级") @UInt
PetMaxLevel uint32 `codec:"true"`
// BossAchievement spt boos成就 20字节 以任务状态完成 3为击败该boss, 目前spt只有12个, 剩下的长度以3填充
// 对应 Java 注解: @FieldDescription(...) @ArraySerialize(value = ArraySerializeType.FIXED_LENGTH, fixedLength = 20) @Builder.Default
BossAchievement [20]byte `codec:"true"`
// GraduationCount 教官成绩
// 对应 Java 注解: @FieldDescription("教官成绩") @UInt
GraduationCount uint32 `codec:"true"`
// MonKingWin 精灵王胜场
// 对应 Java 注解: @FieldDescription("精灵王胜场") @UInt
MonKingWin uint32 `codec:"true"`
// MessWin 大乱斗胜场
// 对应 Java 注解: @FieldDescription("大乱斗胜场") @UInt
MessWin uint32 `codec:"true"`
// MaxStage 勇者之塔层数
// 对应 Java 注解: @FieldDescription("勇者之塔层数") @UInt
MaxStage uint32 `codec:"true"`
// MaxArenaWins 星际擂台胜场
// 对应 Java 注解: @FieldDescription("星际擂台胜场") @UInt
MaxArenaWins uint32 `codec:"true"`
}
// AimatInboundInfo 对应Java的AimatInboundInfo类
type AimatInboundInfo struct {
Head common.TomeeHeader `cmd:"2104" struc:"skip"`
ItemId uint32 `description:"物品id 射击激光 物品id为0" codec:"auto" uint:"true"`
ShootType uint32 `description:"射击类型 未知 给0" codec:"auto" uint:"true"`
Point model.Pos `description:"射击的坐标 x y" codec:"auto"` // 默认值对应@Builder.Default
}
// AimatOutboundInfo 对应Java的AimatOutboundInfo类
type AimatOutboundInfo struct {
UserId uint32 `description:"射出子弹的人 米米号" codec:"auto" uint:"true"`
ItemId uint32 `description:"物品id 射击激光 物品id为0" codec:"auto" uint:"true"`
ShootType uint32 `description:"射击类型 未知 给0" codec:"auto" uint:"true"`
Point model.Pos `description:"射击的坐标 x y" codec:"auto"` // 对应@Builder.Default默认值
}
// M