From d06f8417d631733cf3aa4b3bcb2f0d261b35ad43 Mon Sep 17 00:00:00 2001 From: milimoe Date: Fri, 16 Aug 2024 00:08:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9IServer;=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E4=BA=86Docs=E4=B8=AD=E7=94=9F=E6=88=90=E7=9A=84xml=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docs/FunGame.Core.xml | 3494 ---------------------------------- FunGame.Core.csproj | 2 +- Interface/General/IServer.cs | 6 +- 3 files changed, 5 insertions(+), 3497 deletions(-) delete mode 100644 Docs/FunGame.Core.xml diff --git a/Docs/FunGame.Core.xml b/Docs/FunGame.Core.xml deleted file mode 100644 index ac911b1..0000000 --- a/Docs/FunGame.Core.xml +++ /dev/null @@ -1,3494 +0,0 @@ - - - - FunGame.Core - - - - - 需要配合 使用 - 如果是 的数据请求,则配合 使用 - 确保已添加对应的枚举 - - - - - 数据请求结果 - - - - - 详细错误信息 - - - - - 私有的实现类 - - - - - 私有的实现类(这是局内请求的) - - - - - 基于本地已连接的 创建新的数据请求 - 使用 中的 创建一个新的请求 - 插件则使用 中的 创建一个新的请求 - - - - - - - - - 基于本地已连接的 创建新的数据请求 - 使用 中的 创建一个新的请求 - 插件则使用 中的 创建一个新的请求 - 此数据请求只能调用异步方法 请求数据 - - - - - - - - - 基于本地已连接的 创建新的局内()数据请求 - 使用 中的 创建一个新的请求 - 此构造方法是给 提供的 - - - - - - - - - 基于本地已连接的 创建新的局内()数据请求 - 使用 中的 创建一个新的请求 - 此构造方法是给 提供的 - 此数据请求只能调用异步方法 请求数据 - - - - - - - - - 添加数据 - - - - - - - 长时间运行的数据请求需要在使用完毕后自行关闭 - - - - - 向服务器发送数据请求 - 警告: 调用此方法将抛出异常。请调用并等待 - - - - - - - 异步向服务器发送数据请求 - - - - - - 获取指定key对应的反序列化对象 - - - - - - - - 常规数据请求 - - - - - 游戏局内请求 - - - - - 反序列化Hashtable中的Json对象 - - - - - - - - - 邮件服务内部ID - - - - - Smtp客户端信息 - - - - - 上一个邮件发送的结果 - - - - - 上一个邮件的发送错误信息(如果发送失败) - - - - 内部变量 - - - - 创建邮件服务 - - - - - - - - - - - 创建完整邮件对象 - - - - - - - - - - - - - 发送邮件 - - - - - - - 关闭邮件服务 - - - - - 关闭邮件服务 - - - - - - 需要在Server中继承此类实现 - - - - - 执行一个命令 - - 影响的行数 - - - - 执行一个指定的命令 - - 命令 - 影响的行数 - - - - 查询DataSet - - 结果集 - - - - 执行指定的命令查询DataSet - - 命令 - 结果集 - - - - 执行指定的命令查询DataRow(可选实现) - - 结果行 - - - - 执行指定的命令查询DataRow(可选实现) - - 命令 - 结果行 - - - - 关闭连接 - - - - - 创建一个SQL事务 - - - - - 提交事务 - - - - - 回滚事务 - - - - - 获取角色实例 - - - - - - 获取库存实例 - - - - - - 获取物品实例 - - Item类型 主动 或 被动 - - - - - 获取房间实例 - - 房间内部序列号 - 房间号 - 创建时间 - 房主 - 房间类型 - 游戏模组 - - 房间状态 - - 房间密码 - - - - - 通过DataSet获取房间实例 - - - - - - - - 通过DataSet获取房间列表 - - - - - - - - 获取大厅(-1号房) - - - - - - 获取技能实例 - - Skill类型 主动 或 被动 - - - - - 获取用户实例 - - - - - - 获取用户实例 - - - - - - - - - - - - - - - - - - - 获取用户实例 - - - - - - - 获取用户实例 - - - - - - - 适用于客户端的模组集 - - - - - 适用于服务器的模组集 - - - - - 游戏地图集 - - - - - 角色表 - - - - - 技能表 - - - - - 物品表 - - - - - 客户端模组与服务器模组的关联字典 - - - - - 传入 类型来创建指定端的模组读取器 - runtime = 时,仅读取 - runtime = 时,都会读取,并且生成关联字典 - 都会读取 - - 传入 类型来创建指定端的模组读取器 - 用于构建 - 其他需要传入给插件初始化的对象 - - - - - 获取对应名称的模组实例 - 如果需要取得服务器模组的实例,请调用 - - - - - - - 获取对应名称的服务器模组实例 - - - - - - - 获取对应名称的游戏地图 - - - - - - - 网络服务工具箱 - - - - - 判断字符串是否是IP地址 - - - - - - - 判断字符串是否为邮箱地址 - - - - - - - 判断字符串是否是正常的用户名(只有中英文和数字) - - - - - - - 获取用户名长度 - - - - - - - 判断字符串是否是一个FunGame可接受的服务器地址 - 此方法可以解析域名 - - - - - 返回地址验证结果,同时输出服务器地址和端口号 - - - - 判断参数是否是一个FunGame可接受的服务器地址 - - - - - - - - 获取服务器的延迟 - - 服务器IP地址 - - - - - 解析域名为IP地址 - - - - - - - - 返回目标对象的Json字符串 - - - - - - - - 返回目标对象的Json字符串 可指定反序列化选项 - - - - - - - - - 反序列化Json对象 - - - - - - - - 反序列化Json对象 可指定反序列化选项 - - - - - - - - - 反序列化Hashtable中的Json对象 - - - - - - - - - 反序列化IEnumerable中的Json对象 - - - - - - - - - 反序列化IEnumerable中的Json对象 可指定反序列化选项 - - - - - - - - - - 反序列化Hashtable中的Json对象 可指定反序列化选项 - - - - - - - - - - 时间服务工具箱 - - - - - 获取系统时间 - - 格式化类型 - - - - - 通过字符串转换为DateTime对象 - - 时间字符串 - 转换失败返回当前时间 - - - - 获取系统时间并转为字符串 - - 格式化类型 - - - - - 获取系统时间并转为字符串 - - 格式化字符串 - - - - - 获取系统短时间 - - 时:分:秒 - - - - 获取系统日期 - - - - - - 加密服务工具箱 - - - - - 使用HMACSHA512算法加密 - - 需要加密的值 - 秘钥 - - - - - 使用RSA算法加密 - - 明文 - 公钥 - - - - - 使用RSA算法解密 - - 密文 - 私钥 - - - - - 为字符串(string)添加扩展方法 - - - - - 使用HMACSHA512算法加密 - - 需要加密的值 - 秘钥 - - - - - 验证码服务工具箱 - - - - - 生成验证码 - - 类型 - 长度 - - - - - 数字验证码 - - - - - - - 字母验证码 - - - - - - - 混合验证码 - - - - - - - 多线程服务工具箱 - - - - - 开启一个任务:调用返回对象的OnCompleted()方法可以执行后续操作,支持异步 - - - - - - 开启一个任务:调用返回对象的OnCompleted()方法可以执行后续操作,支持异步 - - - - - - 开启一个计时器任务 - - - - - - - See: , , - - - - - 获取FunGame.Implement.dll中接口的实现方法 - - 程序集 - 接口代号 - - - - - 获取接口实现类类名 - - 接口类型 - - - - - 获取接口方法名(支持属性) - - 方法 - - - - - 公开方法:获取FunGame.Implement.DLL中指定方法(属性)的返回值 - - 接口代号 - 方法代号(支持属性) - 是否是方法(如是属性请传入false) - - - - - 创建一个Json工具类 - 此工具类拥有单独的序列化选项,支持添加自定义转换器 - 继承自 - - - - - 序列化选项 - 已经默认添加了下列转换器: - , , - - - - - 注册一个自定义转换器,支持 - - - - - - 注册多个自定义转换器,支持 - - - - - - 获取Json字符串 - - - - - - - - 反序列化Json对象 - - - - - - - - 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别 - - - - - - - 反序列化Hashtable中Key对应的Json对象 - - - - - - - - - 反序列化IEnumerable中的Json对象 可指定反序列化选项 - - - - - - - - - 反序列化多个Json对象 - 注意必须是相同的Json对象才可以使用此方法解析 - - - - - - - - Private JsonSerializerOptions - - - - - 简易的插件配置文件生成器 - 仅支持部分基本类型(, , , )及其数组(List<long>, List<decimal>, List<string>, List<bool>long[], decimal[], string[], bool[]) - 文件会保存为:程序目录/configs//.json - - - 新建一个配置文件,文件会保存为:程序目录/configs//.json - - - - - - - 简易的插件配置文件生成器 - 仅支持部分基本类型(, , , )及其数组(List<long>, List<decimal>, List<string>, List<bool>long[], decimal[], string[], bool[]) - 文件会保存为:程序目录/configs//.json - - - 新建一个配置文件,文件会保存为:程序目录/configs//.json - - - - - - - 插件的名称 - - - - - 配置文件的名称(后缀将是.json) - - - - - 使用索引器给指定key赋值,不存在key会新增 - - - - - - - 如果保存了对象,请使用此方法转换 - - - - - - - 获取指定key的value - - - - - - - 使用泛型获取指定key的value - - - - - - - - 添加一个配置,如果已存在key会覆盖 - - - - - - - 从配置文件中读取配置。 - 注意:所有保存时为数组的对象都会变成对象,并且不支持类型 - - - - - 将配置保存到配置文件。调用此方法会覆盖原有的.json,请注意备份 - - - - - Json反序列化的方法 - - - - - - - Json数组反序列化的方法。不支持数组。 - - - - - - - 已读取的插件列表 - key 是 - - - - - 构建一个插件读取器并读取插件 - - 用于构建 - 其他需要传入给插件初始化的对象 - - - - - 单例表:表中的对象以类名作为Key保存,并以Key获取该对象,Key具有唯一约束 - 用于储存单例对象使用 - - - - - 查询目标的类是否已经有实例 - - 单例对象 - - - - - 将目标和目标的类添加至单例表 - - 单例对象 - - 添加单例到单例表时遇到错误 - - - - 将目标和目标的类从单例表中移除 - - 单例对象 - - - - - 获取单例对象 - - 目标类 - - 不能从单例表中获取到指定的单例 - - - - 获取单例对象 - - 目标类 - - 不能从单例表中获取到指定的单例 - - - - 默认的配置文件名称 - - - - - 写入ini文件 - - Section - 键 - 值 - 文件名,缺省为FunGame.ini - - - - 读取ini文件 - - Section - 键 - 文件名,缺省为FunGame.ini - 读取到的值 - - - - 查询ini文件是否存在 - - 文件名,缺省为FunGame.ini - 是否存在 - - - - 初始化ini模板文件 - - - - - 读取TXT文件内容 - - 文件名 - 相对路径 - 内容 - - - - 写入TXT文件内容(如不存在文件会创建,反之新起一行追加) - - - 文件名 - 相对路径 - 内容 - - - - 追加错误日志 默认写入logs文件夹下的当日日期.log文件 - - - - - - Aka. 2FA 双重认证 双因素身份验证 - - - - - SQLHelper 允许为空 - - - - - 不使用SQL模式 - - - - - 使用SQL模式 记录对应账号的密文到数据库中 - - - - - - 检查账号是否需要2FA - - - - - - - 2FA验证 - - - - - - - - 每30秒刷新 - - - - - 6位数字2FA验证码 - - - - - ----- PUBLIC KEY ----- - - - - - ----- SECRET SIGN ----- - - - - - 创键私钥,用于绑定账号,并生成两个文件,需要用户保存 - - - - - 生成随机秘钥字符串 - - - - - - - 生成基于当前时间戳的6位数字2FA验证码 - - - - - - - 获取当前时间节点 - - - - - - 生成验证码 - - - - - - - - 拆分字符串中的密文和私钥 - - - - - - - - 这个控制器在Base的基础上添加了DataRequest - - - - - - 基于本地已连接的Socket创建新的数据请求 - - - - - 基于本地已连接的Socket创建长时间运行的数据请求 - - - - - 基于本地已连接的Socket创建新的局内数据请求 - - - - - 基于本地已连接的Socket创建长时间运行的局内数据请求 - - - - - 基于本地已连接的Socket创建新的数据请求 - 此方法只允许插件调用,如果是模组和模组服务器调用此方法将抛出异常 - - - - - - - - 基于本地已连接的Socket创建长时间运行的数据请求 - 此方法只允许插件调用,如果是模组和模组服务器调用此方法将抛出异常 - - - - - - - - 基于本地已连接的Socket创建新的局内()数据请求 - 此方法是给 提供的,但是 也能调用 - 模组服务器调用此方法将抛出异常 - - - - - - - - - 基于本地已连接的Socket创建长时间运行的局内()数据请求 - 此方法是给 提供的,但是 也能调用 - 模组服务器调用此方法将抛出异常 - - - - - - - - - 新建一个AddonController - - - - - - - 这是通用的控制器,仅提供基本功能 - - Addon的类型,如或者 - - - - 控制器的本体 - - - - - 输出系统消息 - - - - - 输出错误消息 - - - - - 输出系统消息 - - - - - - - 输出错误消息 - - - - - - - 新建一个BaseAddonController - - - - - - - 默认的输出错误消息方法 - - - - - - - 输出错误消息 - - - - - - - 此类实现服务器连接、断开连接、心跳检测、创建数据请求等功能 - -- 需要继承并实现部分方法 -- - - - - - 与服务器的连接套接字实例 - - - - - 套接字是否已经连接 - - - - - 接收服务器信息的线程 - - - - - 用于类内赋值 - - - - - 是否正在接收服务器信息 - - - - - 断开服务器连接 - - - - - - 发送结束游戏反馈 - - - - - - 连接服务器 - - - - - - - - 获取服务器地址 - - string:IP地址;int:端口号 - - - - - 此方法将在连接服务器前触发 - 客户端可以重写此方法 - - 服务器IP - 服务器端口 - 重写时可以提供额外的连接参数 - false:中止连接 - - - - 此方法将在连接服务器后触发(Connect结果返回前) - 客户端可以重写此方法 - - 连接服务器后返回的一些数据,可以使用也可以修改它们 - - - - - 客户端需要自行实现自动登录的事务 - - - - - 关闭所有连接 - - - - - - 输出消息 - - - - - - 自定处理异常的方法 - -- 一般放在catch中 -- - - - - - - 基于本地已连接的Socket创建新的数据请求 - - - - - - - - 基于本地已连接的Socket创建长时间运行的数据请求 - - - - - - - - 基于本地已连接的Socket创建新的数据请求 - 加载项专用( / ) - - - - - - - - 基于本地已连接的Socket创建长时间运行的数据请求 - 加载项专用( / ) - - - - - - - - 基于本地已连接的Socket创建新的局内()数据请求 - 加载项专用:此方法是给 提供的 - - - - - - - - 基于本地已连接的Socket创建长时间运行的局内()数据请求 - 加载项专用:此方法是给 提供的 - - - - - - - - 开始接收服务器信息 - - - - - 获取服务器已发送的信息为SocketObject数组 - - - - - - 具体接收服务器信息以及处理信息的方法 - - - - - - 客户端接收服务器断开连接的通知 - - - - - - 客户端接收并处理服务器系统消息 - - - - - - 客户端接收并处理服务器心跳 - - - - - - 客户端接收强制退出登录的通知 - - - - - - 客户端接收并处理聊天信息 - - - - - - 客户端接收并处理更换房主信息 - - - - - - 客户端接收并处理匹配房间成功信息 - - - - - - 客户端接收并处理开始游戏信息 - - - - - - 客户端接收并处理游戏结束信息 - - - - - - 客户端接收并处理局内消息 - - - - - - 继承 AsyncAwaiter 用法: - 1、调用Socket.Send()前,请设置为等待状态:SetWorking(); - 2、调用Socket.Send() == Success后,请等待任务完成:WaitForWorkDone(); - 3、在其他任何地方修改Working状态,均会使任务终止。 - - - - - 接收到的SocketObject实例 - - - - - Socket - - - - - WebSocket - - - - - 继承请调用base构造 - - Socket - - - - 继承请调用base构造 - - Socket - - - - 继承请重写此方法 - - SocketObject - - - - 判断是否已经Disposed - - - - - 公开的Dispose方法 - - - - - 关闭时 - - - - - - 关闭事件 - - - - - Controller关闭时事件 - 不建议new Dispose()方法,建议使用事件 - 事件会在base.Dispose()执行前触发 - - - - - 触发关闭事件 - - - - - 实体的数字ID - - - - - 实体的唯一ID - - - - - 实体的名称 - - - - - 角色的名字 - - - - - 角色的昵称 - - - - - 角色所属的玩家 - - - - - 角色统计数据 - - - - - 魔法属性 - - - - - 角色定位1 - - - - - 角色定位2 - - - - - 角色定位3 - - - - - 角色评级 - - - - - 晋升点数 - - - - - 等级 - - - - - 经验值 - - - - - 基础生命值 - - - - - 生命值 - - - - - 基础魔法值 - - - - - 魔法值 - - - - - 能量 - - - - - 基础攻击力 - - - - - 攻击力 - - - - - 基础物理护甲 - - - - - 物理护甲 - - - - - 物理伤害减免(%) - - - - - 魔法抗性(%) - - - - - 物理穿透(%) - - - - - 魔法穿透(%) - - - - - 生命回复力 - - - - - 魔法回复力 - - - - - 能量回复力 - - - - - 基础力量 - - - - - 基础敏捷 - - - - - 基础智力 - - - - - 力量 - - - - - 敏捷 - - - - - 智力 - - - - - 力量成长值 - - - - - 敏捷成长值 - - - - - 智力成长值 - - - - - 速度 - - - - - 行动系数(%) - - - - - 加速系数(%) - - - - - 攻击距离 - - - - - 暴击率(%) - - - - - 暴击伤害 - - - - - 闪避率(%) - - - - - 角色的技能组 - - - - - 角色携带的物品 - - - - - 记录 的生涯、赛季统计数据 - Key为赛季(long),每个key代表第key赛季,key = 0时为生涯数据。 - - - - - 服务器实例是否在运行 - - - - - 客户端的套接字实例 - - - - - 客户端的用户实例,在用户登录后有效 - - - - - 客户端的名称,默认是客户端的IP地址 - - - - - 客户端是否启动了开发者模式 - - - - - 向客户端发送消息 - - - - - - - - - 向客户端发送系统消息 - - - - - - - - - - 获取客户端的名称,通常未登录时显示为客户端的IP地址,登录后显示为账号名 - - - - - - 开始接收客户端消息 - 请勿在 中调用此方法 - - - - - - - 启动对客户端的监听 - 请勿在 中调用此方法 - - - - - 窗体继承这些接口便能实现事件,或为插件预留。 - - - - - 局内事件的接口,与 配套使用 - - - - - 这是最基本的接口,要求客户端实现 - - - - - 服务器需要实现此接口 - - - - - 模组名称 - - - - - 模组描述 - - - - - 模组版本 - - - - - 模组作者 - - - - - 此模组中包含的角色 - - - - - 加载标记 - - - - - 加载模组 - - - - - 模组加载后需要做的事 - - - - - 允许返回false来阻止加载此模组 - - - - - - 建议使用一个类来存储常量,方便重用 - - - - - 模组:必须继承基类: - 继承事件接口并实现其方法来使模组生效。例如继承: - - - - - 模组服务器:必须继承基类: - 使用switch块分类处理 。 - - - - - 注意:服务器模组的名称必须和模组名称相同。除非你指定了 - - - - - 地图:必须继承基类: - - - - - 角色:必须继承基类: - - - - - 技能:必须继承基类: - - - - - 物品:必须继承基类: - - - - - 必须继承基类: - 继承事件接口并实现其方法来使插件生效。例如继承: - - - - - 地图名称 - - - - - 地图描述 - - - - - 地图版本 - - - - - 地图作者 - - - - - 长度 - - - - - 宽度 - - - - - 高度 - - - - - 格子大小 - - - - - 格子集 - - - - - 使用坐标获取格子,0号格子的坐标是(0, 0),如果你还有高度的话,则是(0, 0, 0) - - - - - - - - - 使用坐标获取格子,从0号开始 - - - - - - - 加载标记 - - - - - 加载地图 - - - - - - - 加载后需要做的事 - - - - - 允许返回false来阻止加载此地图 - - - - - - 模组名称 - - - - - 模组描述 - - - - - 模组版本 - - - - - 模组作者 - - - - - 默认地图 - - - - - 模组的依赖集合 - - - - - 适用的房间模式 - - - - - 是否连接其他的服务器模组 - - - - - 如果将 设置为true,那么此属性必须指定一个存在的服务器模组的 名称。 - - - - - 包含了一些常用方法的控制器 - - - - - base控制器,没有DataRequest - - - - - 控制器内部变量 - - - - - 必须重写此方法,游戏的主要逻辑写在这里面 - 此方法会在 时调用 - - - - - - - - 如模组有界面,请重写此方法 - - - - - - - 加载标记 - - - - - 加载模组 - - - - - 模组加载后需要做的事 - - - - - 允许返回false来阻止加载此模组 - - - - - - 传递委托以便让模组调用 - - - - - Session对象 - - - - - Config对象 - - - - - 关联的服务器模组名称 - - - - - 绑定事件。在后触发 - - - - - 模组的依赖集合 - (地图名称()的数组) - (角色模组名称()的数组) - (技能模组名称()的数组) - (物品模组名称()的数组) - - - - - 模组的依赖集合 - (地图名称()的数组) - (角色模组名称()的数组) - (技能模组名称()的数组) - (物品模组名称()的数组) - - - - - 模组所使用的地图组 - - - - - 模组所使用的角色组 - - - - - 模组所使用的技能组 - - - - - 模组所使用的物品组 - - - - - 实际使用的地图组对象 - 请使用 自动填充,不要自己添加 - - - - - 实际使用的角色组对象 - 请使用 自动填充,不要自己添加 - - - - - 实际使用的技能组对象 - 请使用 自动填充,不要自己添加 - - - - - 实际使用的物品组对象 - 请使用 自动填充,不要自己添加 - - - - - 获得所有的依赖项 - 此方法会自动填充 - - - - - 服务器模组的名称 - 如果服务器模组配合一个相关联的模组使用,那么它们的 名称必须相同。 - - - - - 模组描述 - - - - - 模组版本 - - - - - 模组作者 - - - - - 默认地图 - - - - - 模组的依赖集合 - - - - - 包含了一些常用方法的控制器 - - - - - 控制器内部变量 - - - - - 启动服务器监听 请在此处实现服务器逻辑 - - - - - - - - - - - - 接收并处理GamingMessage - - 发送此消息的账号 - 消息类型 - 消息参数 - 底层会将哈希表中的数据发送给客户端 - - - - 加载标记 - - - - - 加载模组 - - - - - 模组加载后需要做的事 - - - - - 允许返回false来阻止加载此模组 - - - - - - 格子编号 - - - - - 格子在地图中的x坐标 - - - - - 格子在地图中的y坐标 - - - - - 格子在地图中的z坐标 - - - - - 是谁站在这格子上? - - - - - 此格子目前受到了什么影响?或者它有什么技能… - - - - - 此格子呈现的颜色(默认为 ) - - - - - 模组名称 - - - - - 模组描述 - - - - - 模组版本 - - - - - 模组作者 - - - - - 此模组中包含的物品 - - - - - 加载标记 - - - - - 加载模组 - - - - - 模组加载后需要做的事 - - - - - 允许返回false来阻止加载此模组 - - - - - - 插件名称 - - - - - 插件描述 - - - - - 插件版本 - - - - - 插件作者 - - - - - 包含了一些常用方法的控制器 - - - - - base控制器,没有DataRequest - - - - - 控制器内部变量 - - - - - 加载标记 - - - - - 加载插件 - - - - - 插件加载后需要做的事 - - - - - 允许返回false来阻止加载此插件 - - - - - - 传递委托以便让插件调用 - - - - - Session对象 - - - - - Config对象 - - - - - 绑定事件。在后触发 - - - - - 模组名称 - - - - - 模组描述 - - - - - 模组版本 - - - - - 模组作者 - - - - - 此模组中包含的技能 - - - - - 加载标记 - - - - - 加载模组 - - - - - 模组加载后需要做的事 - - - - - 允许返回false来阻止加载此模组 - - - - - - 继承这个类可以获得异步等待的功能 - 参考实现 - - - - - 接收到的实例 - - - - - 是否处于等待的状态 - - - - - 异步操作前,请设置为等待状态 - - - - - 等待任务完成(需要自己异步) - - - - - 异步等待任务完成 - - - - - 任务的等待器,可以设置在任务完成后需要的操作 - - - - - 任务是否完成 - - - - - 捕获到的异常 - - - - - 内部实现类 - 实现参见 - - - - - 构造一个等待器 - - - - - - 返回TaskAwaiter可以连续的调用方法 - 但是意义不大,前一个OnCompleted方法并不会等待下一个方法 - 可以理解为并行广播 - - - - - - - 在捕获到异常时,将触发Error事件 - - - - - - - 发件人邮箱 - - - - - 发件人名称 - - - - - 邮件主题 - - - - - 邮件内容 - - - - - 邮件优先级 - - - - - 内容是否支持HTML - - - - - 收件人列表 - - - - - 抄送列表 - - - - - 密送列表 - - - - - 使用MailSender工具类创建邮件对象 - - - - - - 使用地址和名称创建邮件对象 - - - - - - - 使用地址和名称创建邮件对象,同时写主题、内容、单个收件人 - - - - - - - - - 使用地址和名称创建邮件对象,同时写主题、内容、单个收件人、单个抄送 - - - - - - - - - - 完整的创建邮件对象 - - - - - - - - - - - - - 发送邮件 - -- 适合创建一次性邮件并发送 -- - - - - - - - 添加收件人 - - - - - - 添加多个收件人 - - - - - - 添加抄送 - - - - - - 添加多个抄送 - - - - - - 添加密送 - - - - - - 添加多个密送 - - - - - - 从参数列表中获取指定类型和索引的参数 - - 类型 - 索引 - 类型的参数 - 索引超过数组上限 - - - - 配合 使用,也别忘了修改 - - - - - 需要同步更新 - - - - - 将通信类型的枚举转换为字符串 - - 通信类型 - 等效字符串 - - - - 需要同步更新 - - - - RunTime - - - Main - - - Register - - - Login - - - Room - - - Gaming - - - - 获取Type的等效字符串 - - - - - - - 获取Type的等效字符串 - - - - - - - 获取Type的等效字符串 - - - - - - - 获取字符串对应的枚举 - - - - - - - 添加-debug启动项将开启DebugMode(仅适用于Desktop或Console) - 目前支持禁用心跳检测功能 - - - - - 此类保存常用的对象常量 - - - - - 空的实体类 用于object返回 - - - - - 默认的未知用户 - - - - - 游客用户 - - - - - 本地用户 - - - - - 大厅(空房间)实例 - - - - - 默认的字符编码 - - - - - 默认的时间格式 - - - - - 默认的时间值(1970年8月1日8点0分0秒) - - - - - 最多自动重试连接次数 - - - - - 1C2G推荐的任务数量 - - - - - 2C2G推荐的任务数量 - - - - - 4C4G推荐的任务数量 - - - - - 默认Socket数据包大小 - - - - - 默认Stream传输大小 - - - - - 配合 使用,也别忘了修改 - - - - - 配合 使用,也别忘了修改 - - - - - 配合 使用 - - - - - 需要同步更新 - - - - - 需要同步更新 - - - - - 需要同步更新 - - - - Commands - - - - 是否自动连接服务器 - - - - - 是否自动登录 - - - - - 是否在匹配中 - - - - - 是否连接上服务器 - - - - - 是否正在重连 - - - - - 是否自动重连 - - - - - 是否在房间中 - - - - - 当前所处的房间类型 - - - - - 服务器名称 - - - - - 公告 - - - - - 自动登录的账号 - - - - - 自动登录的密码 - - - - - 自动登录的秘钥 - - - - - 游戏局内类 - 客户端需要使用创建此类单例 - - - - - 使用的模组实例 - - - - - 游戏的参数 - - - - - 此实例所属的玩家 - - - - - 传入游戏所需的参数,构造一个Gaming实例 - - - - - - - - - - - - 需在RunTimeController的SocketHandler_Gaming方法中调用此方法 - 客户端也可以参照此方法自行实现 - 此方法目的是为了触发 的局内事件实现 - - 消息类型 - 接收到的数据 - - - - 服务器地址 - - - - - 服务器端口号 - - - - - SocketToken - - - - - LoginKey - - - - - 已登录的用户 - - - - - 已登录用户名 - - - - - 所处的房间 - - - - - 从plugins目录加载所有插件 - - - - - - - - - 从modules目录加载所有模组 - - - - - - - - - - - - 从modules目录加载所有适用于服务器的模组 - - - - - - - - - - - - - 从maps目录加载所有地图 - - - - - - - - 添加构造好的模组类实例到字典中 - - 加载的类型 - 循环程序集的类型 - 实例的字典 - 加载时触发的检查方法,返回false不添加 - - - - 默认的序列化选项 - - - - - 获取Json字符串 - - - - - - - - 获取Json字符串 - - - - - - - - - 反序列化Json对象 - - - - - - - - 反序列化Json对象 - - - - - - - - - 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别 - - - - - - - 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别 - - - - - - - - 反序列化SocketObject中索引为index的Json对象 - - - - - - - - - - 反序列化Hashtable中Key对应的Json对象 - - - - - - - - - 反序列化IEnumerable中的Json对象 - - - - - - - - - 反序列化IEnumerable中的Json对象 - - - - - - - - - - 反序列化Hashtable中Key对应的Json对象 - - - - - - - - - - 反序列化多个Json对象 - 注意必须是相同的Json对象才可以使用此方法解析 - - - - - - - - 反序列化多个Json对象 - 注意必须是相同的Json对象才可以使用此方法解析 - - - - - - - - - 检查字符串是否为完整的JSON对象 - - - - - - - 用于保存Smtp客户端 - 一个邮件服务对应一个Smtp客户端 - - - - - 用于保存邮件服务 - 允许服务器同时存在多个服务 - - - - - 获取某个已经保存过的邮件服务 - - - - - - - 统一调用此方法发送邮件 - - - - - - - - - 关闭邮件服务 - - - - - - - 目前的Model数量 - - - - - 最大接受的Model数量 - - - - - 可参与高并发的字典,但添加效率较低 - - - - - Init ModelManager - - MaxModel - - - - 获取Model对象 - - Model的Key - Model对象 - - - - 向Model管理器中添加Model - - Model的Key - Model对象 - True:操作成功 - - - - 从Model管理器中移除Model - - Model的Key - True:操作成功 - - - - 将Model移除,并取得这个Model - - Model的Key - Model对象 - 被移除的Model - - - - 将Model移除,并取得这个Model - - Model的Key - 被移除的Model - - - - 清空Model管理器 - - - - - 获取Model对象的列表 - - - - - 客户端专用Socket - - - - - 服务器端专用Socket - - - - - 创建服务器监听Socket - - 监听端口号 - 最大连接数量 - 服务器端专用Socket - - - - 创建一个监听到客户端Socket - - 客户端IP地址[0]和客户端Socket[1] - - - - 创建客户端Socket - - 服务器IP地址 - 服务器监听端口 - 客户端专用Socket - - - - 用于服务器端向客户端Socket发送信息 - - 客户端Socket - Socket信息容器 - 通信结果 - - - - 用于客户端向服务器Socket发送信息 - - Socket信息容器 - 通信结果 - - - - 接收数据流中的信息 - 如果是服务器接收信息需要传入客户端Socket - - 如果是服务器接收信息需要传入客户端Socket - SocketObjects - - - - 监听事件的委托 - - SocketObject - - - - 监听事件 - - - - - 触发异步监听事件 - - SocketObject - - - - 开启一个任务:调用返回对象的OnCompleted()方法可以执行后续操作,支持异步 - - - - - - - 开启一个任务:调用返回对象的OnCompleted()方法可以执行后续操作,支持异步 - - - - - - - 内部实现类 - - - - - 返回ITaskAwaiter可以进一步调用方法 - 但是意义不大,前一个OnCompleted方法并不会等待下一个方法 - 可以理解为并行广播 - - - - - - - 在捕获到异常时,将触发Error事件 - - - - - - diff --git a/FunGame.Core.csproj b/FunGame.Core.csproj index 5d7445a..832f0b0 100644 --- a/FunGame.Core.csproj +++ b/FunGame.Core.csproj @@ -16,7 +16,7 @@ true $(MSBuildProjectName) True - Docs\FunGame.Core.xml + diff --git a/Interface/General/IServer.cs b/Interface/General/IServer.cs index d235185..f942319 100644 --- a/Interface/General/IServer.cs +++ b/Interface/General/IServer.cs @@ -5,7 +5,9 @@ /// public interface IServer { - public string[] GameModuleList { get; } - public string[] GameMapList { get; } + /// + /// 一个服务器标识秘钥 + /// + public string SecretKey { get; } } }