0.0.29 (2023-08-17)
- server 新增 NetworkNone 网络类型,该模式下不监听任何网络端口,仅开启消息队列,适用于纯粹的跨服服务器等情况 (dcfb3da)
- server.Server 新增 HttpServer 函数,用于替代 HttpRouter (b87df07)
- server.Server 的 HTTP 请求支持慢消息检测 (36a3333)
- server 包优化 Shutdown 逻辑,修复服务器关闭时不会等待消息执行完毕的问题 (93c5f36)
0.0.28 (2023-08-16)
- gateway 网关支持通过可选项自定义端点选择器 (e0f43c5)
- server 目录中新增 client 包,提供了 Websocket 客户端实例 (322938a)
- server 目录中新增 gateway 包,提供了基本的 Websocket 网关实现 (5ff74b6)
- server.Server 新增 RegConnectionPacketPreprocessEvent 函数用于对数据包进行预处理操作 (b3e4bb6)
- times 包增加部分时间处理函数 (157b6b5)
- 修复 timer.Ticker.Loop 函数首次触发时会触发两次的问题 (2bd6aa5)
0.0.27 (2023-08-14)
- 修复配置显示声明的字符串时,导出的数据包含双引号的问题 (31cd79c)
0.0.26 (2023-08-10)
- arrangement 新增冲突、冲突处理函数、约束处理函数 (84f36ea)
- arrangement.Engine 新增更多的辅助函数 (822ffc7)
- server 包新增 HTTP 包装器 (cec7e5b)
- 新增 reflects 包,包含反射相关辅助函数 (340b00e)
- http 包装器 group 修复 (dbf7ed7)
- 升级 go 至 1.21 版本 (9596320)
0.0.25 (2023-08-03)
- combination 包新增 Validator 校验器,用于校验组合是否匹配,取代 poker.Rule (f6873bd)
- combination 包新增 WithValidatorHandleNCarryM、WithValidatorHandleNCarryIndependentM 函数 (87a1ca9)
- room.Helper 支持通过 BroadcastExcept 向被排除表达式命中外的玩家广播消息 (0804508)
- 新增 arrangement 包,用于针对多条数据进行合理编排的数据结构 (1f5f95a)
- combination.WithValidatorHandleNCarryM 修复 M 允许类型不同的问题 (0db1e5c)
- room.Helper.BroadcastExcept 函数返回值修复 (faac7b2)
0.0.24 (2023-08-02)
- fight.Round 新增操作刷新事件 (d96ed58)
- fight.Round 新增获取当前操作超时时间的函数 (060fb05)
- random 包新增 Dice 掷骰子和 Probability 概率函数 (d9d0392)
- room.Helper 新增获取玩家切片、广播所有玩家、广播在座玩家的函数 (ab180f3)
- server.Server 支持通过 WithShunt 函数对服务器消息进行分流 (c92f16c)
- server.Server 新增分流通道创建和关闭事件 (b9d9533)
- 新增 deck 包,用于对牌堆、麻将牌堆、一组数据等情况的管理 (ace17a6)
- configuration 包字段类型转换修复 (aef7740)
- 修复 room 包中通过 Manager 获取 Helper 时,当传入的 room 为空依旧会返回不为空指针的 Helper 问题 (e8c2cf2)
- fight.Round 单元测试函数名变更 (ffd8d04)
0.0.23 (2023-08-01)
- 优化 combination 包命名,删除无用文件 (57936b2)
- 移除 poker 包的 matcher,改为使用 combination 包 (8b92921)
- fight 包的 Round 新增操作超时事件,优化事件逻辑 (9198faa)
- maths 包支持奇偶数判断 (ac43963)
- room 包新增房间创建事件 (87c6695)
- 新增 combination 包,用于数组组合筛选(抽离自 poker 包) (48d9c11)
- 新增 fight 包,提供了回合制战斗的功能实现 (df8f6fc)
- 修复 server 异步消息的 callback 的并发问题 (1297ae7)
- 修复泛型对象 player 不能判断 nil 的表达式错误 (4dddd14)
- 修复牌堆重置时不会重置 guid 的问题 (39ccad4)
- 状态机 fsm 包名修复,优化注释 (cee067e)
- 状态机 State 名称修复 (de76411)
- server.PushAsyncMessage 注意事项补全 (2482d2e)
- fsm 包状态机事件优化,新增部分获取状态机信息的函数 (0fad041)
0.0.22 (2023-07-28)
- maths 包新增支持 int64 的数字合并函数 (a6fb7fb)
- room 支持获取座位上的玩家数量 (24f54a1)
- super 包支持使用 Convert 强制转换数据类型 (867d1ec)
- times 包新增 SystemNewDay 和 OffsetTimeNewDay 事件 (2a0c5b8)
- fms 包迁移问题处理 (996f5af)
- room 包移除大量 error 返回,增加易于房间操作 Helper 数据结构,可通过 Manager.GetHelper 和 room.NewHelper 获取 (3dec407)
- test: (930fe15)
0.0.21 (2023-07-27)
- generic 包支持更多的空指针判断函数 (d06c840)
- hash 包新增 Set 数据结构 (9fcc75e)
- maths 包新增 CountDigits 和 GetDigitValue 函数,用于计算一个数字的位数和获取特定位数上的值 (3f94f38)
- room 包添加更多的事件,添加座位号支持 (c8f181f)
- server 异步消息支持将 callback 设置为 nil (b63975e)
- server.Server 事件消息添加 mark 标记,方便问题定位 (471ee48)
- server.Server 新增 ConnectionOpenedAfterEvent (8dde18a)
- server.Server 新增对连接写入事件前的处理函数 (5e26467)
- slice 包新增 CombinationsPari 函数,用于从给定的两个数组中按照特定数量得到所有组合后,再将两个数组的组合进行组合 (d26ef3a)
- super 包支持无错的 json 序列化 (11ad997)
- 房间管理器实现 (45c855a)
- 修复 room.NewManager 没有初始化 rp 字段的问题 (5c3c959)
- game 包文档优化 (054b3a7)
- kcrypto 包更名为 crypto,与目录名对应 (1ae14f0)
- RankingList 更名为 List,并且移动至 ranking 包中 (ed8ee4a)
- 从 builtin 包中单独抽离到 aoi 包,更名为 TwoDimensional (bca8a98)
- 状态机从 builtin 包中单独抽离到 fsm 包 (6fb24da)
- 移除原有的 builtin 中的各类 room 实现 (ee18934)
0.0.20 (2023-07-25)
- 移除 storage 包,不合理的设计 (3e956b6)
- map 移除适配 (d446ff1)
- storage 中的 Delete 要求返回 error (a43fb4f)
- storage 包重新实现 (b6f28dd)
- storage 要求 Load 等函数返回错误信息 (0d1a985)
- 优化 solo.guid 的使用,命名空间需要注册 (6238883)
- 去除 storage 中的 errHandle 参数 (3befe64)
- 移除分段锁map实现及 hash.Map、hash.ReadonlyMap 接口,移除 asynchronous 包,同步包更名为 concurrent (d0d2087)
- 重构 poker 包为全泛型包,支持通过 poker.Matcher 根据一组扑克牌选出最佳组合 (d71d843)
0.0.19 (2023-07-20)
- 修复 onStop 无法等待逻辑执行完成的问题 (037c9b7)
0.0.18 (2023-07-19)
- builtin.Player 可以通过 GetConn 函数获取到网络连接 (31ad0ee)
- storage 添加内置实现的文件存储器,可以通过 storages 包进行使用 (c447c8a)
- 支持使用 super.RegError 函数为错误注册全局错误码,使用 super.GetErrorCode 根据错误获取全局错误码 (1dcbd0a)
- 支持通过 timer.CalcNextTimeWithRefer 计算下一个整点时间 (8835e4a)
- 新增 storage 支持数据持久化 (f59354d)
- 新增 GlobalDataFileStorage 和 IndexDataFileStorage 的测试用例 (4378aa0)
0.0.17 (2023-07-18)
- 修复主键为空的数据被导出的问题 (ab0a7cb)
0.0.16 (2023-07-17)
- 修复 server.Server 部分事件中发生 panic 导致程序退出的问题 (0215d9f)
- 去除部分无用字段,优化整体可读性 (c1e3c65)
- pce.ce 包提供内置的 xlsx 配置表 (91b2b52)
- 日志字段调用由 zap.Field 更改为 log.Field (8e2b4eb)
- 配置导出 Golang 结构体注释优化 (9349e3c)
- 配置导表优化 (130869a)
- super 包支持 match 控制函数 (25ed712)
- super 包支持使用 super.GoFormat 函数格式化 go 文件 (3ee638f)
- 修复 server.PushAsyncMessage 无法正确调用回调函数的问题 (1b9ec9f)
- 重构 config 和 configexport 包 (7e7a504)
0.0.15 (2023-07-14)
- 修复 log 无法正确打印 Caller 的问题 (349ec42)
- 新增 steram 包,支持 map 和 slice 的链式操作 (10fcb54)
0.0.14 (2023-07-13)
- slice 包支持获取数组的部分数据 (c211d62)
- 支持通过 file.FilePaths 获取目录下所有文件,通过 file.LineCount 统计文件行数 (0c5ff89)
- 支持通过 server.NewPacket、 server.NewWSPacket、server.NewPacketString、server.NewWSPacketString 函数快捷创建数据包 (26993d9)
- 支持通过 server.SetMessagePacketVisualizer 函数设置服务器数据包消息可视化函数 (676b542)
- 调整 server.DefaultMessageChannelSize 为 65535,优化默认内存占用 (3e9d56e)
0.0.13 (2023-07-12)
- 优化代码结构,去除无用代码,去除重复代码 (47b8a33)
- 修改 server.Server 慢消息检测的异步消息判定条件为 1 秒 (8917326)
- str 包增加内置字符 Dunno、CenterDot、Dot、Slash 和其 []byte 形式 (94147e8)
- 可使用 super.NewStackGo 创建用于对上一个协程堆栈进行收集的收集器 (a4a27ea)
- 支持通过 super.StackGO 进行跨协程同步运行堆栈抓取 (b5a4bc9)
- 修复服务器消息报错不打印堆栈信息的问题 (aa39d39)
0.0.12 (2023-07-11)
- server.WithPprof 名称修改为 server.WithPProf (50ab92e)
- 修复配置导出 Go 代码注释错误问题 (9f2242b)
- 优化 server 包代码可读性 (74c8f21)
- server 包注释完善 (9dc73bf)
0.0.11 (2023-07-10)
- 修复 Multiple 模式下启动服务器 listen 有时无法打印的问题 (d972dc8)
- 修复 server.Server 关闭时线程池未释放的问题 (7228a07)
- 修复异步慢消息追踪不生效的问题 (7b8af05)
- 修复配置字段描述换行的情况下导出的 Go 代码编译报错问题 (e676982)
- 调整 server.WithBufferSize 默认值 (1ad6577)
- 增加任务功能 (bdeaa5a)
- 支持对 HTTP 服务器通过 server.WithPprof 开启 pprof (53e91d1)
- 支持对消息增加 mark 标记,可在执行 Message.String() 函数时进行展现 (1e6974a)
0.0.10 (2023-07-07)
- 移除 examples 包 (f0e3822)
- 优化 server 消息类型,合并 Websocket 数据包监听到统一的 RegConnectionReceivePacketEvent 中 (8b90307)
- 服务器支持异步消息类型、死锁阻塞、异步慢消息检测 (1a2c1df)
- 私有化服务器 PushMessage 函数,移除 PushCrossMessage 函数,改为使用 server.PushXXXMessage 函数 (6d27433)
- 移除服务器多核和分流模式的可选项 (7e67775)
0.0.9 (2023-07-06)
- 修复导出配置 JSON 特殊字符被转义的问题 (193763e)
- 修复请求成功 server.Conn 的 callback 不调用的问题 (8e3325f)
- 修复释放定时器后可能造成空指针的问题 (9f27102)
- 移除 server.Server.OnConnectionClosedEvent 和 server.Server.OnConnectionOpenedEvent 的日志 (7065448)
0.0.8 (2023-07-05)
- 导出日志增加已导出的表信息 (741da79)
- 移除向连接发送数据时的空包处理 (e0571c7)
- 由于设计不合理,移除排行榜中的 CompetitorIncrease 函数 (0f125d4)
- 新增 ranking_list 测试用例,调整 aoi2d_test.go 的 packge 为 builtin_test (b5b428d)
- 排行榜 GetRank 函数增加注释,提示排名从 0 开始 (1001d50)
- 在 README.md 中添加 JetBrains OS licenses 信息 (b234568)
- 配置加载后无限刷新修复 (6634aa6)
- server.New 支持通过 server.WithWebsocketReadDeadline 设置超时时间 (2513714)
- 可通过 slice.Merge 合并多个切片数据 (ebfdd7c)
- 支持在重连等情况时使用 server.Conn.Reuse 函数重用连接数据 (6144dd6)
- 支持对 server.Conn 写入时调用带有 Callback 的写入函数 (4717566)
- 新增重试函数及两个关于 func 执行的辅助函数 (ee87612)
0.0.7 (2023-07-05)
- 导表工具导出的 Golang 代码将携带配置名称签名 (8576d0f)
0.0.6 (2023-07-03)
- 日志 log 包支持更多设置 (83e0675)
0.0.5 (2023-07-03)
- 删除 net 包中的不合理函数 (f22bf5b)
0.0.4 (2023-07-01)
- 多服务器情况下日志错乱及无法正常 Shuntdown 问题修复 (67616b2)
- components.Moving2D 支持停止移动事件注册 (f67a66d)
- 对 poker.Rule 提供功能的辅助函数 (0172c67)
- 服务器支持通过 server.WithDiversion 可选项对数据包消息进行分流处理 (73cefc9)
- 导表工具重构,增加部分特性,修复部分问题 (afdda79)
0.0.3 (2023-06-30)
- 修复 file.ReadOnce 读文件错误 (b0ae569)
- generic 包支持检查泛型类型是否为空指针 (6023f59)
- maths 包支持比较一组数是否连续 (0ab38c7)
- timer.Ticker 支持附加标记信息 (db51edf)
- 增加时间段 times.Period 数据结构 (a6ca8a9)
- 完善测试用例 (741a25c)
0.0.2 (2023-06-27)
- 增加时间转换辅助函数 (05a328e)
- 增加更多的时间处理函数 (2127978)
- 支持获取全局偏移时间 (77e7d46)
- 新增全局偏移时间 (6c4f59f)
- 新增游戏活动功能支持 (83531b6)
- 修复使用 int 和 math.MaxUint 比较导致溢出的问题 (a4e9b5f)
- 支持通过 server 包支持快速创建 TCP、UDP、Websocket、UnixSock、HTTP、GRPC、KCP 服务器
- 支持通过 router 包创建最多支持三级的路由器
- 支持通过 cross 对 server 创建的服务器提供跨服支持
- 通过 configexport 包提供了针对策划及开发人员的配置表模板及导表工具,支持导出 json 和 go 配置文件
- 支持通过 notify 包快速实现通知功能,默认支持飞书群聊机器人通知
- 组件 component 包中提供了帧同步组件的实现及 2D 移动组件的实现
- 支持通过 report 包实现快捷的数据上报功能
- utils 包中提供了大量常用的辅助函数
- asynchronization 包中提供了实现了 hash.Map 的非并发安全 map 数据结构
- compress 包中提供了 gzip 压缩与解压缩的算法
- crypto 包中支持对数据进行 base64、crc、md5、sha1、sha256 的编码解码函数
- file 包中提供了常用的文件操作函数
- generic 包中提供了常见的泛型约束
- geometry 包中提供了几何相关的处理函数,包括线、形状、点等内容
- astar 包中提供了 A* 算法的实现
- dp 包中提供了基于二维数组的分布链接的机制,可以快速查找与给定成员具有相同特征且位置紧邻的其他成员
- matrix 包中提供了一个简单的二维矩阵实现
- navmesh 包提供了基于 astar 的网格寻路功能
- hash 包提供了常用了 hashmap 转换、接口等功能
- huge 包提供了 int 类型的大整数实现
- log 包中提供了基于 zap 的默认日志组件
- maths 包中提供了常用的数学处理函数
- network 包中提供了常用的网络辅助函数
- offset 包中提供了带偏移的时间实现
- random 包中提供了常用的随机函数,包括随机 hash、名称等
- runtimes 包中提供了常用的运行时辅助函数
- slice 包中提供了基于切片的辅助函数
- sole 包中提供了 guid 和 雪花id 的实现
- str 包中提供了常用的字符串处理函数
- super 包中提供了 if 的三目表达式函数
- synchronization 包中提供了并发安全的数据结构
- timer 包中提供了定时器组件
- times 包中提供了常用的时间处理函数