mirror of
https://github.com/project-redbud/FunGame-Core.git
synced 2025-04-23 12:39:35 +08:00
#80:为Addon添加了专用的DataRequest方法 (#84)
This commit is contained in:
parent
b53d95525a
commit
924a45413a
@ -54,53 +54,59 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
|
||||
/// <summary>
|
||||
/// 基于本地已连接的 <see cref="Socket"/> 创建新的数据请求<para/>
|
||||
/// 使用 <see cref="RunTimeController"/> 中的 <see cref="RunTimeController.NewDataRequest(DataRequestType)"/> 创建一个新的请求
|
||||
/// 插件则使用 <see cref="RunTimeController"/> 中的 <see cref="RunTimeController.NewDataRequestForAddon(DataRequestType)"/> 创建一个新的请求<para/>
|
||||
/// </summary>
|
||||
/// <param name="Socket"></param>
|
||||
/// <param name="RequestType"></param>
|
||||
/// <param name="IsLongRunning"></param>
|
||||
internal DataRequest(Socket Socket, DataRequestType RequestType, bool IsLongRunning = false)
|
||||
/// <param name="RuntimeType"></param>
|
||||
internal DataRequest(Socket Socket, DataRequestType RequestType, bool IsLongRunning = false, SocketRuntimeType RuntimeType = SocketRuntimeType.Client)
|
||||
{
|
||||
Worker = new(Socket, RequestType, Guid.NewGuid(), IsLongRunning);
|
||||
Worker = new(Socket, RequestType, Guid.NewGuid(), IsLongRunning, RuntimeType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 基于本地已连接的 <see cref="HTTPClient"/> 创建新的数据请求<para/>
|
||||
/// 使用 <see cref="RunTimeController"/> 中的 <see cref="RunTimeController.NewDataRequest(DataRequestType)"/> 创建一个新的请求<para/>
|
||||
/// 插件则使用 <see cref="RunTimeController"/> 中的 <see cref="RunTimeController.NewDataRequestForAddon(DataRequestType)"/> 创建一个新的请求<para/>
|
||||
/// 此数据请求只能调用异步方法 <see cref="SendRequestAsync"/> 请求数据
|
||||
/// </summary>
|
||||
/// <param name="WebSocket"></param>
|
||||
/// <param name="RequestType"></param>
|
||||
/// <param name="IsLongRunning"></param>
|
||||
internal DataRequest(HTTPClient WebSocket, DataRequestType RequestType, bool IsLongRunning = false)
|
||||
/// <param name="RuntimeType"></param>
|
||||
internal DataRequest(HTTPClient WebSocket, DataRequestType RequestType, bool IsLongRunning = false, SocketRuntimeType RuntimeType = SocketRuntimeType.Client)
|
||||
{
|
||||
Worker = new(WebSocket, RequestType, Guid.NewGuid(), IsLongRunning);
|
||||
Worker = new(WebSocket, RequestType, Guid.NewGuid(), IsLongRunning, RuntimeType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 基于本地已连接的 <see cref="Socket"/> 创建新的局内(<see cref="Model.Gaming"/>)数据请求<para/>
|
||||
/// 使用 <see cref="RunTimeController"/> 中的 <see cref="RunTimeController.NewDataRequest(GamingType)"/> 创建一个新的请求<para/>
|
||||
/// 使用 <see cref="RunTimeController"/> 中的 <see cref="RunTimeController.NewDataRequestForAddon(GamingType)"/> 创建一个新的请求<para/>
|
||||
/// 此构造方法是给 <see cref="Library.Common.Addon.GameModule"/> 提供的
|
||||
/// </summary>
|
||||
/// <param name="Socket"></param>
|
||||
/// <param name="GamingType"></param>
|
||||
/// <param name="IsLongRunning"></param>
|
||||
internal DataRequest(Socket Socket, GamingType GamingType, bool IsLongRunning = false)
|
||||
/// <param name="RuntimeType"></param>
|
||||
internal DataRequest(Socket Socket, GamingType GamingType, bool IsLongRunning = false, SocketRuntimeType RuntimeType = SocketRuntimeType.Client)
|
||||
{
|
||||
GamingWorker = new(Socket, GamingType, Guid.NewGuid(), IsLongRunning);
|
||||
GamingWorker = new(Socket, GamingType, Guid.NewGuid(), IsLongRunning, RuntimeType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 基于本地已连接的 <see cref="HTTPClient"/> 创建新的局内(<see cref="Model.Gaming"/>)数据请求<para/>
|
||||
/// 使用 <see cref="RunTimeController"/> 中的 <see cref="RunTimeController.NewDataRequest(GamingType)"/> 创建一个新的请求<para/>
|
||||
/// 使用 <see cref="RunTimeController"/> 中的 <see cref="RunTimeController.NewDataRequestForAddon(GamingType)"/> 创建一个新的请求<para/>
|
||||
/// 此构造方法是给 <see cref="Library.Common.Addon.GameModule"/> 提供的<para/>
|
||||
/// 此数据请求只能调用异步方法 <see cref="SendRequestAsync"/> 请求数据
|
||||
/// </summary>
|
||||
/// <param name="WebSocket"></param>
|
||||
/// <param name="GamingType"></param>
|
||||
/// <param name="IsLongRunning"></param>
|
||||
internal DataRequest(HTTPClient WebSocket, GamingType GamingType, bool IsLongRunning = false)
|
||||
/// <param name="RuntimeType"></param>
|
||||
internal DataRequest(HTTPClient WebSocket, GamingType GamingType, bool IsLongRunning = false, SocketRuntimeType RuntimeType = SocketRuntimeType.Client)
|
||||
{
|
||||
GamingWorker = new(WebSocket, GamingType, Guid.NewGuid(), IsLongRunning);
|
||||
GamingWorker = new(WebSocket, GamingType, Guid.NewGuid(), IsLongRunning, RuntimeType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -195,24 +201,27 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
|
||||
private readonly DataRequestType RequestType = DataRequestType.UnKnown;
|
||||
private readonly Guid RequestID = Guid.Empty;
|
||||
private readonly bool IsLongRunning = false;
|
||||
private readonly SocketRuntimeType RuntimeType = SocketRuntimeType.Client;
|
||||
private Hashtable _ResultData = [];
|
||||
private RequestResult _Result = RequestResult.Missing;
|
||||
private string _Error = "";
|
||||
|
||||
public SocketRequest(Socket? Socket, DataRequestType RequestType, Guid RequestID, bool IsLongRunning = false) : base(Socket)
|
||||
public SocketRequest(Socket? Socket, DataRequestType RequestType, Guid RequestID, bool IsLongRunning = false, SocketRuntimeType RuntimeType = SocketRuntimeType.Client) : base(Socket)
|
||||
{
|
||||
this.Socket = Socket;
|
||||
this.RequestType = RequestType;
|
||||
this.RequestID = RequestID;
|
||||
this.IsLongRunning = IsLongRunning;
|
||||
this.RuntimeType = RuntimeType;
|
||||
}
|
||||
|
||||
public SocketRequest(HTTPClient? WebSocket, DataRequestType RequestType, Guid RequestID, bool IsLongRunning = false) : base(WebSocket)
|
||||
public SocketRequest(HTTPClient? WebSocket, DataRequestType RequestType, Guid RequestID, bool IsLongRunning = false, SocketRuntimeType RuntimeType = SocketRuntimeType.Client) : base(WebSocket)
|
||||
{
|
||||
this.WebSocket = WebSocket;
|
||||
this.RequestType = RequestType;
|
||||
this.RequestID = RequestID;
|
||||
this.IsLongRunning = IsLongRunning;
|
||||
this.RuntimeType = RuntimeType;
|
||||
}
|
||||
|
||||
public void SendRequest()
|
||||
@ -220,6 +229,12 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
|
||||
try
|
||||
{
|
||||
SetWorking();
|
||||
if (RuntimeType == SocketRuntimeType.Addon || RuntimeType == SocketRuntimeType.Addon)
|
||||
{
|
||||
if (RequestData.ContainsKey(SocketSet.Plugins_Mark)) RequestData[SocketSet.Plugins_Mark] = "true";
|
||||
else RequestData.Add(SocketSet.Plugins_Mark, true);
|
||||
}
|
||||
else RequestData.Remove(SocketSet.Plugins_Mark);
|
||||
if (Socket != null && Socket.Send(SocketMessageType.DataRequest, RequestType, RequestID, RequestData) == SocketResult.Success)
|
||||
{
|
||||
WaitForWorkDone();
|
||||
@ -243,6 +258,12 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
|
||||
try
|
||||
{
|
||||
SetWorking();
|
||||
if (RuntimeType == SocketRuntimeType.Addon || RuntimeType == SocketRuntimeType.Addon)
|
||||
{
|
||||
if (RequestData.ContainsKey(SocketSet.Plugins_Mark)) RequestData[SocketSet.Plugins_Mark] = "true";
|
||||
else RequestData.Add(SocketSet.Plugins_Mark, true);
|
||||
}
|
||||
else RequestData.Remove(SocketSet.Plugins_Mark);
|
||||
if (Socket != null && Socket.Send(SocketMessageType.DataRequest, RequestType, RequestID, RequestData) == SocketResult.Success)
|
||||
{
|
||||
await WaitForWorkDoneAsync();
|
||||
@ -303,24 +324,27 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
|
||||
private readonly GamingType GamingType = GamingType.None;
|
||||
private readonly Guid RequestID = Guid.Empty;
|
||||
private readonly bool IsLongRunning = false;
|
||||
private readonly SocketRuntimeType RuntimeType = SocketRuntimeType.Client;
|
||||
private Hashtable _ResultData = [];
|
||||
private RequestResult _Result = RequestResult.Missing;
|
||||
private string _Error = "";
|
||||
|
||||
public GamingRequest(Socket? Socket, GamingType GamingType, Guid RequestID, bool IsLongRunning = false) : base(Socket)
|
||||
public GamingRequest(Socket? Socket, GamingType GamingType, Guid RequestID, bool IsLongRunning = false, SocketRuntimeType RuntimeType = SocketRuntimeType.Client) : base(Socket)
|
||||
{
|
||||
this.Socket = Socket;
|
||||
this.GamingType = GamingType;
|
||||
this.RequestID = RequestID;
|
||||
this.IsLongRunning = IsLongRunning;
|
||||
this.RuntimeType = RuntimeType;
|
||||
}
|
||||
|
||||
public GamingRequest(HTTPClient? WebSocket, GamingType GamingType, Guid RequestID, bool IsLongRunning = false) : base(WebSocket)
|
||||
public GamingRequest(HTTPClient? WebSocket, GamingType GamingType, Guid RequestID, bool IsLongRunning = false, SocketRuntimeType RuntimeType = SocketRuntimeType.Client) : base(WebSocket)
|
||||
{
|
||||
this.WebSocket = WebSocket;
|
||||
this.GamingType = GamingType;
|
||||
this.RequestID = RequestID;
|
||||
this.IsLongRunning = IsLongRunning;
|
||||
this.RuntimeType = RuntimeType;
|
||||
}
|
||||
|
||||
public void SendRequest()
|
||||
@ -328,6 +352,12 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
|
||||
try
|
||||
{
|
||||
SetWorking();
|
||||
if (RuntimeType == SocketRuntimeType.Addon || RuntimeType == SocketRuntimeType.Addon)
|
||||
{
|
||||
if (RequestData.ContainsKey(SocketSet.Plugins_Mark)) RequestData[SocketSet.Plugins_Mark] = "true";
|
||||
else RequestData.Add(SocketSet.Plugins_Mark, true);
|
||||
}
|
||||
else RequestData.Remove(SocketSet.Plugins_Mark);
|
||||
if (Socket != null && Socket.Send(SocketMessageType.DataRequest, GamingType, RequestID, RequestData) == SocketResult.Success)
|
||||
{
|
||||
WaitForWorkDone();
|
||||
@ -351,6 +381,12 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
|
||||
try
|
||||
{
|
||||
SetWorking();
|
||||
if (RuntimeType == SocketRuntimeType.Addon || RuntimeType == SocketRuntimeType.Addon)
|
||||
{
|
||||
if (RequestData.ContainsKey(SocketSet.Plugins_Mark)) RequestData[SocketSet.Plugins_Mark] = "true";
|
||||
else RequestData.Add(SocketSet.Plugins_Mark, true);
|
||||
}
|
||||
else RequestData.Remove(SocketSet.Plugins_Mark);
|
||||
if (Socket != null && Socket.Send(SocketMessageType.DataRequest, GamingType, RequestID, RequestData) == SocketResult.Success)
|
||||
{
|
||||
await WaitForWorkDoneAsync();
|
||||
|
@ -286,18 +286,52 @@ namespace Milimoe.FunGame.Core.Controller
|
||||
throw new ConnectFailedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 基于本地已连接的Socket创建新的数据请求<para/>
|
||||
/// 加载项专用(<see cref="Library.Common.Addon.Plugin"/> / <see cref="Library.Common.Addon.GameModule"/>)
|
||||
/// </summary>
|
||||
/// <param name="RequestType"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="ConnectFailedException"></exception>
|
||||
public DataRequest NewDataRequestForAddon(DataRequestType RequestType)
|
||||
{
|
||||
if (_Socket != null)
|
||||
{
|
||||
DataRequest request = new(_Socket, RequestType, false, SocketRuntimeType.Addon);
|
||||
return request;
|
||||
}
|
||||
throw new ConnectFailedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 基于本地已连接的Socket创建长时间运行的数据请求
|
||||
/// 加载项专用(<see cref="Library.Common.Addon.Plugin"/> / <see cref="Library.Common.Addon.GameModule"/>)
|
||||
/// </summary>
|
||||
/// <param name="RequestType"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="ConnectFailedException"></exception>
|
||||
public DataRequest NewLongRunningDataRequestForAddon(DataRequestType RequestType)
|
||||
{
|
||||
if (_Socket != null)
|
||||
{
|
||||
DataRequest request = new(_Socket, RequestType, true, SocketRuntimeType.Addon);
|
||||
return request;
|
||||
}
|
||||
throw new ConnectFailedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 基于本地已连接的Socket创建新的局内(<see cref="Model.Gaming"/>)数据请求<para/>
|
||||
/// 此方法是给 <see cref="Library.Common.Addon.GameModule"/> 提供的
|
||||
/// 加载项专用:此方法是给 <see cref="Library.Common.Addon.GameModule"/> 提供的
|
||||
/// </summary>
|
||||
/// <param name="GamingType"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="ConnectFailedException"></exception>
|
||||
public DataRequest NewDataRequest(GamingType GamingType)
|
||||
public DataRequest NewDataRequestForAddon(GamingType GamingType)
|
||||
{
|
||||
if (_Socket != null)
|
||||
{
|
||||
DataRequest request = new(_Socket, GamingType);
|
||||
DataRequest request = new(_Socket, GamingType, false, SocketRuntimeType.Addon);
|
||||
return request;
|
||||
}
|
||||
throw new ConnectFailedException();
|
||||
@ -305,16 +339,16 @@ namespace Milimoe.FunGame.Core.Controller
|
||||
|
||||
/// <summary>
|
||||
/// 基于本地已连接的Socket创建长时间运行的局内(<see cref="Model.Gaming"/>)数据请求<para/>
|
||||
/// 此方法是给 <see cref="Library.Common.Addon.GameModule"/> 提供的
|
||||
/// 加载项专用:此方法是给 <see cref="Library.Common.Addon.GameModule"/> 提供的
|
||||
/// </summary>
|
||||
/// <param name="GamingType"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="ConnectFailedException"></exception>
|
||||
public DataRequest NewLongRunningDataRequest(GamingType GamingType)
|
||||
public DataRequest NewLongRunningDataRequestForAddon(GamingType GamingType)
|
||||
{
|
||||
if (_Socket != null)
|
||||
{
|
||||
DataRequest request = new(_Socket, GamingType, true);
|
||||
DataRequest request = new(_Socket, GamingType, true, SocketRuntimeType.Addon);
|
||||
return request;
|
||||
}
|
||||
throw new ConnectFailedException();
|
||||
|
@ -31,45 +31,51 @@
|
||||
私有的实现类(这是局内请求的)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.#ctor(Milimoe.FunGame.Core.Library.Common.Network.Socket,Milimoe.FunGame.Core.Library.Constant.DataRequestType,System.Boolean)">
|
||||
<member name="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.#ctor(Milimoe.FunGame.Core.Library.Common.Network.Socket,Milimoe.FunGame.Core.Library.Constant.DataRequestType,System.Boolean,Milimoe.FunGame.Core.Library.Constant.SocketRuntimeType)">
|
||||
<summary>
|
||||
基于本地已连接的 <see cref="T:Milimoe.FunGame.Core.Library.Common.Network.Socket"/> 创建新的数据请求<para/>
|
||||
使用 <see cref="T:Milimoe.FunGame.Core.Controller.RunTimeController"/> 中的 <see cref="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequest(Milimoe.FunGame.Core.Library.Constant.DataRequestType)"/> 创建一个新的请求
|
||||
插件则使用 <see cref="T:Milimoe.FunGame.Core.Controller.RunTimeController"/> 中的 <see cref="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequestForAddon(Milimoe.FunGame.Core.Library.Constant.DataRequestType)"/> 创建一个新的请求<para/>
|
||||
</summary>
|
||||
<param name="Socket"></param>
|
||||
<param name="RequestType"></param>
|
||||
<param name="IsLongRunning"></param>
|
||||
<param name="RuntimeType"></param>
|
||||
</member>
|
||||
<member name="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.#ctor(Milimoe.FunGame.Core.Library.Common.Network.HTTPClient,Milimoe.FunGame.Core.Library.Constant.DataRequestType,System.Boolean)">
|
||||
<member name="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.#ctor(Milimoe.FunGame.Core.Library.Common.Network.HTTPClient,Milimoe.FunGame.Core.Library.Constant.DataRequestType,System.Boolean,Milimoe.FunGame.Core.Library.Constant.SocketRuntimeType)">
|
||||
<summary>
|
||||
基于本地已连接的 <see cref="T:Milimoe.FunGame.Core.Library.Common.Network.HTTPClient"/> 创建新的数据请求<para/>
|
||||
使用 <see cref="T:Milimoe.FunGame.Core.Controller.RunTimeController"/> 中的 <see cref="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequest(Milimoe.FunGame.Core.Library.Constant.DataRequestType)"/> 创建一个新的请求<para/>
|
||||
插件则使用 <see cref="T:Milimoe.FunGame.Core.Controller.RunTimeController"/> 中的 <see cref="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequestForAddon(Milimoe.FunGame.Core.Library.Constant.DataRequestType)"/> 创建一个新的请求<para/>
|
||||
此数据请求只能调用异步方法 <see cref="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.SendRequestAsync"/> 请求数据
|
||||
</summary>
|
||||
<param name="WebSocket"></param>
|
||||
<param name="RequestType"></param>
|
||||
<param name="IsLongRunning"></param>
|
||||
<param name="RuntimeType"></param>
|
||||
</member>
|
||||
<member name="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.#ctor(Milimoe.FunGame.Core.Library.Common.Network.Socket,Milimoe.FunGame.Core.Library.Constant.GamingType,System.Boolean)">
|
||||
<member name="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.#ctor(Milimoe.FunGame.Core.Library.Common.Network.Socket,Milimoe.FunGame.Core.Library.Constant.GamingType,System.Boolean,Milimoe.FunGame.Core.Library.Constant.SocketRuntimeType)">
|
||||
<summary>
|
||||
基于本地已连接的 <see cref="T:Milimoe.FunGame.Core.Library.Common.Network.Socket"/> 创建新的局内(<see cref="T:Milimoe.FunGame.Core.Model.Gaming"/>)数据请求<para/>
|
||||
使用 <see cref="T:Milimoe.FunGame.Core.Controller.RunTimeController"/> 中的 <see cref="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequest(Milimoe.FunGame.Core.Library.Constant.GamingType)"/> 创建一个新的请求<para/>
|
||||
使用 <see cref="T:Milimoe.FunGame.Core.Controller.RunTimeController"/> 中的 <see cref="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequestForAddon(Milimoe.FunGame.Core.Library.Constant.GamingType)"/> 创建一个新的请求<para/>
|
||||
此构造方法是给 <see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.GameModule"/> 提供的
|
||||
</summary>
|
||||
<param name="Socket"></param>
|
||||
<param name="GamingType"></param>
|
||||
<param name="IsLongRunning"></param>
|
||||
<param name="RuntimeType"></param>
|
||||
</member>
|
||||
<member name="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.#ctor(Milimoe.FunGame.Core.Library.Common.Network.HTTPClient,Milimoe.FunGame.Core.Library.Constant.GamingType,System.Boolean)">
|
||||
<member name="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.#ctor(Milimoe.FunGame.Core.Library.Common.Network.HTTPClient,Milimoe.FunGame.Core.Library.Constant.GamingType,System.Boolean,Milimoe.FunGame.Core.Library.Constant.SocketRuntimeType)">
|
||||
<summary>
|
||||
基于本地已连接的 <see cref="T:Milimoe.FunGame.Core.Library.Common.Network.HTTPClient"/> 创建新的局内(<see cref="T:Milimoe.FunGame.Core.Model.Gaming"/>)数据请求<para/>
|
||||
使用 <see cref="T:Milimoe.FunGame.Core.Controller.RunTimeController"/> 中的 <see cref="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequest(Milimoe.FunGame.Core.Library.Constant.GamingType)"/> 创建一个新的请求<para/>
|
||||
使用 <see cref="T:Milimoe.FunGame.Core.Controller.RunTimeController"/> 中的 <see cref="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequestForAddon(Milimoe.FunGame.Core.Library.Constant.GamingType)"/> 创建一个新的请求<para/>
|
||||
此构造方法是给 <see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.GameModule"/> 提供的<para/>
|
||||
此数据请求只能调用异步方法 <see cref="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.SendRequestAsync"/> 请求数据
|
||||
</summary>
|
||||
<param name="WebSocket"></param>
|
||||
<param name="GamingType"></param>
|
||||
<param name="IsLongRunning"></param>
|
||||
<param name="RuntimeType"></param>
|
||||
</member>
|
||||
<member name="M:Milimoe.FunGame.Core.Api.Transmittal.DataRequest.AddRequestData(System.String,System.Object)">
|
||||
<summary>
|
||||
@ -1378,19 +1384,37 @@
|
||||
<returns></returns>
|
||||
<exception cref="T:Milimoe.FunGame.ConnectFailedException"></exception>
|
||||
</member>
|
||||
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequest(Milimoe.FunGame.Core.Library.Constant.GamingType)">
|
||||
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequestForAddon(Milimoe.FunGame.Core.Library.Constant.DataRequestType)">
|
||||
<summary>
|
||||
基于本地已连接的Socket创建新的数据请求<para/>
|
||||
加载项专用(<see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.Plugin"/> / <see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.GameModule"/>)
|
||||
</summary>
|
||||
<param name="RequestType"></param>
|
||||
<returns></returns>
|
||||
<exception cref="T:Milimoe.FunGame.ConnectFailedException"></exception>
|
||||
</member>
|
||||
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewLongRunningDataRequestForAddon(Milimoe.FunGame.Core.Library.Constant.DataRequestType)">
|
||||
<summary>
|
||||
基于本地已连接的Socket创建长时间运行的数据请求
|
||||
加载项专用(<see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.Plugin"/> / <see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.GameModule"/>)
|
||||
</summary>
|
||||
<param name="RequestType"></param>
|
||||
<returns></returns>
|
||||
<exception cref="T:Milimoe.FunGame.ConnectFailedException"></exception>
|
||||
</member>
|
||||
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewDataRequestForAddon(Milimoe.FunGame.Core.Library.Constant.GamingType)">
|
||||
<summary>
|
||||
基于本地已连接的Socket创建新的局内(<see cref="T:Milimoe.FunGame.Core.Model.Gaming"/>)数据请求<para/>
|
||||
此方法是给 <see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.GameModule"/> 提供的
|
||||
加载项专用:此方法是给 <see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.GameModule"/> 提供的
|
||||
</summary>
|
||||
<param name="GamingType"></param>
|
||||
<returns></returns>
|
||||
<exception cref="T:Milimoe.FunGame.ConnectFailedException"></exception>
|
||||
</member>
|
||||
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewLongRunningDataRequest(Milimoe.FunGame.Core.Library.Constant.GamingType)">
|
||||
<member name="M:Milimoe.FunGame.Core.Controller.RunTimeController.NewLongRunningDataRequestForAddon(Milimoe.FunGame.Core.Library.Constant.GamingType)">
|
||||
<summary>
|
||||
基于本地已连接的Socket创建长时间运行的局内(<see cref="T:Milimoe.FunGame.Core.Model.Gaming"/>)数据请求<para/>
|
||||
此方法是给 <see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.GameModule"/> 提供的
|
||||
加载项专用:此方法是给 <see cref="T:Milimoe.FunGame.Core.Library.Common.Addon.GameModule"/> 提供的
|
||||
</summary>
|
||||
<param name="GamingType"></param>
|
||||
<returns></returns>
|
||||
|
@ -31,8 +31,8 @@ namespace Milimoe.FunGame.Core.Library.Common.Network
|
||||
this.ServerPort = ServerPort;
|
||||
if (MaxConnection <= 0)
|
||||
{
|
||||
OnlineClients = new();
|
||||
OnlineUsers = new();
|
||||
OnlineClients = [];
|
||||
OnlineUsers = [];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -33,6 +33,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
|
||||
public const int MaxConnection_1C2G = 10;
|
||||
public const int MaxConnection_2C2G = 20;
|
||||
public const int MaxConnection_4C4G = 40;
|
||||
public const string Plugins_Mark = "plugins_mark";
|
||||
|
||||
public const string Socket = "Socket";
|
||||
public const string Unknown = "Unknown";
|
||||
|
@ -144,8 +144,7 @@ namespace Milimoe.FunGame.Core.Library.Constant
|
||||
{
|
||||
Client,
|
||||
Server,
|
||||
Client_Plugin,
|
||||
Server_Plugin
|
||||
Addon
|
||||
}
|
||||
|
||||
public enum ErrorIPAddressType
|
||||
|
@ -18,9 +18,9 @@ namespace Milimoe.FunGame.Core.Model
|
||||
|
||||
public int GetReadyPlayerCount(string roomid) => GetReadyPlayerList(roomid).Count;
|
||||
|
||||
public List<Room> ListRoom => _List.Values.ToList();
|
||||
public List<Room> ListRoom => [.. _List.Values];
|
||||
|
||||
public List<string> ListRoomID => _List.Keys.ToList();
|
||||
public List<string> ListRoomID => [.. _List.Keys];
|
||||
|
||||
public List<User> GetPlayerList(string roomid) => _PlayerList.TryGetValue(roomid, out List<User>? user) ? user : [];
|
||||
|
||||
@ -112,7 +112,7 @@ namespace Milimoe.FunGame.Core.Model
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerator GetEnumerator()
|
||||
public IEnumerator<Room> GetEnumerator()
|
||||
{
|
||||
foreach (Room room in ListRoom)
|
||||
{
|
||||
@ -120,12 +120,9 @@ namespace Milimoe.FunGame.Core.Model
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator<Room> IEnumerable<Room>.GetEnumerator()
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
foreach (Room room in ListRoom)
|
||||
{
|
||||
yield return room;
|
||||
}
|
||||
return GetEnumerator();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,10 @@
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections;
|
||||
using System.Collections.Concurrent;
|
||||
using Milimoe.FunGame.Core.Entity;
|
||||
|
||||
namespace Milimoe.FunGame.Core.Service
|
||||
{
|
||||
internal class ModelManager<T>
|
||||
internal class ModelManager<T> : IEnumerable<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// 目前的Model数量
|
||||
@ -17,7 +19,7 @@ namespace Milimoe.FunGame.Core.Service
|
||||
/// <summary>
|
||||
/// 可参与高并发的字典,但添加效率较低
|
||||
/// </summary>
|
||||
private ConcurrentDictionary<string, T> Models { get; } = new();
|
||||
private ConcurrentDictionary<string, T> Models { get; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Init ModelManager
|
||||
@ -103,7 +105,20 @@ namespace Milimoe.FunGame.Core.Service
|
||||
/// </summary>
|
||||
internal List<T> GetList()
|
||||
{
|
||||
return Models.Values.ToList();
|
||||
return [.. Models.Values];
|
||||
}
|
||||
|
||||
public IEnumerator<T> GetEnumerator()
|
||||
{
|
||||
foreach (T instance in Models.Values)
|
||||
{
|
||||
yield return instance;
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
return GetEnumerator();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user