diff --git a/Api/Transmittal/DataRequest.cs b/Api/Transmittal/DataRequest.cs
index 580923a..2244a75 100644
--- a/Api/Transmittal/DataRequest.cs
+++ b/Api/Transmittal/DataRequest.cs
@@ -22,14 +22,10 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
///
public string Error => Worker.Error;
- ///
- /// 获取ResultData中key值对应的Json字符串
- /// -- 此索引器仅返回Json字符串,对象类型请使用反序列化方法GetResult() --
- /// -- 当然也可以自己反序列化 --
- /// -- 基本类型可能有效,但仍建议使用反序列化方法 --
- ///
- ///
- ///
+ // 获取ResultData中key值对应的Json字符串
+ // -- 此索引器仅返回Json字符串,对象类型请使用反序列化方法GetResult() --
+ // -- 当然也可以自己反序列化 --
+ // -- 基本类型可能有效,但仍建议使用反序列化方法 --
public object? this[string key]
{
get
diff --git a/Api/Transmittal/SQLHelper.cs b/Api/Transmittal/SQLHelper.cs
index f24833f..5c69dc0 100644
--- a/Api/Transmittal/SQLHelper.cs
+++ b/Api/Transmittal/SQLHelper.cs
@@ -22,7 +22,6 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
///
/// 执行一个命令
///
- /// 执行结果
/// 影响的行数
public abstract int Execute();
@@ -30,14 +29,12 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
/// 执行一个指定的命令
///
/// 命令
- /// 执行结果
/// 影响的行数
public abstract int Execute(string Script);
///
/// 查询DataSet
///
- /// 执行结果
/// 结果集
public abstract DataSet ExecuteDataSet();
@@ -45,7 +42,6 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
/// 执行指定的命令查询DataSet
///
/// 命令
- /// 执行结果
/// 结果集
public abstract DataSet ExecuteDataSet(string Script);
diff --git a/Api/Utility/Factory.cs b/Api/Utility/Factory.cs
index b509742..fc5ec4f 100644
--- a/Api/Utility/Factory.cs
+++ b/Api/Utility/Factory.cs
@@ -80,8 +80,8 @@ namespace Milimoe.FunGame.Core.Api.Utility
///
/// 通过DataSet获取房间实例
///
- ///
- ///
+ ///
+ ///
///
public static Room GetRoom(DataRow DrRoom, User User)
{
@@ -222,7 +222,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
///
/// 获取用户实例
///
- ///
+ ///
///
public static User GetUser(DataRow dr)
{
diff --git a/Api/Utility/Implement.cs b/Api/Utility/Implement.cs
index f72eae5..f7bd923 100644
--- a/Api/Utility/Implement.cs
+++ b/Api/Utility/Implement.cs
@@ -4,17 +4,17 @@ using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Core.Api.Utility
{
///
- /// Interface的定义已经搬至:
- /// Milimoe.FunGame.Core.Library.Constant 中的 &InterfaceType 和 &InterfaceSet
+ /// See: , ,
///
public class Implement
{
///
/// 获取FunGame.Implement.dll中接口的实现方法
///
+ /// 程序集
/// 接口代号
///
- private static Type? GetFunGameImplementType(System.Reflection.Assembly Assembly, InterfaceType Interface)
+ private static Type? GetFunGameImplementType(Assembly Assembly, InterfaceType Interface)
{
// 通过类名获取命名空间+类名称
string ClassName = GetImplementClassName(Interface);
diff --git a/Api/Utility/JsonTool.cs b/Api/Utility/JsonTool.cs
index 1a71fad..13e5b76 100644
--- a/Api/Utility/JsonTool.cs
+++ b/Api/Utility/JsonTool.cs
@@ -34,7 +34,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
///
/// 注册多个自定义转换器,支持
///
- ///
+ ///
public void AddConverters(IEnumerable converters)
{
foreach (JsonConverter converter in converters)
diff --git a/Api/Utility/TwoFactorAuthenticator.cs b/Api/Utility/TwoFactorAuthenticator.cs
index a53a9d5..89aebe8 100644
--- a/Api/Utility/TwoFactorAuthenticator.cs
+++ b/Api/Utility/TwoFactorAuthenticator.cs
@@ -44,7 +44,6 @@ namespace Milimoe.FunGame.Core.Api.Utility
///
///
///
- ///
///
public bool Authenticate(string username, string code)
{
diff --git a/Controller/SocketHandlerController.cs b/Controller/SocketHandlerController.cs
index 0715e45..50c6077 100644
--- a/Controller/SocketHandlerController.cs
+++ b/Controller/SocketHandlerController.cs
@@ -80,7 +80,6 @@ namespace Milimoe.FunGame.Core.Controller
///
/// 关闭事件
///
- /// SocketObject
protected delegate void DisposedEvent();
///
@@ -93,7 +92,6 @@ namespace Milimoe.FunGame.Core.Controller
///
/// 触发关闭事件
///
- /// SocketObject
protected void OnDisposed()
{
Disposed?.Invoke();
diff --git a/FunGame.Core.csproj b/FunGame.Core.csproj
index fd949d3..6fb228a 100644
--- a/FunGame.Core.csproj
+++ b/FunGame.Core.csproj
@@ -1,7 +1,7 @@
- net7.0
+ net8.0
enable
enable
bin\
@@ -14,14 +14,18 @@
Milimoe.$(MSBuildProjectName.Replace(" ", "_"))
true
$(MSBuildProjectName)
+ True
+ docs\api.xml
embedded
+ 1701;1702;CS1591;CS1587
embedded
+ 1701;1702;CS1591;CS1587
diff --git a/Library/Common/Architecture/AsyncAwaiter.cs b/Library/Common/Architecture/AsyncAwaiter.cs
index 03e5631..a05b0a5 100644
--- a/Library/Common/Architecture/AsyncAwaiter.cs
+++ b/Library/Common/Architecture/AsyncAwaiter.cs
@@ -2,7 +2,7 @@
{
///
/// 继承这个类可以获得异步等待的功能
- /// 参考实现
+ /// 参考实现
///
public abstract class AsyncAwaiter
{
diff --git a/Library/Common/Network/SocketObject.cs b/Library/Common/Network/SocketObject.cs
index 26fe9f8..8251740 100644
--- a/Library/Common/Network/SocketObject.cs
+++ b/Library/Common/Network/SocketObject.cs
@@ -12,15 +12,10 @@ namespace Milimoe.FunGame.Core.Library.Common.Network
public object[] Parameters { get; } = Array.Empty
///
+ ///
///
internal static Dictionary LoadPlugins(Dictionary plugins, params object[] objs)
{
diff --git a/Service/JsonManager.cs b/Service/JsonManager.cs
index b581afc..0f499fa 100644
--- a/Service/JsonManager.cs
+++ b/Service/JsonManager.cs
@@ -78,7 +78,6 @@ namespace Milimoe.FunGame.Core.Service
/// 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别
///
///
- ///
///
///
internal static object? GetObject(string json, JsonSerializerOptions options)
diff --git a/docs/api.xml b/docs/api.xml
new file mode 100644
index 0000000..c9df2b3
--- /dev/null
+++ b/docs/api.xml
@@ -0,0 +1,1931 @@
+
+
+
+ FunGame.Core
+
+
+
+
+ 需要配合Milimoe.FunGame.Core.Library.Constant.DataRequestType使用
+ 确保已添加对应的枚举
+
+
+
+
+ 数据请求结果
+
+
+
+
+ 详细错误信息
+
+
+
+
+ 私有的实现类
+
+
+
+
+ 基于本地已连接的Socket创建新的数据请求
+ 使用RunTimeModel中的NewDataRequest创建一个新的请求
+
+
+
+
+
+
+
+ 添加数据
+
+
+
+
+
+
+ 长时间运行的数据请求需要在使用完毕后自行关闭
+
+
+
+
+ 向服务器发送数据请求
+
+
+
+
+
+ 异步向服务器发送数据请求
+
+
+
+
+
+ 获取指定key对应的反序列化对象
+
+
+
+
+
+
+
+ 反序列化Hashtable中的Json对象
+
+
+
+
+
+
+
+
+ 邮件服务内部ID
+
+
+
+
+ Smtp客户端信息
+
+
+
+
+ 上一个邮件发送的结果
+
+
+
+
+ 上一个邮件的发送错误信息(如果发送失败)
+
+
+
+ 内部变量
+
+
+
+ 创建邮件服务
+
+
+
+
+
+
+
+
+
+
+ 创建完整邮件对象
+
+
+
+
+
+
+
+
+
+
+
+
+ 发送邮件
+
+
+
+
+
+
+ 关闭邮件服务
+
+
+
+
+ 关闭邮件服务
+
+
+
+
+
+ 需要在Server中继承此类实现
+
+
+
+
+ 执行一个命令
+
+ 影响的行数
+
+
+
+ 执行一个指定的命令
+
+ 命令
+ 影响的行数
+
+
+
+ 查询DataSet
+
+ 结果集
+
+
+
+ 执行指定的命令查询DataSet
+
+ 命令
+ 结果集
+
+
+
+ 执行指定的命令查询DataRow(可选实现)
+
+ 结果行
+
+
+
+ 执行指定的命令查询DataRow(可选实现)
+
+ 命令
+ 结果行
+
+
+
+ 关闭连接
+
+
+
+
+ 创建一个SQL事务
+
+
+
+
+ 提交事务
+
+
+
+
+ 回滚事务
+
+
+
+
+ 获取角色实例
+
+
+
+
+
+ 获取库存实例
+
+
+
+
+
+ 获取物品实例,默认返回Passiveitem 被动物品 需要强制转换
+
+ Item类型 主动 或 被动
+
+
+
+
+ 获取主动物品实例
+
+
+
+
+
+ 获取被动物品实例
+
+
+
+
+
+ 获取房间实例
+
+ 房间内部序列号
+ 房间号
+ 创建时间
+ 房主
+ 房间类型
+ 房间状态
+ 房间密码
+
+
+
+
+ 通过DataSet获取房间实例
+
+
+
+
+
+
+
+ 通过DataSet获取房间列表
+
+
+
+
+
+
+
+ 获取大厅(-1号房)
+
+
+
+
+
+ 获取技能实例,默认返回PassiveSkill 被动技能 需要强制转换
+
+ Skill类型 主动 或 被动
+
+
+
+
+ 获取主动技能实例
+
+
+
+
+
+ 获取被动技能实例
+
+
+
+
+
+ 获取用户实例
+
+
+
+
+
+ 获取用户实例
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 获取用户实例
+
+
+
+
+
+
+ 获取用户实例
+
+
+
+
+
+
+ 网络服务工具箱
+
+
+
+
+ 判断字符串是否是IP地址
+
+
+
+
+
+
+ 判断字符串是否为邮箱地址
+
+
+
+
+
+
+ 判断字符串是否是正常的用户名(只有中英文和数字)
+
+
+
+
+
+
+ 获取用户名长度
+
+
+
+
+
+
+ 判断字符串是否是一个FunGame可接受的服务器地址
+
+
+
+
+
+
+ 判断参数是否是一个FunGame可接受的服务器地址
+
+
+
+
+
+
+
+ 获取服务器的延迟
+
+ 服务器IP地址
+
+
+
+
+ 返回目标对象的Json字符串
+
+
+
+
+
+
+
+ 返回目标对象的Json字符串 可指定反序列化选项
+
+
+
+
+
+
+
+
+ 反序列化Json对象
+
+
+
+
+
+
+
+ 反序列化Json对象 可指定反序列化选项
+
+
+
+
+
+
+
+
+ 反序列化Hashtable中的Json对象
+
+
+
+
+
+
+
+
+ 反序列化Hashtable中的Json对象 可指定反序列化选项
+
+
+
+
+
+
+
+
+
+ 时间服务工具箱
+
+
+
+
+ 获取系统时间
+
+ 格式化类型
+
+
+
+
+ 通过字符串转换为DateTime对象
+
+ 时间字符串
+ 转换失败返回当前时间
+
+
+
+ 获取系统时间并转为字符串
+
+ 格式化类型
+
+
+
+
+ 获取系统短日期
+
+
+
+
+
+ 获取系统日期
+
+
+
+
+
+ 使用HMACSHA512算法加密
+
+
+
+
+ 使用HMACSHA512算法加密
+
+ 需要加密的值
+ 秘钥
+
+
+
+
+ 使用RSA算法加密
+
+ 明文
+ 公钥
+
+
+
+
+ 使用RSA算法解密
+
+ 密文
+ 私钥
+
+
+
+
+ 使用HMACSHA512算法加密
+
+ 需要加密的值
+ 秘钥
+
+
+
+
+ 生成验证码
+
+ 类型
+ 长度
+
+
+
+
+ 数字验证码
+
+
+
+
+
+
+ 字母验证码
+
+
+
+
+
+
+ 混合验证码
+
+
+
+
+
+
+ 开启一个任务:调用返回对象的OnCompleted()方法可以执行后续操作,支持异步
+
+
+
+
+
+ 开启一个任务:调用返回对象的OnCompleted()方法可以执行后续操作,支持异步
+
+
+
+
+
+ 开启一个计时器任务
+
+
+
+
+
+
+ See: , ,
+
+
+
+
+ 获取FunGame.Implement.dll中接口的实现方法
+
+ 程序集
+ 接口代号
+
+
+
+
+ 获取接口实现类类名
+
+ 接口类型
+
+
+
+
+ 获取接口方法名
+
+ 方法
+
+
+
+
+ 公开方法:获取FunGame.Implement.DLL中指定方法的返回值
+
+ 接口代号
+ 方法代号
+
+
+
+
+ 创建一个Json工具类
+ 此工具类拥有单独的序列化选项,支持添加自定义转换器
+ 继承自
+
+
+
+
+ 序列化选项
+ 已经默认添加了下列转换器:
+ , ,
+
+
+
+
+ 注册一个自定义转换器,支持
+
+
+
+
+
+ 注册多个自定义转换器,支持
+
+
+
+
+
+ 获取Json字符串
+
+
+
+
+
+
+
+ 反序列化Json对象
+
+
+
+
+
+
+
+ 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别
+
+
+
+
+
+
+ 反序列化Hashtable中Key对应的Json对象
+
+
+
+
+
+
+
+
+ 反序列化多个Json对象
+ 注意必须是相同的Json对象才可以使用此方法解析
+
+
+
+
+
+
+
+ Private JsonSerializerOptions
+
+
+
+
+ 单例表:表中的对象以类名作为Key保存,并以Key获取该对象,Key具有唯一约束
+ 用于储存单例对象使用
+
+
+
+
+ 查询目标的类是否已经有实例
+
+ 单例对象
+
+
+
+
+ 将目标和目标的类添加至单例表
+
+ 单例对象
+
+ 添加单例到单例表时遇到错误
+
+
+
+ 将目标和目标的类从单例表中移除
+
+ 单例对象
+
+
+
+
+ 获取单例对象
+
+ 目标类
+
+ 不能从单例表中获取到指定的单例
+
+
+
+ 获取单例对象
+
+ 目标类
+
+ 不能从单例表中获取到指定的单例
+
+
+
+ 默认的配置文件名称
+
+
+
+
+ 写入ini文件
+
+ Section
+ 键
+ 值
+ 文件名,缺省为FunGame.ini
+
+
+
+ 读取ini文件
+
+ Section
+ 键
+ 文件名,缺省为FunGame.ini
+ 读取到的值
+
+
+
+ 查询ini文件是否存在
+
+ 文件名,缺省为FunGame.ini
+ 是否存在
+
+
+
+ 初始化ini模板文件
+
+
+
+
+ 读取TXT文件内容
+
+ 文件名
+ 相对路径
+ 内容
+
+
+
+ Aka. 2FA 双重认证 双因素身份验证
+
+
+
+
+ SQLHelper 允许为空
+
+
+
+
+ 不使用SQL模式
+
+
+
+
+ 使用SQL模式 记录对应账号的密文到数据库中
+
+
+
+
+
+ 检查账号是否需要2FA
+
+
+
+
+
+
+ 2FA验证
+
+
+
+
+
+
+
+ 每30秒刷新
+
+
+
+
+ 6位数字2FA验证码
+
+
+
+
+ ----- PUBLIC KEY -----
+
+
+
+
+ ----- SECRET SIGN -----
+
+
+
+
+ 创键私钥,用于绑定账号,并生成两个文件,需要用户保存
+
+
+
+
+ 生成随机秘钥字符串
+
+
+
+
+
+
+ 生成基于当前时间戳的6位数字2FA验证码
+
+
+
+
+
+
+ 获取当前时间节点
+
+
+
+
+
+ 生成验证码
+
+
+
+
+
+
+
+ 拆分字符串中的密文和私钥
+
+
+
+
+
+
+
+ 此类实现服务器连接、断开连接、心跳检测、创建数据请求等功能
+ -- 需要继承并实现部分方法 --
+
+
+
+
+ 与服务器的连接套接字实例
+
+
+
+
+ 套接字是否已经连接
+
+
+
+
+ 接收服务器信息的线程
+
+
+
+
+ 用于类内赋值
+
+
+
+
+ 是否正在接收服务器信息
+
+
+
+
+ 断开服务器连接
+
+
+
+
+
+ 连接服务器
+
+
+
+
+
+
+
+ 获取服务器地址
+
+ string:IP地址;int:端口号
+
+
+
+
+ 此方法将在连接服务器前触发
+ 客户端可以重写此方法
+
+
+
+ false:中止连接
+
+
+
+ 此方法将在连接服务器后触发(Connect结果返回前)
+ 客户端可以重写此方法
+
+ 连接服务器后返回的一些数据,可以使用也可以修改它们
+
+
+
+
+ 客户端需要自行实现自动登录的事务
+
+
+
+
+ 关闭所有连接
+
+
+
+
+
+ 输出消息
+
+
+
+
+
+ 自定处理异常的方法
+ -- 一般放在catch中 --
+
+
+
+
+
+ 基于本地已连接的Socket创建新的数据请求
+
+
+
+
+
+
+
+ 基于本地已连接的Socket创建长时间运行的数据请求
+
+
+
+
+
+
+
+ 开始接收服务器信息
+
+
+
+
+ 获取服务器已发送的信息为SocketObject数组
+
+
+
+
+
+ 具体接收服务器信息以及处理信息的方法
+
+
+
+
+
+ 客户端接收到服务器断开连接的通知后的处理方法
+
+
+
+
+
+ 客户端接收到服务器系统消息后的处理方法
+
+
+
+
+
+ 客户端接收到服务器心跳后的处理方法
+
+
+
+
+
+ 客户端接收到强制退出登录的通知后的处理方法
+
+
+
+
+
+ 客户端接收到聊天信息后的处理方法
+
+
+
+
+
+ 客户端接收到更换房主后的处理方法
+
+
+
+
+
+ 客户端接收到匹配房间成功后的处理方法
+
+
+
+
+
+ 客户端接收到开始游戏信息后的处理方法
+
+
+
+
+
+ 客户端接收到游戏结束信息后的处理方法
+
+
+
+
+
+ 客户端接收到局内消息后的处理方法
+
+
+
+
+
+ 继承 AsyncAwaiter 用法:
+ 1、调用Socket.Send()前,请设置为等待状态:SetWorking();
+ 2、调用Socket.Send() == Success后,请等待任务完成:WaitForWorkDone();
+ 3、在其他任何地方修改Working状态,均会使任务终止。
+
+
+
+
+ 接收到的SocketObject实例
+
+
+
+
+ Socket
+
+
+
+
+ 继承请调用base构造
+
+ Socket
+
+
+
+ 继承请重写此方法
+
+ SocketObject
+
+
+
+ 判断是否已经Disposed
+
+
+
+
+ 公开的Dispose方法
+
+
+
+
+ 关闭时
+
+
+
+
+
+ 关闭事件
+
+
+
+
+ Controller关闭时事件
+ 不建议new Dispose()方法,建议使用事件
+ 事件会在base.Dispose()执行前触发
+
+
+
+
+ 触发关闭事件
+
+
+
+
+ 记录 的生涯、赛季统计数据
+ Key为赛季(long),每个key代表第key赛季,key = 0时为生涯数据。
+
+
+
+
+ 窗体继承这些接口便能实现事件,或为插件预留。
+
+
+
+
+ 插件需要实现什么事件就继承什么接口
+
+
+
+
+ 继承这个类可以获得异步等待的功能
+ 参考实现
+
+
+
+
+ 接收到的实例
+
+
+
+
+ 是否处于等待的状态
+
+
+
+
+ 异步操作前,请设置为等待状态
+
+
+
+
+ 等待任务完成(需要自己异步)
+
+
+
+
+ 异步等待任务完成
+
+
+
+
+ 任务的等待器,可以设置在任务完成后需要的操作
+
+
+
+
+ 任务是否完成
+
+
+
+
+ 捕获到的异常
+
+
+
+
+ 内部实现类
+ 实现参见
+
+
+
+
+ 构造一个等待器
+
+
+
+
+
+ 返回TaskAwaiter可以连续的调用方法
+ 但是意义不大,前一个OnCompleted方法并不会等待下一个方法
+ 可以理解为并行广播
+
+
+
+
+
+
+ 在捕获到异常时,将触发Error事件
+
+
+
+
+
+
+ 发件人邮箱
+
+
+
+
+ 发件人名称
+
+
+
+
+ 邮件主题
+
+
+
+
+ 邮件内容
+
+
+
+
+ 邮件优先级
+
+
+
+
+ 内容是否支持HTML
+
+
+
+
+ 收件人列表
+
+
+
+
+ 抄送列表
+
+
+
+
+ 密送列表
+
+
+
+
+ 使用MailSender工具类创建邮件对象
+
+
+
+
+
+ 使用地址和名称创建邮件对象
+
+
+
+
+
+
+ 使用地址和名称创建邮件对象,同时写主题、内容、单个收件人
+
+
+
+
+
+
+
+
+ 使用地址和名称创建邮件对象,同时写主题、内容、单个收件人、单个抄送
+
+
+
+
+
+
+
+
+
+ 完整的创建邮件对象
+
+
+
+
+
+
+
+
+
+
+
+
+ 发送邮件
+ -- 适合创建一次性邮件并发送 --
+
+
+
+
+
+
+ 添加收件人
+
+
+
+
+
+ 添加多个收件人
+
+
+
+
+
+ 添加抄送
+
+
+
+
+
+ 添加多个抄送
+
+
+
+
+
+ 添加密送
+
+
+
+
+
+ 添加多个密送
+
+
+
+
+
+ 从参数列表中获取指定类型和索引的参数
+
+ 类型
+ 索引
+ 类型的参数
+ 索引超过数组上限
+
+
+
+ 插件名称
+
+
+
+
+ 插件描述
+
+
+
+
+ 插件版本
+
+
+
+
+ 插件作者
+
+
+
+
+ 加载标记
+
+
+
+
+ 加载插件
+
+
+
+
+ 插件加载后需要做的事
+
+
+
+
+ 允许返回false来阻止加载此插件
+
+
+
+
+
+ 传递委托以便让插件调用
+
+
+
+
+ 输出系统消息
+
+
+
+
+ 基于本地已连接的Socket创建新的数据请求
+
+
+
+
+ 基于本地已连接的Socket创建长时间运行的数据请求
+
+
+
+
+ Session对象
+
+
+
+
+ Config对象
+
+
+
+
+ 绑定事件。在后触发
+
+
+
+
+ 必须继承基类:
+ 继承事件接口并实现其方法来使插件生效。例如继承:
+
+
+
+
+ 需要同步更新
+
+
+
+
+ 将通信类型的枚举转换为字符串
+
+ 通信类型
+ 等效字符串
+
+
+
+ 需要同步更新
+
+
+
+ RunTime
+
+
+ Main
+
+
+ Register
+
+
+ Login
+
+
+ Room
+
+
+ Gaming
+
+
+
+ 获取Type的等效字符串
+
+
+
+
+
+
+ 获取Type的等效字符串
+
+
+
+
+
+
+ 获取字符串对应的枚举
+
+
+
+
+
+
+ 添加-debug启动项将开启DebugMode(仅适用于Desktop或Console)
+ 目前支持禁用心跳检测功能
+
+
+
+
+ 需要同步更新
+
+
+
+
+ 需要同步更新
+
+
+
+ Commands
+
+
+
+ 是否自动连接服务器
+
+
+
+
+ 是否自动登录
+
+
+
+
+ 是否在匹配中
+
+
+
+
+ 是否连接上服务器
+
+
+
+
+ 是否正在重连
+
+
+
+
+ 是否自动重连
+
+
+
+
+ 是否在房间中
+
+
+
+
+ 当前游戏模式
+
+
+
+
+ 服务器名称
+
+
+
+
+ 公告
+
+
+
+
+ 自动登录的账号
+
+
+
+
+ 自动登录的密码
+
+
+
+
+ 自动登录的秘钥
+
+
+
+
+ 服务器IP地址
+
+
+
+
+ 服务器端口号
+
+
+
+
+ SocketToken
+
+
+
+
+ LoginKey
+
+
+
+
+ 已登录的用户
+
+
+
+
+ 已登录用户名
+
+
+
+
+ 所处的房间
+
+
+
+
+ 从plugins目录加载所有插件
+
+
+
+
+
+
+
+ 默认的序列化选项
+
+
+
+
+ 获取Json字符串
+
+
+
+
+
+
+
+ 获取Json字符串
+
+
+
+
+
+
+
+
+ 反序列化Json对象
+
+
+
+
+
+
+
+ 反序列化Json对象
+
+
+
+
+
+
+
+
+ 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别
+
+
+
+
+
+
+ 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别
+
+
+
+
+
+
+
+ 反序列化SocketObject中索引为index的Json对象
+
+
+
+
+
+
+
+
+
+ 反序列化Hashtable中Key对应的Json对象
+
+
+
+
+
+
+
+
+ 反序列化Hashtable中Key对应的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信息容器
+ 通信结果
+
+
+
+ 用于客户端接收服务器信息
+
+ SocketObject
+
+
+
+ 用于服务器接收客户端信息
+
+ 客户端Socket
+ SocketObject
+
+
+
+ 用于客户端接收服务器信息(数组版)
+
+ SocketObjects
+
+
+
+ 用于服务器接收客户端信息(数组版)
+
+ 客户端Socket
+ SocketObjects
+
+
+
+ 监听事件的委托
+
+ SocketObject
+
+
+
+ 监听事件
+
+
+
+
+ 触发异步监听事件
+
+ SocketObject
+
+
+
+ 开启一个任务:调用返回对象的OnCompleted()方法可以执行后续操作,支持异步
+
+
+
+
+
+
+ 开启一个任务:调用返回对象的OnCompleted()方法可以执行后续操作,支持异步
+
+
+
+
+
+
+ 内部实现类
+
+
+
+
+ 返回ITaskAwaiter可以进一步调用方法
+ 但是意义不大,前一个OnCompleted方法并不会等待下一个方法
+ 可以理解为并行广播
+
+
+
+
+
+
+ 在捕获到异常时,将触发Error事件
+
+
+
+
+
+