# Paradogs2 **Repository Path**: makimaa/paradogs2 ## Basic Information - **Project Name**: Paradogs2 - **Description**: 基于 SpringBoot、Netty 的游戏服务端开发框架,Paradogs2 !项目疑问联系Q 410408824 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-03-03 - **Last Updated**: 2025-07-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringBoot, Netty, Java, 框架, 游戏服务端 ## README ## 项目介绍 - Paradogs2 是一个基于 SpringBoot、Netty 的游戏服务端开发框架,用于对游戏服务端的快速开发~ - 开发者仅需要专注于业务代码编写,并修改游戏数据,剩下的交给框架就好!!! - 对项目有任何问题可联系Q 410408824,有开发合作需求也可联系~ ## 快速开始 #### 声明一个 db 实体类 - 一个 db 实体类对应 mysql 数据库的一张表,同时也对应玩家的一个组件管理器 ```java @CodeAutoGeneratorModule // 代表该实体需要自动生成业务模块代码(Handler、Mgr、Dao 等) @Data @ProtobufClass // 用于自动 Protobuf 协议传输 @TableName(value = "mgr_hello_entity", autoResultMap = true) public class HelloEntity extends BaseEntity { // 游戏名称 @TableField("nickName") private String nickName; // 等级 @TableField("level") private Integer level; // 经验 @TableField("exp") private Long exp; } ``` #### 执行代码自动生成工具 - 执行 ``CodeAutoGeneratorModuleProcesser.main()`` 自动生成实体对应的 Handler、Mgr、Dao 等 - 执行成功后,生成内容位于 ``paradogs-gs/src/main/java/com/paradogs/gs/modules`` #### 编写一个供客户端调用的接口 > 接口功能:调用后玩家升 1 级 1. 玩家类 ``Player`` 增加 HelloEntityMgr 组件 ``private HelloEntityMgr helloEntityMgr;`` ```java @Getter @Accessors(fluent = true) public class Player extends GameObject { // base private _NetMgr _netMgr; private InventoryMgr inventoryMgr; // data private HelloEntityMgr helloEntityMgr; // <--- 添加刚才生成的组件 !!! } ``` 2. 编写组件业务功能 ``public void upLevel()`` 实现玩家升一级逻辑 ```java /** By @CodeAutoGeneratorModule */ @GameManager public class HelloEntityMgr extends DBSingleRowManager { /** 数据结构初始化 */ @Override public void onInitialization(HelloEntity data) { data.setLevel(1); // 玩家初始等级为 1 } /** 玩家升级升一级 */ public void upLevel() { HelloEntity data = __get__(); // 获得组件数据(克隆) data.setLevel(data.getLevel() + 1); // 使等级 +1 __update__(data); // 更新数据 } } ``` 3. 编写 Handler 消息处理方法 ``public GC upLevel(IntegerWrapper cg)`` 为客户端提供调用接口 ```java /** By @CodeAutoGeneratorModule */ @PRHandler @PRMapping("HelloEntity") // 父路由,可不设置 public class HelloEntityHandler { /** * 玩家升一级 * 客户端通过 api-sdk 直接调用,对应路由:HelloEntity.upLevel * @param cg 请求参数,必须为对象并被 @ProtobufClass 修饰 * @return 返回值为 void 时,客户端不进行回调等待,否则服务端会将返回时作为 gc 消息返回给客户端 */ @PRMapping("upLevel") // 子路由 public GC upLevel(IntegerWrapper cg) { Player owner = Bow.owner(); // 获取当前请求玩家 owner.helloEntityMgr().upLevel(); // 调用组件方法:玩家升一级 return GC.success(); // 处理成功,返回 } } ``` 4. **以上,业务逻辑编写全部完成,剩下的(状态同步、数据持久化等)就都交给框架处理吧 ~** ## 框架整体架构 ## [核心设计介绍](https://gitee.com/makimaa/paradogs2/blob/master/%E9%A1%B9%E7%9B%AE%E8%AE%BE%E8%AE%A1%E4%BB%8B%E7%BB%8D.md) - 请跳转 [项目设计介绍.md](https://gitee.com/makimaa/paradogs2/blob/master/%E9%A1%B9%E7%9B%AE%E8%AE%BE%E8%AE%A1%E4%BB%8B%E7%BB%8D.md)