Tile服务器雏形..

This commit is contained in:
PC-20230316NUNE\Administrator 2024-08-19 11:51:17 +08:00
parent 894100ae37
commit a1f2730025
463 changed files with 37502 additions and 27925 deletions

View File

@ -40,6 +40,37 @@
<ImplicitlyExpandNETStandardFacades>false</ImplicitlyExpandNETStandardFacades>
<ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
</PropertyGroup>
<ItemGroup>
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\fr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\fr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\tr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ko\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ja\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\tr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\System.Text.Json.SourceGeneration.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\zh-Hant\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ja\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\es\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ru\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\de\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\pl\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.Core.2.0.15\analyzers\dotnet\cs\TouchSocket.Core.SourceGenerator.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\System.Text.Json.SourceGeneration.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ru\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\es\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\cs\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\it\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\pl\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\de\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\zh-Hans\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\zh-Hant\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ko\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\it\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\cs\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\zh-Hans\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\pt-BR\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\pt-BR\System.Text.Json.SourceGeneration.resources.dll" />
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\AimingRig\AimReticle.cs" />
<None Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\AimingRig\AimingRig.asmdef" />
@ -299,136 +330,112 @@
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\PlaybackEngines\WindowsStandaloneSupport\UnityEditor.WindowsStandalone.Extensions.dll</HintPath>
</Reference>
<Reference Include="Sherlog">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.dll</HintPath>
</Reference>
<Reference Include="TCPeasy">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\TCPeasy\TCPeasy.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Common">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Common.0.7.6\lib\netstandard2.0\DotNetty.Common.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\TCPeasy\TCPeasy.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Threading">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Threading.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>E:\project\JNFrame2\Assets\Packages\Google.Protobuf.3.27.3\lib\netstandard2.0\Google.Protobuf.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Threading.dll</HintPath>
</Reference>
<Reference Include="Jenny">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Options">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Options.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.dll</HintPath>
</Reference>
<Reference Include="Jenny.Generator">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.Generator.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.Generator.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.IonicZip">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\Dependencies\DotNetZip\Unity.VisualScripting.IonicZip.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.DependencyInjection.5.0.0\lib\netstandard2.1\Microsoft.Extensions.DependencyInjection.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\Dependencies\DotNetZip\Unity.VisualScripting.IonicZip.dll</HintPath>
</Reference>
<Reference Include="unityplastic">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\unityplastic.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Transport">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Transport.0.7.6\lib\netstandard2.0\DotNetty.Transport.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\unityplastic.dll</HintPath>
</Reference>
<Reference Include="log4netPlastic">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\log4netPlastic.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\log4netPlastic.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>E:\project\JNFrame2\Assets\Packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Logging.5.0.0\lib\netstandard2.1\Microsoft.Extensions.Logging.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="DOTween">
<HintPath>E:\project\JNFrame2\Assets\Plugins\Demigiant\DOTween\DOTween.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Plugins\Demigiant\DOTween\DOTween.dll</HintPath>
</Reference>
<Reference Include="ReportGeneratorMerged">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.testtools.codecoverage@1.2.5\lib\ReportGenerator\ReportGeneratorMerged.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.testtools.codecoverage@1.2.5\lib\ReportGenerator\ReportGeneratorMerged.dll</HintPath>
</Reference>
<Reference Include="NugetForUnity">
<HintPath>E:\project\JNFrame2\Assets\NuGet\Editor\NugetForUnity.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\NuGet\Editor\NugetForUnity.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Reflection">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Reflection.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Reflection.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Caching">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Caching.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Caching.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Extensions">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Extensions.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Extensions.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Serialization">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Serialization.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Serialization.dll</HintPath>
</Reference>
<Reference Include="Sherlog.Appenders">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Appenders.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Appenders.dll</HintPath>
</Reference>
<Reference Include="Jenny.Plugins">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny\Jenny.Plugins.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny\Jenny.Plugins.dll</HintPath>
</Reference>
<Reference Include="Unity.Plastic.Newtonsoft.Json">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\Unity.Plastic.Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.DependencyInjection.Abstractions.5.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Primitives">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Primitives.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\Unity.Plastic.Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Unity.Editor">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\Editor\DesperateDevs.Unity.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\Editor\DesperateDevs.Unity.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Plastic.Antlr3.Runtime">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\Unity.Plastic.Antlr3.Runtime.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\Unity.Plastic.Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.YamlDotNet">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\Dependencies\YamlDotNet\Unity.VisualScripting.YamlDotNet.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Logging.Abstractions.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\Dependencies\YamlDotNet\Unity.VisualScripting.YamlDotNet.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Unity">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Unity.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Unity.dll</HintPath>
</Reference>
<Reference Include="DOTweenEditor">
<HintPath>E:\project\JNFrame2\Assets\Plugins\Demigiant\DOTween\Editor\DOTweenEditor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Plugins\Demigiant\DOTween\Editor\DOTweenEditor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.TextureAssets">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\EditorAssetResources\Unity.VisualScripting.TextureAssets.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\EditorAssetResources\Unity.VisualScripting.TextureAssets.dll</HintPath>
</Reference>
<Reference Include="Sherlog.Formatters">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Formatters.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Codecs">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Codecs.0.7.6\lib\netstandard2.0\DotNetty.Codecs.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.DiagnosticSource">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Diagnostics.DiagnosticSource.5.0.0\lib\netstandard1.3\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Buffers">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Buffers.0.7.6\lib\netstandard2.0\DotNetty.Buffers.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Formatters.dll</HintPath>
</Reference>
<Reference Include="Jenny.Plugins.Unity">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny\Jenny.Plugins.Unity.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny\Jenny.Plugins.Unity.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Antlr3.Runtime">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Runtime\VisualScripting.Flow\Dependencies\NCalc\Unity.VisualScripting.Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Handlers">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Handlers.0.7.6\lib\netstandard2.0\DotNetty.Handlers.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Runtime\VisualScripting.Flow\Dependencies\NCalc\Unity.VisualScripting.Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="Jenny.Generator.Unity.Editor">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.Generator.Unity.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.Generator.Unity.Editor.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Google.Protobuf.3.18.3\lib\netstandard2.0\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="TouchSocket.Core">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.Core.2.0.15\lib\netstandard2.1\TouchSocket.Core.dll</HintPath>
</Reference>
<Reference Include="System.Text.Encodings.Web">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Encodings.Web.6.0.0\lib\netstandard2.0\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\lib\netstandard2.0\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\netstandard2.1\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="TouchSocket">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.2.0.15\lib\netstandard2.1\TouchSocket.dll</HintPath>
</Reference>
<Reference Include="Unity.Android.Types">
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\PlaybackEngines\AndroidPlayer\Unity.Android.Types.dll</HintPath>
@ -802,11 +809,11 @@
<Reference Include="System.Xml.Serialization">
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll</HintPath>
</Reference>
<Reference Include="UnityEditor.UI">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="UnityEditor.UI">
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>

View File

@ -40,6 +40,37 @@
<ImplicitlyExpandNETStandardFacades>false</ImplicitlyExpandNETStandardFacades>
<ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
</PropertyGroup>
<ItemGroup>
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\fr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\fr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\tr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ko\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ja\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\tr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\System.Text.Json.SourceGeneration.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\zh-Hant\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ja\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\es\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ru\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\de\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\pl\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.Core.2.0.15\analyzers\dotnet\cs\TouchSocket.Core.SourceGenerator.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\System.Text.Json.SourceGeneration.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ru\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\es\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\cs\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\it\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\pl\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\de\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\zh-Hans\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\zh-Hant\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ko\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\it\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\cs\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\zh-Hans\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\pt-BR\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\pt-BR\System.Text.Json.SourceGeneration.resources.dll" />
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\JNGame\Plugins\Entitas\Editor\Entitas.VisualDebugging.Unity.Editor\src\Entity\TypeDrawer\UnityObjectTypeDrawer.cs" />
<Compile Include="Assets\JNGame\Plugins\Entitas\Editor\Entitas.VisualDebugging.Unity.Editor\src\EntitasHierarchyIcon.cs" />
@ -343,139 +374,115 @@
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\PlaybackEngines\WindowsStandaloneSupport\UnityEditor.WindowsStandalone.Extensions.dll</HintPath>
</Reference>
<Reference Include="Sherlog">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.dll</HintPath>
</Reference>
<Reference Include="TCPeasy">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\TCPeasy\TCPeasy.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Common">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Common.0.7.6\lib\netstandard2.0\DotNetty.Common.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\TCPeasy\TCPeasy.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Threading">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Threading.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>E:\project\JNFrame2\Assets\Packages\Google.Protobuf.3.27.3\lib\netstandard2.0\Google.Protobuf.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Threading.dll</HintPath>
</Reference>
<Reference Include="Jenny">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Options">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Options.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.dll</HintPath>
</Reference>
<Reference Include="Jenny.Generator">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.Generator.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.Generator.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.IonicZip">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\Dependencies\DotNetZip\Unity.VisualScripting.IonicZip.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.DependencyInjection.5.0.0\lib\netstandard2.1\Microsoft.Extensions.DependencyInjection.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\Dependencies\DotNetZip\Unity.VisualScripting.IonicZip.dll</HintPath>
</Reference>
<Reference Include="unityplastic">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\unityplastic.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Transport">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Transport.0.7.6\lib\netstandard2.0\DotNetty.Transport.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\unityplastic.dll</HintPath>
</Reference>
<Reference Include="log4netPlastic">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\log4netPlastic.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\log4netPlastic.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>E:\project\JNFrame2\Assets\Packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Logging.5.0.0\lib\netstandard2.1\Microsoft.Extensions.Logging.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="DOTween">
<HintPath>E:\project\JNFrame2\Assets\Plugins\Demigiant\DOTween\DOTween.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Plugins\Demigiant\DOTween\DOTween.dll</HintPath>
</Reference>
<Reference Include="ReportGeneratorMerged">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.testtools.codecoverage@1.2.5\lib\ReportGenerator\ReportGeneratorMerged.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.testtools.codecoverage@1.2.5\lib\ReportGenerator\ReportGeneratorMerged.dll</HintPath>
</Reference>
<Reference Include="NugetForUnity">
<HintPath>E:\project\JNFrame2\Assets\NuGet\Editor\NugetForUnity.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\NuGet\Editor\NugetForUnity.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Reflection">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Reflection.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Reflection.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Caching">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Caching.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Caching.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Extensions">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Extensions.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Extensions.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Serialization">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Serialization.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Serialization.dll</HintPath>
</Reference>
<Reference Include="Sherlog.Appenders">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Appenders.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Appenders.dll</HintPath>
</Reference>
<Reference Include="Jenny.Plugins">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny\Jenny.Plugins.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny\Jenny.Plugins.dll</HintPath>
</Reference>
<Reference Include="Unity.Plastic.Newtonsoft.Json">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\Unity.Plastic.Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.DependencyInjection.Abstractions.5.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Primitives">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Primitives.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\Unity.Plastic.Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Unity.Editor">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\Editor\DesperateDevs.Unity.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\Editor\DesperateDevs.Unity.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Plastic.Antlr3.Runtime">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\Unity.Plastic.Antlr3.Runtime.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.collab-proxy@2.2.0\Lib\Editor\PlasticSCM\Unity.Plastic.Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.YamlDotNet">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\Dependencies\YamlDotNet\Unity.VisualScripting.YamlDotNet.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Logging.Abstractions.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\Dependencies\YamlDotNet\Unity.VisualScripting.YamlDotNet.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Unity">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Unity.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Unity.dll</HintPath>
</Reference>
<Reference Include="DOTweenEditor">
<HintPath>E:\project\JNFrame2\Assets\Plugins\Demigiant\DOTween\Editor\DOTweenEditor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Plugins\Demigiant\DOTween\Editor\DOTweenEditor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.TextureAssets">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\EditorAssetResources\Unity.VisualScripting.TextureAssets.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Editor\VisualScripting.Core\EditorAssetResources\Unity.VisualScripting.TextureAssets.dll</HintPath>
</Reference>
<Reference Include="Sherlog.Formatters">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Formatters.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Codecs">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Codecs.0.7.6\lib\netstandard2.0\DotNetty.Codecs.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.DiagnosticSource">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Diagnostics.DiagnosticSource.5.0.0\lib\netstandard1.3\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Buffers">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Buffers.0.7.6\lib\netstandard2.0\DotNetty.Buffers.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Formatters.dll</HintPath>
</Reference>
<Reference Include="Jenny.Plugins.Unity">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny\Jenny.Plugins.Unity.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny\Jenny.Plugins.Unity.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Antlr3.Runtime">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Runtime\VisualScripting.Flow\Dependencies\NCalc\Unity.VisualScripting.Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Handlers">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Handlers.0.7.6\lib\netstandard2.0\DotNetty.Handlers.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Runtime\VisualScripting.Flow\Dependencies\NCalc\Unity.VisualScripting.Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="Jenny.Generator.Unity.Editor">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.Generator.Unity.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Jenny\Editor\Jenny.Generator.Unity.Editor.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Google.Protobuf.3.18.3\lib\netstandard2.0\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="TouchSocket.Core">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.Core.2.0.15\lib\netstandard2.1\TouchSocket.Core.dll</HintPath>
</Reference>
<Reference Include="System.Text.Encodings.Web">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Encodings.Web.6.0.0\lib\netstandard2.0\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\lib\netstandard2.0\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\netstandard2.1\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="TouchSocket">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.2.0.15\lib\netstandard2.1\TouchSocket.dll</HintPath>
</Reference>
<Reference Include="nunit.framework">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.ext.nunit@1.0.6\net35\unity-custom\nunit.framework.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.ext.nunit@1.0.6\net35\unity-custom\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="Unity.Android.Types">
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\PlaybackEngines\AndroidPlayer\Unity.Android.Types.dll</HintPath>
@ -859,91 +866,91 @@
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Facades\System.Xml.XPath.XDocument.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.TestRunner">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\UnityEngine.TestRunner.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.TestRunner.dll</HintPath>
</Reference>
<Reference Include="UnityEditor.TestRunner">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\UnityEditor.TestRunner.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.TestRunner.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Flow.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VSCode.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VSCode.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VSCode.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualStudio.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualStudio.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualStudio.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Performance.Profile-Analyzer.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Performance.Profile-Analyzer.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Performance.Profile-Analyzer.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TestTools.CodeCoverage.Editor.OpenCover.Model">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.dll</HintPath>
</Reference>
<Reference Include="Unity.Timeline">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Core.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.State.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.SettingsProvider.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.SettingsProvider.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.SettingsProvider.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.dll</HintPath>
</Reference>
<Reference Include="UnityEditor.UI">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll</HintPath>
</Reference>
<Reference Include="Unity.PlasticSCM.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.PlasticSCM.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.PlasticSCM.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Rider.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Rider.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Rider.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Flow">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Core">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.dll</HintPath>
</Reference>
<Reference Include="Unity.EditorCoroutines.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.EditorCoroutines.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.EditorCoroutines.Editor.dll</HintPath>
</Reference>
<Reference Include="Cinemachine">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Cinemachine.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Cinemachine.dll</HintPath>
</Reference>
<Reference Include="com.unity.cinemachine.editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\com.unity.cinemachine.editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\com.unity.cinemachine.editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Shared.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Shared.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Shared.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Timeline.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.AI.Navigation">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.dll</HintPath>
</Reference>
<Reference Include="Unity.AI.Navigation.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TestTools.CodeCoverage.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.State">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>

View File

@ -40,6 +40,37 @@
<ImplicitlyExpandNETStandardFacades>false</ImplicitlyExpandNETStandardFacades>
<ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
</PropertyGroup>
<ItemGroup>
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\fr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\fr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\tr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ko\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ja\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\tr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\System.Text.Json.SourceGeneration.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\zh-Hant\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ja\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\es\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ru\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\de\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\pl\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.Core.2.0.15\analyzers\dotnet\cs\TouchSocket.Core.SourceGenerator.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\System.Text.Json.SourceGeneration.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ru\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\es\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\cs\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\it\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\pl\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\de\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\zh-Hans\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\zh-Hant\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ko\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\it\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\cs\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\zh-Hans\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\pt-BR\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\pt-BR\System.Text.Json.SourceGeneration.resources.dll" />
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\Plugins\Demigiant\DOTween\Modules\DOTweenModulePhysics2D.cs" />
<Compile Include="Assets\Plugins\Demigiant\DOTween\Modules\DOTweenModuleUI.cs" />
@ -298,91 +329,67 @@
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\Managed\UnityEngine\UnityEditor.UnityConnectModule.dll</HintPath>
</Reference>
<Reference Include="Sherlog">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.dll</HintPath>
</Reference>
<Reference Include="TCPeasy">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\TCPeasy\TCPeasy.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Common">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Common.0.7.6\lib\netstandard2.0\DotNetty.Common.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\TCPeasy\TCPeasy.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Threading">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Threading.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>E:\project\JNFrame2\Assets\Packages\Google.Protobuf.3.27.3\lib\netstandard2.0\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Options">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Options.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.DependencyInjection.5.0.0\lib\netstandard2.1\Microsoft.Extensions.DependencyInjection.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Transport">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Transport.0.7.6\lib\netstandard2.0\DotNetty.Transport.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Threading.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>E:\project\JNFrame2\Assets\Packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Logging.5.0.0\lib\netstandard2.1\Microsoft.Extensions.Logging.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="DOTween">
<HintPath>E:\project\JNFrame2\Assets\Plugins\Demigiant\DOTween\DOTween.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Plugins\Demigiant\DOTween\DOTween.dll</HintPath>
</Reference>
<Reference Include="ReportGeneratorMerged">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.testtools.codecoverage@1.2.5\lib\ReportGenerator\ReportGeneratorMerged.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.testtools.codecoverage@1.2.5\lib\ReportGenerator\ReportGeneratorMerged.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Reflection">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Reflection.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Reflection.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Caching">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Caching.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Caching.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Extensions">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Extensions.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Extensions.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Serialization">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Serialization.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Serialization.dll</HintPath>
</Reference>
<Reference Include="Sherlog.Appenders">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Appenders.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.DependencyInjection.Abstractions.5.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Primitives">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Primitives.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Logging.Abstractions.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Appenders.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Unity">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Unity.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Unity.dll</HintPath>
</Reference>
<Reference Include="Sherlog.Formatters">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Formatters.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Codecs">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Codecs.0.7.6\lib\netstandard2.0\DotNetty.Codecs.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.DiagnosticSource">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Diagnostics.DiagnosticSource.5.0.0\lib\netstandard1.3\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Buffers">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Buffers.0.7.6\lib\netstandard2.0\DotNetty.Buffers.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Formatters.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Antlr3.Runtime">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Runtime\VisualScripting.Flow\Dependencies\NCalc\Unity.VisualScripting.Antlr3.Runtime.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Runtime\VisualScripting.Flow\Dependencies\NCalc\Unity.VisualScripting.Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Handlers">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Handlers.0.7.6\lib\netstandard2.0\DotNetty.Handlers.dll</HintPath>
<Reference Include="Google.Protobuf">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Google.Protobuf.3.18.3\lib\netstandard2.0\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="TouchSocket.Core">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.Core.2.0.15\lib\netstandard2.1\TouchSocket.Core.dll</HintPath>
</Reference>
<Reference Include="System.Text.Encodings.Web">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Encodings.Web.6.0.0\lib\netstandard2.0\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\lib\netstandard2.0\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\netstandard2.1\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="TouchSocket">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.2.0.15\lib\netstandard2.1\TouchSocket.dll</HintPath>
</Reference>
<Reference Include="Unity.Android.Types">
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\PlaybackEngines\AndroidPlayer\Unity.Android.Types.dll</HintPath>
@ -757,85 +764,85 @@
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Flow.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VSCode.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VSCode.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VSCode.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualStudio.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualStudio.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualStudio.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Performance.Profile-Analyzer.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Performance.Profile-Analyzer.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Performance.Profile-Analyzer.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TestTools.CodeCoverage.Editor.OpenCover.Model">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.dll</HintPath>
</Reference>
<Reference Include="Unity.Timeline">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Core.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.State.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.SettingsProvider.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.SettingsProvider.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.SettingsProvider.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.dll</HintPath>
</Reference>
<Reference Include="UnityEditor.UI">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll</HintPath>
</Reference>
<Reference Include="Unity.PlasticSCM.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.PlasticSCM.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.PlasticSCM.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Rider.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Rider.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Rider.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Flow">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Core">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.dll</HintPath>
</Reference>
<Reference Include="Unity.EditorCoroutines.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.EditorCoroutines.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.EditorCoroutines.Editor.dll</HintPath>
</Reference>
<Reference Include="Cinemachine">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Cinemachine.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Cinemachine.dll</HintPath>
</Reference>
<Reference Include="com.unity.cinemachine.editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\com.unity.cinemachine.editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\com.unity.cinemachine.editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Shared.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Shared.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Shared.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Timeline.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.AI.Navigation">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.dll</HintPath>
</Reference>
<Reference Include="Unity.AI.Navigation.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TestTools.CodeCoverage.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.State">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>

View File

@ -40,6 +40,37 @@
<ImplicitlyExpandNETStandardFacades>false</ImplicitlyExpandNETStandardFacades>
<ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
</PropertyGroup>
<ItemGroup>
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\fr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\fr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\tr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ko\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ja\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\tr\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\System.Text.Json.SourceGeneration.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\zh-Hant\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ja\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\es\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ru\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\de\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\pl\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.Core.2.0.15\analyzers\dotnet\cs\TouchSocket.Core.SourceGenerator.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\System.Text.Json.SourceGeneration.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\ru\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\es\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\cs\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\it\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\pl\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\de\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\zh-Hans\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\zh-Hant\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\ko\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\it\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\cs\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\zh-Hans\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn3.11\cs\pt-BR\System.Text.Json.SourceGeneration.resources.dll" />
<Analyzer Include="D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\analyzers\dotnet\roslyn4.0\cs\pt-BR\System.Text.Json.SourceGeneration.resources.dll" />
</ItemGroup>
<ItemGroup>
<Compile Include="Assets\JNGame\Util\ProtoUtil.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour\IDtQueryFilter.cs" />
@ -55,7 +86,6 @@
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\JumpLinkBuilder.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour\DtStraightPathOption.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Shared\Scripts\PlayerMovePhysics.cs" />
<Compile Include="Assets\JNGame\Network\Netty\TCP\TcpClientHandler.cs" />
<Compile Include="Assets\JNGame\Map\2DPathFinding\NavMesh\NavMesh\IConnection.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Io\DtVoxelFileReader.cs" />
<Compile Include="Assets\JNGame\Plugins\Entitas\Entitas\src\Collector\CollectorContextExtension.cs" />
@ -231,7 +261,6 @@
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour.Extras\Unity\Astar\OffMeshLinkCreator.cs" />
<Compile Include="Assets\JNGame\Plugins\Entitas\Entitas\src\Context\Exceptions\ContextStillHasRetainedEntitiesException.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\Trajectory.cs" />
<Compile Include="Assets\JNGame\Network\Netty\TCP\TcpServerInitializer.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\2D\LoseSightWhenTargetsFallsOffThePlatform.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast\RcFilters.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast\RcHeightPatch.cs" />
@ -262,8 +291,6 @@
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Core\Numerics\RcMatrix4x4f.cs" />
<Compile Include="Assets\JNGame\Plugins\Entitas\Entitas\src\Context\Exceptions\ContextInfoException.cs" />
<Compile Include="Assets\Scripts\AppGame\App.cs" />
<Compile Include="Assets\JNGame\Network\Netty\TCP\TcpEncoderHandler.cs" />
<Compile Include="Assets\JNGame\Network\JNUDPServer.cs" />
<Compile Include="Assets\JNGame\Network\Group\JNClientGroup.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour\DtNodeQueue.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Core\RcObjImporter.cs" />
@ -289,7 +316,6 @@
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast\RcRegion.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast.Toolset\RcNavMeshBuildSettings.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour.Dynamic\DtDynamicTileColliderAdditionJob.cs" />
<Compile Include="Assets\JNGame\Network\Netty\TCP\TcpDecoderHandler.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Core\Collections\RcSortedQueue.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast\RcLevelStackEntry.cs" />
<Compile Include="Assets\JNGame\Sync\System\Data\SStateDataSystem.cs" />
@ -332,7 +358,6 @@
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour.TileCache\Io\DtTileCacheWriter.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Core\Collections\RcImmutableArray.Listable.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\BossCamera\BossLookAt.cs" />
<Compile Include="Assets\JNGame\Network\Netty\TCP\TcpPacket.cs" />
<Compile Include="Assets\JNGame\Math\LUT\LUTAtan2.cs" />
<Compile Include="Assets\JNGame\Plugins\Entitas\Entitas\src\EntityIndex\EntityIndexException.cs" />
<Compile Include="Assets\JNGame\Sync\JNSyncService.cs" />
@ -460,7 +485,6 @@
<Compile Include="Assets\Scripts\AppGame\Systems\CServer\JNGClient.cs" />
<Compile Include="Assets\JNGame\EntitasExtend\JNSystemLoad.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast\RcContourHoleComparer.cs" />
<Compile Include="Assets\JNGame\Network\Netty\TCP\TcpServerHandler.cs" />
<Compile Include="Assets\Scripts\AppGame\Systems\JNGSocket.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast.Toolset\Gizmos\RcCompositeGizmo.cs" />
<Compile Include="Assets\JNGame\Plugins\Entitas\Entitas\src\Entity\UnsafeAERC.cs" />
@ -490,7 +514,6 @@
<Compile Include="Assets\Scripts\Game\Input\IDWorld.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour.TileCache\DtObstacleState.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast\Geom\BoundsItemXComparer.cs" />
<Compile Include="Assets\JNGame\Network\Netty\TCP\TcpClientInitializer.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast\RcBuilderConfig.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour.Dynamic\Colliders\DtSphereCollider.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast.Toolset\Tools\RcCrowdAgentProfilingTool.cs" />
@ -623,7 +646,6 @@
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour.Crowd\DtCrowd.cs" />
<Compile Include="Assets\JNGame\Sync\App\State\JNSStateServerService.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Detour.Extras\Jumplink\AbstractGroundSampler.cs" />
<Compile Include="Assets\JNGame\Network\Netty\HeartBeatHandler.cs" />
<Compile Include="Assets\JNGame\Sync\System\Logic\JNInputSystem.cs" />
<Compile Include="Assets\JNGame\Plugins\Entitas\Entitas\src\Entity\SafeAERC.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Core\RcFrequency.cs" />
@ -657,7 +679,6 @@
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Recast\RcConfig.cs" />
<Compile Include="Assets\JNGame\Math\BaseType\LFloat.cs" />
<Compile Include="Assets\Scripts\Game\Logic\Entity\Nodes\EDPlayer.cs" />
<Compile Include="Assets\JNGame\Network\JNUDPClient.cs" />
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Core\Collections\RcStackArray128.cs" />
<Compile Include="Assets\JNGame\Math\BaseType\LVector3.cs" />
<Compile Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Shared\Scripts\ActivateCameraWithDistance.cs" />
@ -666,45 +687,25 @@
<Compile Include="Assets\JNGame\Map\DotRecast\Src\DotRecast.Core\IRcRand.cs" />
<Compile Include="Assets\JNGame\Math\BaseType\LVector2.cs" />
<Compile Include="Assets\JNGame\Plugins\Entitas\Entitas\src\Context\Context.cs" />
<None Include="Assets\Packages\Microsoft.Extensions.Primitives.5.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\Google.Protobuf.3.27.3\lib\netstandard2.0\Google.Protobuf.xml" />
<None Include="Assets\Packages\System.Diagnostics.DiagnosticSource.5.0.0\version.txt" />
<None Include="Assets\Packages\DotNetty.Buffers.0.7.6\lib\netstandard2.0\DotNetty.Buffers.xml" />
<None Include="Assets\Packages\System.Diagnostics.DiagnosticSource.5.0.0\lib\netstandard1.3\System.Diagnostics.DiagnosticSource.xml" />
<None Include="Assets\Packages\TouchSocket.2.0.15\LICENSE.txt" />
<None Include="Assets\Packages\Google.Protobuf.3.18.3\lib\netstandard2.0\Google.Protobuf.xml" />
<None Include="Assets\Packages\System.Text.Encodings.Web.6.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Resources\map1.json" />
<None Include="Assets\Packages\Microsoft.Extensions.Logging.5.0.0\version.txt" />
<None Include="Assets\Packages\System.Runtime.CompilerServices.Unsafe.5.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\System.Text.Encodings.Web.6.0.0\lib\netstandard2.0\System.Text.Encodings.Web.xml" />
<None Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\FadeOutNearbyObjects\FadeOut.shader" />
<None Include="Assets\Packages\Microsoft.Extensions.Options.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Options.xml" />
<None Include="Assets\Packages\Microsoft.Extensions.Logging.Abstractions.5.0.0\version.txt" />
<None Include="Assets\Resources\Battle\Map\NavMesh\Map_1001.navmesh.json" />
<None Include="Assets\Packages\Microsoft.Extensions.Logging.Abstractions.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.xml" />
<None Include="Assets\Packages\Microsoft.Extensions.DependencyInjection.5.0.0\lib\netstandard2.1\Microsoft.Extensions.DependencyInjection.xml" />
<None Include="Assets\Packages\Microsoft.Extensions.Options.5.0.0\version.txt" />
<None Include="Assets\Packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.xml" />
<None Include="Assets\JNGame\Plugins\Entitas\Entitas\src\version.txt" />
<None Include="Assets\Packages\DotNetty.Codecs.0.7.6\lib\netstandard2.0\DotNetty.Codecs.xml" />
<None Include="Assets\Packages\Microsoft.Extensions.Options.5.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\Microsoft.Extensions.Primitives.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.xml" />
<None Include="Assets\Packages\Microsoft.Extensions.Logging.5.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\System.Runtime.CompilerServices.Unsafe.5.0.0\version.txt" />
<None Include="Assets\Packages\Microsoft.Extensions.Logging.Abstractions.5.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\Microsoft.Extensions.Logging.5.0.0\lib\netstandard2.1\Microsoft.Extensions.Logging.xml" />
<None Include="Assets\Packages\DotNetty.Transport.0.7.6\lib\netstandard2.0\DotNetty.Transport.xml" />
<None Include="Assets\Packages\DotNetty.Handlers.0.7.6\lib\netstandard2.0\DotNetty.Handlers.xml" />
<None Include="Assets\Packages\Microsoft.Extensions.Primitives.5.0.0\version.txt" />
<None Include="Assets\Packages\System.Text.Json.6.0.0\lib\netstandard2.0\System.Text.Json.xml" />
<None Include="Assets\Packages\TouchSocket.Core.2.0.15\lib\netstandard2.1\TouchSocket.Core.xml" />
<None Include="Assets\Samples\Cinemachine\2.10.1\Cinemachine Example Scenes\Scenes\Anywhere Door\ScreenCutoutShader.shader" />
<None Include="Assets\Packages\TouchSocket.2.0.15\lib\netstandard2.1\TouchSocket.xml" />
<None Include="Assets\Packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.xml" />
<None Include="Assets\Packages\Microsoft.Extensions.DependencyInjection.Abstractions.5.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.xml" />
<None Include="Assets\Packages\Microsoft.Extensions.DependencyInjection.Abstractions.5.0.0\version.txt" />
<None Include="Assets\Packages\Microsoft.Extensions.DependencyInjection.5.0.0\version.txt" />
<None Include="Assets\Packages\System.Collections.Immutable.1.5.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.xml" />
<None Include="Assets\Packages\System.Diagnostics.DiagnosticSource.5.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\System.Collections.Immutable.1.5.0\version.txt" />
<None Include="Assets\Packages\Microsoft.Extensions.DependencyInjection.Abstractions.5.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.xml" />
<None Include="Assets\Packages\Microsoft.Extensions.DependencyInjection.5.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\DotNetty.Common.0.7.6\lib\netstandard2.0\DotNetty.Common.xml" />
<None Include="Assets\Packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\netstandard2.1\Microsoft.Bcl.AsyncInterfaces.xml" />
<None Include="Assets\Packages\System.Text.Json.6.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\TouchSocket.Core.2.0.15\LICENSE.txt" />
<None Include="Assets\Packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\useSharedDesignerContext.txt" />
<None Include="Assets\Packages\System.Runtime.CompilerServices.Unsafe.6.0.0\useSharedDesignerContext.txt" />
<Reference Include="UnityEngine">
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\Managed\UnityEngine\UnityEngine.dll</HintPath>
</Reference>
@ -952,91 +953,67 @@
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\Managed\UnityEngine\UnityEditor.UnityConnectModule.dll</HintPath>
</Reference>
<Reference Include="Sherlog">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.dll</HintPath>
</Reference>
<Reference Include="TCPeasy">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\TCPeasy\TCPeasy.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Common">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Common.0.7.6\lib\netstandard2.0\DotNetty.Common.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\TCPeasy\TCPeasy.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Threading">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Threading.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf">
<HintPath>E:\project\JNFrame2\Assets\Packages\Google.Protobuf.3.27.3\lib\netstandard2.0\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Options">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Options.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.DependencyInjection.5.0.0\lib\netstandard2.1\Microsoft.Extensions.DependencyInjection.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Transport">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Transport.0.7.6\lib\netstandard2.0\DotNetty.Transport.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Threading.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>E:\project\JNFrame2\Assets\Packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Logging.5.0.0\lib\netstandard2.1\Microsoft.Extensions.Logging.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Newtonsoft.Json.13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="DOTween">
<HintPath>E:\project\JNFrame2\Assets\Plugins\Demigiant\DOTween\DOTween.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Plugins\Demigiant\DOTween\DOTween.dll</HintPath>
</Reference>
<Reference Include="ReportGeneratorMerged">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.testtools.codecoverage@1.2.5\lib\ReportGenerator\ReportGeneratorMerged.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.testtools.codecoverage@1.2.5\lib\ReportGenerator\ReportGeneratorMerged.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Reflection">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Reflection.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Reflection.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Caching">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Caching.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Caching.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Extensions">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Extensions.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Extensions.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Serialization">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Serialization.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Serialization.dll</HintPath>
</Reference>
<Reference Include="Sherlog.Appenders">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Appenders.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Runtime.CompilerServices.Unsafe.5.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.DependencyInjection.Abstractions.5.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Primitives">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Primitives.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions">
<HintPath>E:\project\JNFrame2\Assets\Packages\Microsoft.Extensions.Logging.Abstractions.5.0.0\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Appenders.dll</HintPath>
</Reference>
<Reference Include="DesperateDevs.Unity">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Unity.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\DesperateDevs\DesperateDevs.Unity.dll</HintPath>
</Reference>
<Reference Include="Sherlog.Formatters">
<HintPath>E:\project\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Formatters.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Codecs">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Codecs.0.7.6\lib\netstandard2.0\DotNetty.Codecs.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.DiagnosticSource">
<HintPath>E:\project\JNFrame2\Assets\Packages\System.Diagnostics.DiagnosticSource.5.0.0\lib\netstandard1.3\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Buffers">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Buffers.0.7.6\lib\netstandard2.0\DotNetty.Buffers.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\JNGame\Plugins\Sherlog\Sherlog.Formatters.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Antlr3.Runtime">
<HintPath>E:\project\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Runtime\VisualScripting.Flow\Dependencies\NCalc\Unity.VisualScripting.Antlr3.Runtime.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\PackageCache\com.unity.visualscripting@1.9.1\Runtime\VisualScripting.Flow\Dependencies\NCalc\Unity.VisualScripting.Antlr3.Runtime.dll</HintPath>
</Reference>
<Reference Include="DotNetty.Handlers">
<HintPath>E:\project\JNFrame2\Assets\Packages\DotNetty.Handlers.0.7.6\lib\netstandard2.0\DotNetty.Handlers.dll</HintPath>
<Reference Include="Google.Protobuf">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Google.Protobuf.3.18.3\lib\netstandard2.0\Google.Protobuf.dll</HintPath>
</Reference>
<Reference Include="TouchSocket.Core">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.Core.2.0.15\lib\netstandard2.1\TouchSocket.Core.dll</HintPath>
</Reference>
<Reference Include="System.Text.Encodings.Web">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Encodings.Web.6.0.0\lib\netstandard2.0\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Text.Json.6.0.0\lib\netstandard2.0\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\netstandard2.1\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="TouchSocket">
<HintPath>D:\myproject\JisolGame\JNFrame2\Assets\Packages\TouchSocket.2.0.15\lib\netstandard2.1\TouchSocket.dll</HintPath>
</Reference>
<Reference Include="Unity.Android.Types">
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\PlaybackEngines\AndroidPlayer\Unity.Android.Types.dll</HintPath>
@ -1411,85 +1388,85 @@
<HintPath>D:\Unity\2021.3.35f1\Editor\Data\NetStandard\compat\2.1.0\shims\netfx\System.Xml.Serialization.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Flow.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VSCode.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VSCode.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VSCode.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualStudio.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualStudio.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualStudio.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Performance.Profile-Analyzer.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Performance.Profile-Analyzer.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Performance.Profile-Analyzer.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TestTools.CodeCoverage.Editor.OpenCover.Model">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.dll</HintPath>
</Reference>
<Reference Include="Unity.Timeline">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Core.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TextMeshPro">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TextMeshPro.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.State.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.SettingsProvider.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.SettingsProvider.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.SettingsProvider.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.dll</HintPath>
</Reference>
<Reference Include="UnityEditor.UI">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEditor.UI.dll</HintPath>
</Reference>
<Reference Include="Unity.PlasticSCM.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.PlasticSCM.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.PlasticSCM.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Rider.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Rider.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Rider.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Flow">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Flow.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Core">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Core.dll</HintPath>
</Reference>
<Reference Include="Unity.EditorCoroutines.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.EditorCoroutines.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.EditorCoroutines.Editor.dll</HintPath>
</Reference>
<Reference Include="Cinemachine">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Cinemachine.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Cinemachine.dll</HintPath>
</Reference>
<Reference Include="com.unity.cinemachine.editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\com.unity.cinemachine.editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\com.unity.cinemachine.editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.Shared.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Shared.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.Shared.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.Timeline.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.Timeline.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.AI.Navigation">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.dll</HintPath>
</Reference>
<Reference Include="Unity.AI.Navigation.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.AI.Navigation.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.TestTools.CodeCoverage.Editor">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.TestTools.CodeCoverage.Editor.dll</HintPath>
</Reference>
<Reference Include="Unity.VisualScripting.State">
<HintPath>E:\project\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.dll</HintPath>
<HintPath>D:\myproject\JisolGame\JNFrame2\Library\ScriptAssemblies\Unity.VisualScripting.State.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>

View File

@ -1,4 +1,5 @@
using Google.Protobuf;
using System;
using Google.Protobuf;
namespace Plugins.JNGame.Network.Entity
{
@ -27,6 +28,7 @@ namespace Plugins.JNGame.Network.Entity
{
_hId = hId;
_id = id;
_bytes = Array.Empty<byte>();
}
//构造器

View File

@ -59,8 +59,6 @@ namespace Plugins.JNGame.Network
}
public virtual void SendBytes(byte[] data){ }
public abstract Task StartConnect();
//获取字节大小
public int GetByteSize(int hId = 0)

View File

@ -15,7 +15,7 @@ namespace Plugins.JNGame.Network
public class JNServerParam
{
public int Client;
public string Client;
public byte[] Message;

View File

@ -26,7 +26,7 @@ namespace Plugins.JNGame.Network
await StartConnect();
}
public override async Task StartConnect()
public async Task StartConnect()
{
var url = $"{await this.GetUrl()}";

View File

@ -2,96 +2,122 @@
using System.Net;
using System.Threading.Tasks;
using Cysharp.Threading.Tasks;
using DotNetty.Transport.Bootstrapping;
using DotNetty.Transport.Channels;
using DotNetty.Transport.Channels.Sockets;
using Google.Protobuf;
using Plugins.JNGame.Network;
using Plugins.JNGame.Network.Action;
using Plugins.JNGame.Network.Entity;
using TestNetty.Client.Initializers;
using Plugins.JNGame.Network.Util;
using TouchSocket.Core;
using TouchSocket.Sockets;
using UnityEngine;
using NotImplementedException = System.NotImplementedException;
namespace Plugins.JNGame.Network
namespace JNGame.Network
{
public class JNTCPClient : JNClientBase
{
private IChannel clientChannel;
private IEventLoopGroup group;
private Bootstrap bootstrap;
public bool IsOpen => clientChannel is not null && clientChannel.Open;
private TcpClient tcpClient;
public bool IsOpen => tcpClient is not null && tcpClient.Online;
public override async Task OnInit()
{
tcpClient = new TcpClient();
await tcpClient.SetupAsync(
new TouchSocketConfig()
.ConfigurePlugins(a =>
{
a.UseReconnection(-1, true, 1000); //如需永远尝试连接tryCount设置为-1即可。
})
.SetTcpDataHandlingAdapter(() => new FixedHeaderPackageAdapter())
);
tcpClient.Connecting = OnConnecting;
tcpClient.Connected = OnConnected;//成功连接到服务器
tcpClient.Disconnected = OnDisconnected;//从服务器断开连接,当连接不成功时不会触发。
tcpClient.Received = OnReceived;
await base.OnInit();
await StartConnect();
tcpClient.Connect(await GetEndPoint());
}
public override async Task StartConnect()
/// <summary>
///
/// </summary>
/// <param name="client"></param>
/// <param name="e"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
private Task OnConnecting(ITcpClient client, ConnectingEventArgs e)
{
if (!isStart) return;
await CloseNetty();
group = new MultithreadEventLoopGroup();
bootstrap = new Bootstrap();
bootstrap
.Group(group)
.Channel<TcpSocketChannel>()
.Option(ChannelOption.TcpNodelay, true)
.Handler(new TcpClientInitializer(this));
try
{
if (bootstrap is not null)
{
Debug.Log($"[JNTCPClient] 开始连接");
clientChannel = await bootstrap.ConnectAsync( await GetEndPoint() );
Debug.Log($"[JNTCPClient] 连接成功");
}
}
catch (Exception e)
{
Debug.LogWarning(e.Message);
Debug.Log($"[JNTCPClient] 连接失败 1s后重试");
await UniTask.DelayFrame(1000);
await StartConnect();
}
Debug.Log($"[JNTCPClient] 开始连接服务器");
return Task.CompletedTask;
}
protected virtual async UniTask<IPEndPoint> GetEndPoint()
/// <summary>
/// 成功连接到服务器
/// </summary>
/// <param name="client"></param>
/// <param name="e"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
private Task OnConnected(ITcpClient client, ConnectedEventArgs e)
{
await UniTask.NextFrame();
return new IPEndPoint(IPAddress.Parse("127.0.0.1"),9001);
Debug.Log($"[JNTCPClient] 服务器连接成功");
Dispatch(new JNetParam(_id++,(int)NActionEnum.ClientConnect));
return Task.CompletedTask;
}
/// <summary>
/// 从服务器断开连接,当连接不成功时不会触发。
/// </summary>
/// <param name="client"></param>
/// <param name="e"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
private Task OnDisconnected(ITcpClientBase client, DisconnectEventArgs e)
{
Debug.Log($"[JNTCPClient] 服务器断开");
Dispatch(new JNetParam(_id++,(int)NActionEnum.ClientDisconnect));
return Task.CompletedTask;
}
/// <summary>
/// 接收到消息
/// </summary>
/// <param name="client"></param>
/// <param name="e"></param>
/// <returns></returns>
private Task OnReceived(TcpClient client, ReceivedDataEventArgs e)
{
byte[] data = new byte[e.ByteBlock.Len];
Array.Copy(e.ByteBlock.Buffer,data, data.Length);
var param = NDataUtil.Parse(data);
Dispatch(param);
return Task.CompletedTask;
}
public override void SendBytes(byte[] data)
{
if (IsOpen)
{
tcpClient.Send(data);
}
}
public override void OnClose()
{
base.OnClose();
CloseNetty();
tcpClient.Close();
}
private async Task CloseNetty()
protected virtual async UniTask<string> GetEndPoint()
{
clientChannel?.CloseAsync();
if (group is not null) await group.ShutdownGracefullyAsync();
group = null;
clientChannel = null;
bootstrap = null;
}
public override void Send(int hId, IMessage data = null)
{
base.Send(hId, data);
if (IsOpen)
{
// clientChannel?.WriteAndFlushAsync(JNetParam.Build(this._id++, hId).SetData(data));
}
await UniTask.NextFrame();
return "127.0.0.1:9001";
}
}
}

View File

@ -1,70 +1,118 @@
using System;

using System;
using System.Net;
using System.Net.Sockets;
using System.Threading.Tasks;
using Cysharp.Threading.Tasks;
using DotNetty.Buffers;
using DotNetty.Transport.Bootstrapping;
using DotNetty.Transport.Channels;
using DotNetty.Transport.Channels.Sockets;
using DotRecast.Core.Collections;
using Google.Protobuf;
using JNGame.Network.Netty.TCP;
using Plugins.JNGame.Network;
using Plugins.JNGame.Network.Action;
using Plugins.JNGame.Network.Entity;
using Plugins.JNGame.Network.Util;
using TouchSocket.Core;
using TouchSocket.Sockets;
using UnityEngine;
namespace JNGame.Network
{
public class JNTCPServer : JNServerBase
{
private TcpService service;
private int _port = 0;
private int _port;
public int Port => _port;
private ServerBootstrap bootstrap;
private IEventLoopGroup bossGroup;
private IEventLoopGroup workerGroup;
private IChannel channel;
private TcpServerInitializer server;
public override async Task OnInit()
{
bossGroup = new MultithreadEventLoopGroup(1);
workerGroup = new MultithreadEventLoopGroup(4);
bootstrap = new ServerBootstrap();
bootstrap.Group(bossGroup, workerGroup);
bootstrap.Channel<TcpServerSocketChannel>();
bootstrap
.Option(ChannelOption.SoBacklog, 1024)
//ByteBuf的分配器(重用缓冲区)大小
.Option(ChannelOption.Allocator, UnpooledByteBufferAllocator.Default)
.Option(ChannelOption.RcvbufAllocator, new FixedRecvByteBufAllocator(1024 * 8))
.ChildOption(ChannelOption.SoKeepalive, true) //保持长连接
.ChildOption(ChannelOption.TcpNodelay, true) //端口复用
.ChildOption(ChannelOption.SoReuseport, true)
//自定义初始化Tcp服务
.ChildHandler(server = new TcpServerInitializer(this));
await StartBind();
service = new TcpService();
await service.SetupAsync(
new TouchSocketConfig()
.SetTcpDataHandlingAdapter(() => new FixedHeaderPackageAdapter())
);
service.Connecting = OnConnecting;//有客户端正在连接
service.Connected = OnConnected;//有客户端连接
service.Disconnected = OnDisconnected;//有客户端断开连接
service.Received = OnReceived;//客户端接收到消息
await service.StartAsync(_port = await GetPort());//启动
}
protected async Task StartBind()
/// <summary>
/// 有客户端正在连接
/// </summary>
/// <param name="client"></param>
/// <param name="e"></param>
private Task OnConnecting(SocketClient client, ConnectingEventArgs e)
{
try
Debug.Log($"[JNTCPServer] 有客户端正在连接");
return Task.CompletedTask;
}
/// <summary>
/// 有客户端连接
/// </summary>
/// <param name="client"></param>
/// <param name="e"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
private Task OnConnected(SocketClient client, ConnectedEventArgs e)
{
Debug.Log($"[JNTCPServer] 有客户端连接成功");
Dispatch((int)NActionEnum.ClientConnect,new JNServerParam()
{
channel = await bootstrap.BindAsync(_port = await GetPort());
Debug.Log($"[JNTCPServer] 服务器创建成功");
}
catch (Exception e)
{
Debug.LogWarning(e.Message);
Debug.Log($"[JNTCPServer] 服务器创建失败 1s后重试");
await UniTask.DelayFrame(1000);
await StartBind();
}
Client = client.Id
});
return Task.CompletedTask;
}
/// <summary>
/// 有客户端断开连接
/// </summary>
/// <param name="client"></param>
/// <param name="e"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
private Task OnDisconnected(SocketClient client, DisconnectEventArgs e)
{
Debug.Log($"[JNTCPServer] 有客户端断开连接");
Dispatch((int)NActionEnum.ClientDisconnect,new JNServerParam()
{
Client = client.Id
});
return Task.CompletedTask;
}
/// <summary>
/// 客户端接收到消息
/// </summary>
/// <param name="client"></param>
/// <param name="e"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
private async Task OnReceived(SocketClient client, ReceivedDataEventArgs e)
{
byte[] data = new byte[e.ByteBlock.Len];
Array.Copy(e.ByteBlock.Buffer,data, data.Length);
var param = NDataUtil.Parse(data);
Dispatch(param.HId,new JNServerParam()
{
Client = client.Id,
Message = param.Bytes,
});
await UniTask.NextFrame();
}
public override void OnClose()
{
base.OnClose();
service.Stop();
}
protected virtual async UniTask<int> GetPort()
@ -72,34 +120,22 @@ namespace JNGame.Network
await UniTask.NextFrame();
return 9001;
}
public override void OnClose()
public void Send(SocketClient client,int hId,IMessage data = null)
{
base.OnClose();
CloseNetty();
Debug.Log($"[JNTCPServer] 关闭连接");
}
private async Task CloseNetty()
{
channel?.CloseAsync();
bossGroup?.ShutdownGracefullyAsync();
workerGroup?.ShutdownGracefullyAsync();
channel = null;
bossGroup = null;
workerGroup = null;
var bytes = NDataUtil.Encrypt(JNetParam.Build(this._id++, hId).SetData(data));
_byteSize[hId] = bytes.Length;
service.SendAsync(client.Id, bytes);
}
public void AllSend(int hId,IMessage data = null)
{
server.GetClients().ForEach(id => Send(id,hId,data));
service.GetClients().ForEach(client =>
{
Send(client,hId,data);
});
}
public void Send(int client,int hId,IMessage data = null)
{
IChannelHandlerContext context = server.GetClient(client);
context.WriteAsync(JNetParam.Build(this._id++, hId).SetData(data));
}
}
}

View File

@ -1,107 +0,0 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Threading.Tasks;
using Cysharp.Threading.Tasks;
using JNGame.Util;
using Plugins.JNGame.Network.Util;
using UnityEngine;
using NotImplementedException = System.NotImplementedException;
namespace Plugins.JNGame.Network
{
public abstract class JNTCPClient1 : JNClientBase
{
/// <summary>
/// 客户端
/// </summary>
/// <returns></returns>
private Socket client;
/// <summary>
/// 客户端线程
/// </summary>
/// <returns></returns>
private Thread thread;
/// <summary>
/// 是否连接
/// </summary>
public bool isConnect { get; private set; }
private Queue<byte[]> cache = new ();
public override async Task OnInit()
{
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.Connect(await GetEndPoint());
thread = new Thread(CreatConnectSocket);
thread.Start();
}
public override void OnClose()
{
Debug.Log($"[JNTCPClient] 关闭客户端");
base.OnClose();
client?.Close();
thread?.Abort();
}
protected virtual async UniTask<IPEndPoint> GetEndPoint()
{
await UniTask.NextFrame();
return new IPEndPoint(IPAddress.Parse("127.0.0.1"),9001);
}
private void CreatConnectSocket()
{
Debug.Log($"[JNTCPClient] 连接服务器成功");
isConnect = true;
PushCache();
byte[] bytes = new byte[102400];
try
{
while (true)
{
var max = client.Receive(bytes);
var message = new byte[max];
Array.Copy(bytes, message, max);
var param = NDataUtil.Parse(message);
Dispatch(param);
}
}
catch (Exception e)
{
// ignored
Debug.LogWarning(e.Message);
Debug.Log($"[JNTCPClient] 断开连接");
isConnect = false;
client.Close();
}
}
public override void SendBytes(byte[] data)
{
if (data is null || data.Length <= 0) return;
cache.Enqueue(data);
if (isConnect)
{
PushCache();
}
}
/// <summary>
/// 发送缓存
/// </summary>
public void PushCache()
{
while (isConnect && cache.TryDequeue(out var bytes))
{
NetTool.SendAsync(client,bytes);
}
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 9cd63835ebd243888fb11eb3fb168a92
timeCreated: 1723799588

View File

@ -1,172 +0,0 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Threading.Tasks;
using Cysharp.Threading.Tasks;
using DotRecast.Core.Collections;
using Google.Protobuf;
using JNGame.Util.Types;
using Plugins.JNGame.Network.Action;
using Plugins.JNGame.Network.Entity;
using Plugins.JNGame.Network.Util;
using Plugins.JNGame.System;
using UnityEngine;
namespace Plugins.JNGame.Network
{
public abstract class JNTCPServer1 : JNServerBase
{
// /// <summary>
// /// 服务器
// /// </summary>
// /// <returns></returns>
// private TcpListener server;
//
// /// <summary>
// /// 服务器线程
// /// </summary>
// /// <returns></returns>
// private Thread thread;
// /// <summary>
// /// 客户端线程
// /// </summary>
// /// <returns></returns>
// private Dictionary<string,Socket> threads = new();
//
// private int _clientIndex = 0;
//
// /// <summary>
// /// 连接的客户端
// /// </summary>
// KeyValue<int,Socket> clients = new ();
//
// private int _port = 0;
// public int Port => _port;
//
//
// public override async Task OnInit()
// {
// await CreateServer();
// }
//
// /// <summary>
// /// 关闭服务器
// /// </summary>
// public override void OnClose()
// {
// Debug.Log($"[JNUDPServer] 关闭服务器");
// base.OnClose();
// server?.Stop();
// thread?.Abort();
// threads.ForEach(child => child.Value.Close());
// }
//
// /// <summary>
// /// 创建服务器
// /// </summary>
// private async UniTask CreateServer()
// {
//
// server = new TcpListener(IPAddress.Any,_port = await GetPort());
// server.Start();
// thread = new Thread(CreatConnectSocket);
// thread.Start();
//
// }
//
// protected virtual async UniTask<int> GetPort()
// {
// await UniTask.NextFrame();
// return 9001;
// }
//
//
// /// <summary>
// /// 接受监听后保存生成的通信客户端,并开启线程监听通信客户端消息
// /// </summary>
// void CreatConnectSocket()
// {
// Debug.Log($"[JNTCPServer] 创建服务器成功");
// while (true)
// {
// _clientIndex += 1;
// Socket socket = server.AcceptSocket();
// clients.Add(_clientIndex,socket);
// Thread thread1 = new Thread(() => { ListenConnectSocket(socket); });
// thread1.Start();
// }
// }
//
// /// <summary>
// /// 接受通信客户端消息并对消息进行处理
// /// </summary>
// /// <param name="socket"></param>
// void ListenConnectSocket(Socket socket)
// {
// Debug.Log($"[JNTCPServer] 客户端连接");
// //客户端连接
// _event.Dispatch($"{(int)NActionEnum.ClientConnect}",new JNServerParam()
// {
// Client = socket,
// Message = Array.Empty<byte>()
// });
// byte[] bytes = new byte[102400];
// try
// {
// while (true)
// {
// var max = socket.Receive(bytes);
// var message = new byte[max];
// if (max >= 102400)
// {
// throw new Exception($"[JNTCPServer] 超出最大接收{max}");
// }
// Array.Copy(bytes,message,max);
// var param = NDataUtil.Parse(message);
// _byteSize[param.HId] = param.Bytes.Length;
// _event.Dispatch($"{param.HId}",new JNServerParam()
// {
// Client = socket,
// Message = param.Bytes
// });
// }
// }
// catch (Exception e)
// {
// Debug.LogWarning(e.Message);
// Debug.Log($"[JNTCPServer] 断开客户端连接");
// //客户端断开
// _event.Dispatch($"{(int)NActionEnum.ClientDisconnect}",new JNServerParam()
// {
// Client = socket,
// Message = Array.Empty<byte>()
// });
// socket.Close();
// clients.RemoveByValue(socket);
// }
// }
//
// public void Send(Socket client,int hId,IMessage data = null)
// {
// var bytes = NDataUtil.Encrypt(JNetParam.Build(this._id++, hId).SetData(data));
// _byteSize[hId] = bytes.Length;
// client.SendAsync(bytes,SocketFlags.None);
// }
//
// public void AllSend(int hId,IMessage data = null)
// {
// clients.Values.ForEach(child =>
// {
// Send(child.Value, hId, data);
// });
// }
//
public override Task OnInit()
{
throw new NotImplementedException();
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: c0133b6e17024e67a3e0c86689c7ba9b
timeCreated: 1723725100

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 5da486bbb35a4830bbf04c02e4d64dae
timeCreated: 1723773802

View File

@ -1,34 +0,0 @@
using System;
using DotNetty.Handlers.Timeout;
using DotNetty.Transport.Channels;
namespace JNGame.Network.Netty
{
/// <summary>
/// Heartbeat Handler Class.
/// </summary>
public class HeartBeatHandler : ChannelHandlerAdapter
{
/// <summary>
/// Heart Beat Handler.
/// </summary>
/// <param name="context"></param>
/// <param name="evt"></param>
public override void UserEventTriggered(IChannelHandlerContext context, object evt)
{
var eventState = evt as IdleStateEvent;
if (eventState != null)
{
if (eventState.State == IdleState.ReaderIdle)
{
context.Channel.Flush();
context.Channel.CloseAsync();
}
}
else
{
base.UserEventTriggered(context, evt);
}
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 428846a1397f4426b81f1b79876325ef
timeCreated: 1723775429

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: b093de57a09748848035e479d1248ea4
timeCreated: 1723773808

View File

@ -1,111 +0,0 @@
using System;
using DotNetty.Buffers;
using DotNetty.Transport.Channels;
using JNGame.Util.Types;
using Plugins.JNGame.Network;
using Plugins.JNGame.Network.Action;
using Plugins.JNGame.Network.Entity;
using UnityEngine;
namespace JNGame.Network.Netty.TCP
{
public class TcpClientHandler : ChannelHandlerAdapter
{
private JNClientBase root;
public TcpClientHandler(JNClientBase client)
{
root = client;
}
/// <summary>
/// 逻辑处理器被添加
/// </summary>
/// <param name="context"></param>
public override void HandlerAdded(IChannelHandlerContext context)
{
base.HandlerAdded(context);
}
/// <summary>
/// 绑定到线程
/// </summary>
/// <param name="context"></param>
public override void ChannelRegistered(IChannelHandlerContext context)
{
base.ChannelRegistered(context);
}
/// <summary>
/// 准备就绪
/// </summary>
/// <param name="context"></param>
public override void ChannelActive(IChannelHandlerContext context)
{
base.ChannelActive(context);
Debug.Log($"[TcpClientHandler] 连接成功: {context.Channel.RemoteAddress}");
}
/// <summary>
/// 有数据可读
/// </summary>
/// <param name="context"></param>
/// <param name="message"></param>
public override void ChannelRead(IChannelHandlerContext context, object message)
{
base.ChannelRead(context, message);
if (message is not JNetParam data) return;
root.Dispatch(data);
}
/// <summary>
/// 某次数据读完
/// </summary>
/// <param name="context"></param>
public override void ChannelReadComplete(IChannelHandlerContext context)
{
base.ChannelReadComplete(context);
}
/// <summary>
/// 被关闭
/// </summary>
/// <param name="context"></param>
public override void ChannelInactive(IChannelHandlerContext context)
{
base.ChannelInactive(context);
}
/// <summary>
/// 取消线程(NioEventLoop) 的绑定
/// </summary>
/// <param name="context"></param>
public override void ChannelUnregistered(IChannelHandlerContext context)
{
base.ChannelUnregistered(context);
context.Channel.EventLoop.Schedule(() =>
{
Debug.Log($"重连接: {context.Channel.RemoteAddress}");
root.StartConnect();
}, new TimeSpan(1000));
}
/// <summary>
/// 逻辑处理器被移除
/// </summary>
/// <param name="context"></param>
public override void HandlerRemoved(IChannelHandlerContext context)
{
base.HandlerRemoved(context);
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 8a6cf562019b4e4eaf5fae1b4bb2b19f
timeCreated: 1723799944

View File

@ -1,34 +0,0 @@
using DotNetty.Handlers.Logging;
using DotNetty.Handlers.Timeout;
using DotNetty.Transport.Channels;
using DotNetty.Transport.Channels.Sockets;
using JNGame.Network.Netty;
using JNGame.Network.Netty.TCP;
using Plugins.JNGame.Network;
using TestNetty.Service.Handlers;
namespace TestNetty.Client.Initializers
{
public class TcpClientInitializer : ChannelInitializer<ISocketChannel>
{
private JNClientBase root;
private TcpClientHandler handler;
public TcpClientInitializer(JNClientBase server)
{
root = server;
handler = new TcpClientHandler(root);
}
protected override void InitChannel(ISocketChannel channel)
{
IChannelPipeline pipeline = channel.Pipeline;
pipeline.AddLast(new IdleStateHandler(30, 30, 60 * 5));
pipeline.AddLast(new HeartBeatHandler());
pipeline.AddLast("encoder", new TcpEncoderHandler());
pipeline.AddLast("decoder", new TcpDecoderHandler());
pipeline.AddLast(handler);
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 96db8fb3f65d44b798bc06f95a8246bb
timeCreated: 1723799785

View File

@ -1,36 +0,0 @@
using DotNetty.Buffers;
using DotNetty.Codecs;
using DotNetty.Transport.Channels;
using System.Collections.Generic;
using Plugins.JNGame.Network.Util;
namespace TestNetty.Service.Handlers
{
/// <summary>
/// Decoder Packet
/// </summary>
public class TcpDecoderHandler : ByteToMessageDecoder
{
//准备读取的消息长度
private int? length;
protected override void Decode(IChannelHandlerContext context, IByteBuffer input, List<object> output)
{
if (length is null && input.ReadableBytes >= 4)
{
length = input.ReadInt();
}
if (length is not null && input.ReadableBytes >= length)
{
IByteBuffer result = input.ReadBytes(length.Value);
output.Add(NDataUtil.Parse(result.Array));
result.Clear();
length = null;
}
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 9487ff44b5354bc4843ac7320680c10f
timeCreated: 1723773916

View File

@ -1,22 +0,0 @@
using System;
using DotNetty.Buffers;
using DotNetty.Codecs;
using DotNetty.Transport.Channels;
using Plugins.JNGame.Network.Entity;
using Plugins.JNGame.Network.Util;
namespace TestNetty.Service.Handlers
{
/// <summary>
/// Encoder Packet
/// </summary>
public class TcpEncoderHandler : MessageToByteEncoder<JNetParam>
{
protected override void Encode(IChannelHandlerContext context, JNetParam message, IByteBuffer output)
{
var data = NDataUtil.Encrypt(message);
output.WriteInt(data.Length);//4-8
output.WriteBytes(data);
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 11f81d1e8543432c8226b6c42b605010
timeCreated: 1723773916

View File

@ -1,11 +0,0 @@
using Plugins.JNGame.Network.Entity;
namespace JNGame.Network.Netty.TCP
{
public class TcpPacket
{
public int Checkbit;
public int Length;
public JNetParam Data;
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: b5008afe7a554eafb1c684bef86362b0
timeCreated: 1723774619

View File

@ -1,154 +0,0 @@
using System;
using DotNetty.Transport.Channels;
using JNGame.Util.Types;
using Plugins.JNGame.Network;
using Plugins.JNGame.Network.Action;
using Plugins.JNGame.Network.Entity;
using UnityEngine;
namespace JNGame.Network.Netty.TCP
{
public class TcpServerHandler : ChannelHandlerAdapter
{
private int _index = 0;
public int Next()
{
return _index++;
}
private JNServerBase root;
public readonly KeyValue<IChannelHandlerContext, int> ClientInts = new();
public TcpServerHandler(JNServerBase server)
{
root = server;
}
/// <summary>
/// 逻辑处理器被添加
/// </summary>
/// <param name="context"></param>
public override void HandlerAdded(IChannelHandlerContext context)
{
base.HandlerAdded(context);
ClientInts.Add(context,Next());
}
/// <summary>
/// 绑定到线程
/// </summary>
/// <param name="context"></param>
public override void ChannelRegistered(IChannelHandlerContext context)
{
base.ChannelRegistered(context);
}
/// <summary>
/// 准备就绪
/// </summary>
/// <param name="context"></param>
public override void ChannelActive(IChannelHandlerContext context)
{
base.ChannelActive(context);
if (!(ClientInts.TryGetValueByKey(context,out var id)))
{
context.CloseAsync();
return;
}
Debug.Log($"[TcpServerHandler] 连接成功: {context.Channel.RemoteAddress}");
//客户端连接
root.Dispatch((int)NActionEnum.ClientConnect,new JNServerParam()
{
Client = id,
Message = Array.Empty<byte>()
});
}
/// <summary>
/// 有数据可读
/// </summary>
/// <param name="context"></param>
/// <param name="message"></param>
public override void ChannelRead(IChannelHandlerContext context, object message)
{
base.ChannelRead(context, message);
if (message is not JNetParam data) return;
if (!(ClientInts.TryGetValueByKey(context,out var id)))
{
context.CloseAsync();
return;
}
root.Dispatch(data.HId,new JNServerParam()
{
Client = id,
Message = data.Bytes
});
}
/// <summary>
/// 某次数据读完
/// </summary>
/// <param name="context"></param>
public override void ChannelReadComplete(IChannelHandlerContext context)
{
base.ChannelReadComplete(context);
}
/// <summary>
/// 被关闭
/// </summary>
/// <param name="context"></param>
public override void ChannelInactive(IChannelHandlerContext context)
{
base.ChannelInactive(context);
if (!(ClientInts.TryGetValueByKey(context,out var id)))
{
context.CloseAsync();
return;
}
Debug.Log($"[TcpServerHandler] 断开连接: {context.Channel.RemoteAddress}");
//客户端断开
root.Dispatch((int)NActionEnum.ClientDisconnect,new JNServerParam()
{
Client = id,
Message = Array.Empty<byte>()
});
}
/// <summary>
/// 取消线程(NioEventLoop) 的绑定
/// </summary>
/// <param name="context"></param>
public override void ChannelUnregistered(IChannelHandlerContext context)
{
base.ChannelUnregistered(context);
}
/// <summary>
/// 逻辑处理器被移除
/// </summary>
/// <param name="context"></param>
public override void HandlerRemoved(IChannelHandlerContext context)
{
base.HandlerRemoved(context);
ClientInts.RemoveByKey(context);
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 70f2f7800eb14ae189df47eb04e775aa
timeCreated: 1723776097

View File

@ -1,42 +0,0 @@
using DotNetty.Handlers.Timeout;
using DotNetty.Transport.Channels;
using DotNetty.Transport.Channels.Sockets;
using Plugins.JNGame.Network;
using TestNetty.Service.Handlers;
namespace JNGame.Network.Netty.TCP
{
public class TcpServerInitializer : ChannelInitializer<ISocketChannel>
{
private JNServerBase root;
private TcpServerHandler handler;
public TcpServerInitializer(JNServerBase server)
{
root = server;
handler = new TcpServerHandler(root);
}
protected override void InitChannel(ISocketChannel channel)
{
IChannelPipeline pipeline = channel.Pipeline;
pipeline.AddLast(new IdleStateHandler(30,30,60 * 5));//心跳
pipeline.AddLast(new HeartBeatHandler());
pipeline.AddLast("encoder", new TcpEncoderHandler());
pipeline.AddLast("decoder", new TcpDecoderHandler());
pipeline.AddLast(handler);
}
public IChannelHandlerContext GetClient(int index)
{
return handler.ClientInts.Value2Key(index);
}
public int[] GetClients()
{
return handler.ClientInts.Values;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 5c734c16eb6b4ff98f41bb63524f3209
timeCreated: 1723773874

View File

@ -83,7 +83,7 @@ namespace JNGame.Sync.State.Tile
{
if (xTuple.X >= 0 && xTuple.Y >= 0)
{
return xTuple.Y <= Tiles.Length && xTuple.X <= Tiles[0].Length;
return xTuple.Y < Tiles.Length && xTuple.X < Tiles[0].Length;
}
return false;
}

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>DotNetty.Buffers</id>
<version>0.7.6</version>
<authors>Microsoft</authors>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<projectUrl>https://github.com/Azure/DotNetty/</projectUrl>
<description>Buffer management in DotNetty</description>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<tags>socket tcp protocol netty dotnetty network</tags>
<repository url="https://github.com/Azure/DotNetty/" />
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" exclude="Build,Analyzers" />
</group>
<group targetFramework="net5.0">
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" exclude="Build,Analyzers" />
</group>
<group targetFramework="net6.0">
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" exclude="Build,Analyzers" />
</group>
<group targetFramework=".NETStandard2.0">
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>

View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>DotNetty.Codecs</id>
<version>0.7.6</version>
<authors>Microsoft</authors>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<projectUrl>https://github.com/Azure/DotNetty/</projectUrl>
<description>General purpose codecs for DotNetty</description>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<tags>socket tcp protocol netty dotnetty network codec</tags>
<repository type="git" url="https://github.com/Azure/DotNetty/" />
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Transport" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="System.Collections.Immutable" version="1.5.0" exclude="Build,Analyzers" />
</group>
<group targetFramework="net5.0">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Transport" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="System.Collections.Immutable" version="1.5.0" exclude="Build,Analyzers" />
</group>
<group targetFramework="net6.0">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Transport" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="System.Collections.Immutable" version="1.5.0" exclude="Build,Analyzers" />
</group>
<group targetFramework=".NETStandard2.0">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Transport" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="System.Collections.Immutable" version="1.5.0" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>

View File

@ -1,646 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>DotNetty.Codecs</name>
</assembly>
<members>
<member name="F:DotNetty.Codecs.Base64.Base64Dialect.STANDARD">
<summary>
http://www.faqs.org/rfcs/rfc3548.html
Table 1: The Base 64 Alphabet
</summary>
</member>
<member name="F:DotNetty.Codecs.Base64.Base64Dialect.URL_SAFE">
<summary>
http://www.faqs.org/rfcs/rfc3548.html
Table 2: The "URL and Filename safe" Base 64 Alphabet
</summary>
</member>
<member name="F:DotNetty.Codecs.ByteToMessageDecoder.MergeCumulator">
<summary>
Cumulates instances of <see cref="T:DotNetty.Buffers.IByteBuffer" /> by merging them into one <see cref="T:DotNetty.Buffers.IByteBuffer" />, using memory
copies.
</summary>
</member>
<member name="F:DotNetty.Codecs.ByteToMessageDecoder.CompositionCumulation">
<summary>
Cumulate instances of <see cref="T:DotNetty.Buffers.IByteBuffer" /> by add them to a <see cref="T:DotNetty.Buffers.CompositeByteBuffer" /> and therefore
avoiding memory copy when possible.
</summary>
<remarks>
Be aware that <see cref="T:DotNetty.Buffers.CompositeByteBuffer" /> use a more complex indexing implementation so depending on your
use-case
and the decoder implementation this may be slower then just use the <see cref="F:DotNetty.Codecs.ByteToMessageDecoder.MergeCumulator" />.
</remarks>
</member>
<member name="P:DotNetty.Codecs.ByteToMessageDecoder.SingleDecode">
<summary>
Determines whether only one message should be decoded per <see cref="M:DotNetty.Codecs.ByteToMessageDecoder.ChannelRead(DotNetty.Transport.Channels.IChannelHandlerContext,System.Object)" /> call.
Default is <code>false</code> as this has performance impacts.
</summary>
<remarks>Is particularly useful in support of protocol upgrade scenarios.</remarks>
</member>
<member name="P:DotNetty.Codecs.ByteToMessageDecoder.ActualReadableBytes">
<summary>
Returns the actual number of readable bytes in the internal cumulative
buffer of this decoder. You usually do not need to rely on this value
to write a decoder. Use it only when you must use it at your own risk.
This method is a shortcut to <see cref="P:DotNetty.Buffers.IByteBuffer.ReadableBytes" /> of <see cref="P:DotNetty.Codecs.ByteToMessageDecoder.InternalBuffer" />.
</summary>
</member>
<member name="T:DotNetty.Codecs.CodecException">
<summary>
An <see cref="T:System.Exception" /> which is thrown by a codec.
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.Adler32">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/Adler32.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.CRC32">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/CRC32.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.Deflate">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/Deflate.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.Deflater">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/Deflater.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.GZIPException">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/GZIPException.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.GZIPHeader">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/GZIPHeader.java
http://www.ietf.org/rfc/rfc1952.txt
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.InfBlocks">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/InfBlocks.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.InfCodes">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/InfCodes.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.Inflate">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/Inflate.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.Inflater">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/Inflater.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.InfTree">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/InfTree.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.JZlib">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/JZlib.java
</summary>
</member>
<member name="M:DotNetty.Codecs.Compression.JZlibEncoder.#ctor(DotNetty.Codecs.Compression.ZlibWrapper,System.Int32,System.Int32,System.Int32)">
Creates a new zlib encoder with the specified {@code compressionLevel},
the specified {@code windowBits}, the specified {@code memLevel}, and
the specified wrapper.
@param compressionLevel
{@code 1} yields the fastest compression and {@code 9} yields the
best compression. {@code 0} means no compression. The default
compression level is {@code 6}.
@param windowBits
The base two logarithm of the size of the history buffer. The
value should be in the range {@code 9} to {@code 15} inclusive.
Larger values result in better compression at the expense of
memory usage. The default value is {@code 15}.
@param memLevel
How much memory should be allocated for the internal compression
state. {@code 1} uses minimum memory and {@code 9} uses maximum
memory. Larger values result in better and faster compression
at the expense of memory usage. The default value is {@code 8}
@throws CompressionException if failed to initialize zlib
</member>
<member name="T:DotNetty.Codecs.Compression.StaticTree">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/StaticTree.java
</summary>
</member>
<member name="T:DotNetty.Codecs.Compression.Tree">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/Tree.java
</summary>
</member>
<member name="M:DotNetty.Codecs.Compression.ZlibEncoder.CloseAsync">
Close this {@link ZlibEncoder} and so finish the encoding.
The returned {@link ChannelFuture} will be notified once the
operation completes.
</member>
<member name="T:DotNetty.Codecs.Compression.ZlibWrapper">
The container file formats that wrap the stream compressed by the DEFLATE
algorithm.
</member>
<member name="F:DotNetty.Codecs.Compression.ZlibWrapper.Zlib">
The ZLIB wrapper as specified in <a href="http://tools.ietf.org/html/rfc1950">RFC 1950</a>.
</member>
<member name="F:DotNetty.Codecs.Compression.ZlibWrapper.Gzip">
The GZIP wrapper as specified in <a href="http://tools.ietf.org/html/rfc1952">RFC 1952</a>.
</member>
<member name="F:DotNetty.Codecs.Compression.ZlibWrapper.None">
Raw DEFLATE stream only (no header and no footer).
</member>
<member name="F:DotNetty.Codecs.Compression.ZlibWrapper.ZlibOrNone">
Try {@link #ZLIB} first and then {@link #NONE} if the first attempt fails.
Please note that you can specify this wrapper type only when decompressing.
</member>
<member name="T:DotNetty.Codecs.Compression.ZStream">
<summary>
https://github.com/ymnk/jzlib/blob/master/src/main/java/com/jcraft/jzlib/ZStream.java
</summary>
</member>
<member name="M:DotNetty.Codecs.Compression.ZStream.End">
Those methods are expected to be override by Inflater and Deflater.
In the future, they will become abstract methods.
</member>
<member name="T:DotNetty.Codecs.CorruptedFrameException">
<summary>
A <see cref="T:DotNetty.Codecs.DecoderException" /> which is thrown when the received frame data could not
be decoded by an inbound handler.
</summary>
</member>
<member name="T:DotNetty.Codecs.DelimiterBasedFrameDecoder">
<summary>
A decoder that splits the received <see cref="T:DotNetty.Buffers.IByteBuffer" /> by one or more
delimiters.It is particularly useful for decoding the frames which ends
with a delimiter such as <see cref="M:DotNetty.Codecs.Delimiters.NullDelimiter" /> or
<see cref="M:DotNetty.Codecs.Delimiters.LineDelimiter" />
<h3>Specifying more than one delimiter </h3>
<see cref="M:DotNetty.Codecs.Delimiters.NullDelimiter" /> allows you to specify more than one
delimiter. If more than one delimiter is found in the buffer, it chooses
the delimiter which produces the shortest frame. For example, if you have
the following data in the buffer:
+--------------+
| ABC\nDEF\r\n |
+--------------+
a <see cref="M:DotNetty.Codecs.Delimiters.LineDelimiter" /> will choose '\n' as the first delimiter and produce two
frames:
+-----+-----+
| ABC | DEF |
+-----+-----+
rather than incorrectly choosing '\r\n' as the first delimiter:
+----------+
| ABC\nDEF |
+----------+
</summary>
</member>
<member name="M:DotNetty.Codecs.DelimiterBasedFrameDecoder.#ctor(System.Int32,System.Boolean,System.Boolean,DotNetty.Buffers.IByteBuffer[])">
<summary>Common constructor</summary>
<param name="maxFrameLength">
The maximum length of the decoded frame
NOTE: A see <see cref="T:DotNetty.Codecs.TooLongFrameException" /> is thrown if the length of the frame exceeds this
value.
</param>
<param name="stripDelimiter">whether the decoded frame should strip out the delimiter or not</param>
<param name="failFast">
If true, a <see cref="T:DotNetty.Codecs.TooLongFrameException" /> is
thrown as soon as the decoder notices the length of the
frame will exceed<tt>maxFrameLength</tt> regardless of
whether the entire frame has been read.
If false, a <see cref="T:DotNetty.Codecs.TooLongFrameException" /> is
thrown after the entire frame that exceeds maxFrameLength has been read.
</param>
<param name="delimiters">delimiters</param>
</member>
<member name="M:DotNetty.Codecs.DelimiterBasedFrameDecoder.IsLineBased(DotNetty.Buffers.IByteBuffer[])">
<summary>Returns true if the delimiters are "\n" and "\r\n"</summary>
</member>
<member name="M:DotNetty.Codecs.DelimiterBasedFrameDecoder.IsSubclass">
<summary>ReturnsReturn true if the current instance is a subclass of DelimiterBasedFrameDecoder</summary>
</member>
<member name="M:DotNetty.Codecs.DelimiterBasedFrameDecoder.Decode(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Buffers.IByteBuffer)">
<summary>Create a frame out of the <see cref="T:DotNetty.Buffers.IByteBuffer" /> and return it</summary>
<param name="ctx">
the <see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext" /> which this
<see cref="T:DotNetty.Codecs.ByteToMessageDecoder" /> belongs to
</param>
<param name="buffer">the <see cref="T:DotNetty.Buffers.IByteBuffer" /> from which to read data</param>
<returns>
the <see cref="T:DotNetty.Buffers.IByteBuffer" /> which represent the frame or null if no frame could be
created.
</returns>
</member>
<member name="M:DotNetty.Codecs.DelimiterBasedFrameDecoder.IndexOf(DotNetty.Buffers.IByteBuffer,DotNetty.Buffers.IByteBuffer)">
Returns the number of bytes between the readerIndex of the haystack and
the first needle found in the haystack. -1 is returned if no needle is
found in the haystack.
</member>
<member name="M:DotNetty.Codecs.Delimiters.NullDelimiter">
<summary>Returns a null (0x00) delimiter, which could be used for Flash XML socket or any similar protocols</summary>
</member>
<member name="M:DotNetty.Codecs.Delimiters.LineDelimiter">
<summary>
Returns {@code CR ('\r')} and {@code LF ('\n')} delimiters, which could
be used for text-based line protocols.
</summary>
</member>
<member name="T:DotNetty.Codecs.Json.JsonObjectDecoder">
<summary>
Splits a byte stream of JSON objects and arrays into individual objects/arrays and passes them up the
<see cref="T:DotNetty.Transport.Channels.IChannelPipeline" />.
This class does not do any real parsing or validation. A sequence of bytes is considered a JSON object/array
if it contains a matching number of opening and closing braces/brackets. It's up to a subsequent
<see cref="T:DotNetty.Transport.Channels.IChannelHandler" />
to parse the JSON text into a more usable form i.e.a POCO.
</summary>
</member>
<!-- Badly formed XML comment ignored for member "T:DotNetty.Codecs.LengthFieldBasedFrameDecoder" -->
<member name="M:DotNetty.Codecs.LengthFieldBasedFrameDecoder.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
Create a new instance.
</summary>
<param name="maxFrameLength">
The maximum length of the frame. If the length of the frame is
greater than this value then <see cref="T:DotNetty.Codecs.TooLongFrameException" /> will be thrown.
</param>
<param name="lengthFieldOffset">The offset of the length field.</param>
<param name="lengthFieldLength">The length of the length field.</param>
</member>
<member name="M:DotNetty.Codecs.LengthFieldBasedFrameDecoder.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
Create a new instance.
</summary>
<param name="maxFrameLength">
The maximum length of the frame. If the length of the frame is
greater than this value then <see cref="T:DotNetty.Codecs.TooLongFrameException" /> will be thrown.
</param>
<param name="lengthFieldOffset">The offset of the length field.</param>
<param name="lengthFieldLength">The length of the length field.</param>
<param name="lengthAdjustment">The compensation value to add to the value of the length field.</param>
<param name="initialBytesToStrip">the number of first bytes to strip out from the decoded frame.</param>
</member>
<member name="M:DotNetty.Codecs.LengthFieldBasedFrameDecoder.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Boolean)">
<summary>
Create a new instance.
</summary>
<param name="maxFrameLength">
The maximum length of the frame. If the length of the frame is
greater than this value then <see cref="T:DotNetty.Codecs.TooLongFrameException" /> will be thrown.
</param>
<param name="lengthFieldOffset">The offset of the length field.</param>
<param name="lengthFieldLength">The length of the length field.</param>
<param name="lengthAdjustment">The compensation value to add to the value of the length field.</param>
<param name="initialBytesToStrip">the number of first bytes to strip out from the decoded frame.</param>
<param name="failFast">
If <c>true</c>, a <see cref="T:DotNetty.Codecs.TooLongFrameException" /> is thrown as soon as the decoder notices the length
of the frame will exceeed <see cref="F:DotNetty.Codecs.LengthFieldBasedFrameDecoder.maxFrameLength" /> regardless of whether the entire frame has been
read. If <c>false</c>, a <see cref="T:DotNetty.Codecs.TooLongFrameException" /> is thrown after the entire frame that exceeds
<see cref="F:DotNetty.Codecs.LengthFieldBasedFrameDecoder.maxFrameLength" /> has been read.
Defaults to <c>true</c> in other overloads.
</param>
</member>
<member name="M:DotNetty.Codecs.LengthFieldBasedFrameDecoder.#ctor(DotNetty.Buffers.ByteOrder,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Boolean)">
<summary>
Create a new instance.
</summary>
<param name="byteOrder">The <see cref="T:DotNetty.Buffers.ByteOrder" /> of the lenght field.</param>
<param name="maxFrameLength">
The maximum length of the frame. If the length of the frame is
greater than this value then <see cref="T:DotNetty.Codecs.TooLongFrameException" /> will be thrown.
</param>
<param name="lengthFieldOffset">The offset of the length field.</param>
<param name="lengthFieldLength">The length of the length field.</param>
<param name="lengthAdjustment">The compensation value to add to the value of the length field.</param>
<param name="initialBytesToStrip">the number of first bytes to strip out from the decoded frame.</param>
<param name="failFast">
If <c>true</c>, a <see cref="T:DotNetty.Codecs.TooLongFrameException" /> is thrown as soon as the decoder notices the length
of the frame will exceeed <see cref="F:DotNetty.Codecs.LengthFieldBasedFrameDecoder.maxFrameLength" /> regardless of whether the entire frame has been
read. If <c>false</c>, a <see cref="T:DotNetty.Codecs.TooLongFrameException" /> is thrown after the entire frame that exceeds
<see cref="F:DotNetty.Codecs.LengthFieldBasedFrameDecoder.maxFrameLength" /> has been read.
Defaults to <c>true</c> in other overloads.
</param>
</member>
<member name="M:DotNetty.Codecs.LengthFieldBasedFrameDecoder.Decode(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Buffers.IByteBuffer)">
<summary>
Create a frame out of the <see cref="T:DotNetty.Buffers.IByteBuffer" /> and return it.
</summary>
<param name="context">
The <see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext" /> which this <see cref="T:DotNetty.Codecs.ByteToMessageDecoder" /> belongs
to.
</param>
<param name="input">The <see cref="T:DotNetty.Buffers.IByteBuffer" /> from which to read data.</param>
<returns>The <see cref="T:DotNetty.Buffers.IByteBuffer" /> which represents the frame or <c>null</c> if no frame could be created.</returns>
</member>
<member name="M:DotNetty.Codecs.LengthFieldBasedFrameDecoder.GetUnadjustedFrameLength(DotNetty.Buffers.IByteBuffer,System.Int32,System.Int32,DotNetty.Buffers.ByteOrder)">
<summary>
Decodes the specified region of the buffer into an unadjusted frame length. The default implementation is
capable of decoding the specified region into an unsigned 8/16/24/32/64 bit integer. Override this method to
decode the length field encoded differently.
Note that this method must not modify the state of the specified buffer (e.g.
<see cref="P:DotNetty.Buffers.IByteBuffer.ReaderIndex" />,
<see cref="P:DotNetty.Buffers.IByteBuffer.WriterIndex" />, and the content of the buffer.)
</summary>
<param name="buffer">The buffer we'll be extracting the frame length from.</param>
<param name="offset">The offset from the absolute <see cref="P:DotNetty.Buffers.IByteBuffer.ReaderIndex" />.</param>
<param name="length">The length of the framelenght field. Expected: 1, 2, 3, 4, or 8.</param>
<param name="order">The preferred <see cref="T:DotNetty.Buffers.ByteOrder" /> of buffer.</param>
<returns>A long integer that represents the unadjusted length of the next frame.</returns>
</member>
<member name="T:DotNetty.Codecs.LengthFieldPrepender">
<summary>
An encoder that prepends the length of the message. The length value is
prepended as a binary form.
<p />
For example, <tt>{@link LengthFieldPrepender}(2)</tt> will encode the
following 12-bytes string:
<pre>
+----------------+
| "HELLO, WORLD" |
+----------------+
</pre>
into the following:
<pre>
+--------+----------------+
+ 0x000C | "HELLO, WORLD" |
+--------+----------------+
</pre>
If you turned on the {@code lengthIncludesLengthFieldLength} flag in the
constructor, the encoded data would look like the following
(12 (original data) + 2 (prepended data) = 14 (0xE)):
<pre>
+--------+----------------+
+ 0x000E | "HELLO, WORLD" |
+--------+----------------+
</pre>
</summary>
</member>
<member name="M:DotNetty.Codecs.LengthFieldPrepender.#ctor(System.Int32)">
<summary>
Creates a new <see cref="T:DotNetty.Codecs.LengthFieldPrepender" /> instance.
</summary>
<param name="lengthFieldLength">
The length of the prepended length field.
Only 1, 2, 3, 4, and 8 are allowed.
</param>
</member>
<member name="M:DotNetty.Codecs.LengthFieldPrepender.#ctor(System.Int32,System.Boolean)">
<summary>
Creates a new <see cref="T:DotNetty.Codecs.LengthFieldPrepender" /> instance.
</summary>
<param name="lengthFieldLength">
The length of the prepended length field.
Only 1, 2, 3, 4, and 8 are allowed.
</param>
<param name="lengthFieldIncludesLengthFieldLength">
If <c>true</c>, the length of the prepended length field is added
to the value of the prepended length field.
</param>
</member>
<member name="M:DotNetty.Codecs.LengthFieldPrepender.#ctor(System.Int32,System.Int32)">
<summary>
Creates a new <see cref="T:DotNetty.Codecs.LengthFieldPrepender" /> instance.
</summary>
<param name="lengthFieldLength">
The length of the prepended length field.
Only 1, 2, 3, 4, and 8 are allowed.
</param>
<param name="lengthAdjustment">The compensation value to add to the value of the length field.</param>
</member>
<member name="M:DotNetty.Codecs.LengthFieldPrepender.#ctor(System.Int32,System.Int32,System.Boolean)">
<summary>
Creates a new <see cref="T:DotNetty.Codecs.LengthFieldPrepender" /> instance.
</summary>
<param name="lengthFieldLength">
The length of the prepended length field.
Only 1, 2, 3, 4, and 8 are allowed.
</param>
<param name="lengthFieldIncludesLengthFieldLength">
If <c>true</c>, the length of the prepended length field is added
to the value of the prepended length field.
</param>
<param name="lengthAdjustment">The compensation value to add to the value of the length field.</param>
</member>
<member name="M:DotNetty.Codecs.LengthFieldPrepender.#ctor(DotNetty.Buffers.ByteOrder,System.Int32,System.Int32,System.Boolean)">
<summary>
Creates a new <see cref="T:DotNetty.Codecs.LengthFieldPrepender" /> instance.
</summary>
<param name="byteOrder">The <see cref="T:DotNetty.Buffers.ByteOrder" /> of the length field.</param>
<param name="lengthFieldLength">
The length of the prepended length field.
Only 1, 2, 3, 4, and 8 are allowed.
</param>
<param name="lengthFieldIncludesLengthFieldLength">
If <c>true</c>, the length of the prepended length field is added
to the value of the prepended length field.
</param>
<param name="lengthAdjustment">The compensation value to add to the value of the length field.</param>
</member>
<member name="T:DotNetty.Codecs.LineBasedFrameDecoder">
<summary>
A decoder that splits the received {@link ByteBuf}s on line endings.
Both {@code "\n"} and {@code "\r\n"} are handled.
For a more general delimiter-based decoder, see {@link DelimiterBasedFrameDecoder}.
</summary>
</member>
<member name="F:DotNetty.Codecs.LineBasedFrameDecoder.maxLength">
Maximum length of a frame we're willing to decode.
</member>
<member name="F:DotNetty.Codecs.LineBasedFrameDecoder.failFast">
Whether or not to throw an exception as soon as we exceed maxLength.
</member>
<member name="F:DotNetty.Codecs.LineBasedFrameDecoder.discarding">
True if we're discarding input because we're already over maxLength.
</member>
<member name="M:DotNetty.Codecs.LineBasedFrameDecoder.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:DotNetty.Codecs.LineBasedFrameDecoder" /> class.
</summary>
<param name="maxLength">
the maximum length of the decoded frame.
A {@link TooLongFrameException} is thrown if
the length of the frame exceeds this value.
</param>
</member>
<member name="M:DotNetty.Codecs.LineBasedFrameDecoder.#ctor(System.Int32,System.Boolean,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:DotNetty.Codecs.LineBasedFrameDecoder" /> class.
</summary>
<param name="maxLength">
the maximum length of the decoded frame.
A {@link TooLongFrameException} is thrown if
the length of the frame exceeds this value.
</param>
<param name="stripDelimiter">
whether the decoded frame should strip out the
delimiter or not
</param>
<param name="failFast">
If <tt>true</tt>, a {@link TooLongFrameException} is
thrown as soon as the decoder notices the length of the
frame will exceed <tt>maxFrameLength</tt> regardless of
whether the entire frame has been read.
If <tt>false</tt>, a {@link TooLongFrameException} is
thrown after the entire frame that exceeds
<tt>maxFrameLength</tt> has been read.
</param>
</member>
<member name="M:DotNetty.Codecs.LineBasedFrameDecoder.Decode(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Buffers.IByteBuffer)">
<summary>
Create a frame out of the {@link ByteBuf} and return it.
</summary>
<param name="ctx">the {@link ChannelHandlerContext} which this {@link ByteToMessageDecoder} belongs to</param>
<param name="buffer">the {@link ByteBuf} from which to read data</param>
</member>
<member name="T:DotNetty.Codecs.MessageAggregator`4">
<inheritdoc />
<summary>
An abstract <see cref="T:DotNetty.Transport.Channels.IChannelHandler" /> that aggregates a series of message objects
into a single aggregated message.
'A series of messages' is composed of the following:
a single start message which optionally contains the first part of the content, and
1 or more content messages. The content of the aggregated message will be the merged
content of the start message and its following content messages. If this aggregator
encounters a content message where { @link #isLastContentMessage(ByteBufHolder)}
return true for, the aggregator will finish the aggregation and produce the aggregated
message and expect another start message.
</summary>
<typeparam name="TMessage">The type that covers both start message and content message</typeparam>
<typeparam name="TStart">The type of the start message</typeparam>
<typeparam name="TContent">The type of the content message</typeparam>
<typeparam name="TOutput">The type of the aggregated message</typeparam>
</member>
<member name="T:DotNetty.Codecs.MessageToMessageDecoder`1">
<summary>
Message to message decoder.
</summary>
</member>
<member name="M:DotNetty.Codecs.MessageToMessageDecoder`1.Decode(DotNetty.Transport.Channels.IChannelHandlerContext,`0,System.Collections.Generic.List{System.Object})">
<summary>
Decode from one message to an other. This method will be called for each written message that can be handled
by this encoder.
</summary>
<param name="context">the {@link ChannelHandlerContext} which this {@link MessageToMessageDecoder} belongs to</param>
<param name="message">the message to decode to an other one</param>
<param name="output">the {@link List} to which decoded messages should be added</param>
</member>
<member name="M:DotNetty.Codecs.MessageToMessageEncoder`1.AcceptOutboundMessage(System.Object)">
<summary>
Returns {@code true} if the given message should be handled. If {@code false} it will be passed to the next
{@link ChannelHandler} in the {@link ChannelPipeline}.
</summary>
</member>
<member name="M:DotNetty.Codecs.MessageToMessageEncoder`1.Encode(DotNetty.Transport.Channels.IChannelHandlerContext,`0,System.Collections.Generic.List{System.Object})">
<summary>
Encode from one message to an other. This method will be called for each written message that can be handled
by this encoder.
@param context the {@link ChannelHandlerContext} which this {@link MessageToMessageEncoder} belongs to
@param message the message to encode to an other one
@param output the {@link List} into which the encoded message should be added
needs to do some kind of aggragation
@throws Exception is thrown if an error accour
</summary>
</member>
<member name="T:DotNetty.Codecs.Protobuf.ProtobufVarint32FrameDecoder">
A decoder that splits the received {@link ByteBuf}s dynamically by the
value of the Google Protocol Buffers
http://code.google.com/apis/protocolbuffers/docs/encoding.html#varints
Base 128 Varints integer length field in the message.
For example:
BEFORE DECODE (302 bytes) AFTER DECODE (300 bytes)
+--------+---------------+ +---------------+
| Length | Protobuf Data |----->| Protobuf Data |
| 0xAC02 | (300 bytes) | | (300 bytes) |
+--------+---------------+ +---------------+
</member>
<member name="T:DotNetty.Codecs.Protobuf.ProtobufVarint32LengthFieldPrepender">
An encoder that prepends the the Google Protocol Buffers
http://code.google.com/apis/protocolbuffers/docs/encoding.html#varints
Base 128 Varints integer length field.
For example:
BEFORE ENCODE (300 bytes) AFTER ENCODE (302 bytes)
+---------------+ +--------+---------------+
| Protobuf Data |-------------->| Length | Protobuf Data |
| (300 bytes) | | 0xAC02 | (300 bytes) |
+---------------+ +--------+---------------+
</member>
<member name="M:DotNetty.Codecs.StringDecoder.#ctor">
<summary>
Initializes a new instance of the <see cref="T:DotNetty.Codecs.StringDecoder" /> class with the current system
character set.
</summary>
</member>
<member name="M:DotNetty.Codecs.StringDecoder.#ctor(System.Text.Encoding)">
<summary>
Initializes a new instance of the <see cref="T:DotNetty.Codecs.StringDecoder" /> class with the specified character
set..
</summary>
<param name="encoding">Encoding.</param>
</member>
<member name="T:DotNetty.Codecs.StringEncoder">
Encodes the requested {@link String} into a {@link ByteBuf}.
A typical setup for a text-based line protocol in a TCP/IP socket would be:
<pre>
{@link ChannelPipeline} pipeline = ...;
// Decoders
pipeline.addLast("frameDecoder", new {@link LineBasedFrameDecoder}(80));
pipeline.addLast("stringDecoder", new {@link StringDecoder}(CharsetUtil.UTF_8));
// Encoder
pipeline.addLast("stringEncoder", new {@link StringEncoder}(CharsetUtil.UTF_8));
</pre>
and then you can use a {@link String} instead of a {@link ByteBuf}
as a message:
<pre>
void channelRead({@link ChannelHandlerContext} ctx, {@link String} msg) {
ch.write("Did you say '" + msg + "'?\n");
}
</pre>
</member>
<member name="M:DotNetty.Codecs.StringEncoder.#ctor">
<summary>
Initializes a new instance of the <see cref="T:DotNetty.Codecs.StringEncoder" /> class with the current system
character set.
</summary>
</member>
<member name="M:DotNetty.Codecs.StringEncoder.#ctor(System.Text.Encoding)">
<summary>
Initializes a new instance of the <see cref="T:DotNetty.Codecs.StringEncoder" /> class with the specified character
set..
</summary>
<param name="encoding">Encoding.</param>
</member>
<member name="T:DotNetty.Codecs.TooLongFrameException">
<summary>
A <see cref="T:DotNetty.Codecs.DecoderException" /> which is thrown when the length of the frame
decoded is greater than the allowed maximum.
</summary>
</member>
<member name="T:DotNetty.Codecs.UnsupportedMessageTypeException">
<summary>
Thrown if an unsupported message is received by an codec.
</summary>
</member>
</members>
</doc>

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: afaf11420857a4a419eb7397b25c820a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>DotNetty.Common</id>
<version>0.7.6</version>
<authors>Microsoft</authors>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<projectUrl>https://github.com/Azure/DotNetty/</projectUrl>
<description>DotNetty common routines</description>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<tags>socket tcp protocol netty dotnetty network</tags>
<repository type="git" url="https://github.com/Azure/DotNetty/" />
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="Microsoft.Extensions.Logging" version="5.0.0" exclude="Build,Analyzers" />
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" exclude="Build,Analyzers" />
</group>
<group targetFramework="net5.0">
<dependency id="Microsoft.Extensions.Logging" version="5.0.0" exclude="Build,Analyzers" />
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" exclude="Build,Analyzers" />
</group>
<group targetFramework="net6.0">
<dependency id="Microsoft.Extensions.Logging" version="5.0.0" exclude="Build,Analyzers" />
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" exclude="Build,Analyzers" />
</group>
<group targetFramework=".NETStandard2.0">
<dependency id="Microsoft.Extensions.Logging" version="5.0.0" exclude="Build,Analyzers" />
<dependency id="System.Runtime.CompilerServices.Unsafe" version="5.0.0" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 38804a6edd37f3a44b2714fd20d304d5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>DotNetty.Handlers</id>
<version>0.7.6</version>
<authors>Microsoft</authors>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<projectUrl>https://github.com/Azure/DotNetty/</projectUrl>
<description>Application handlers for DotNetty</description>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<tags>socket tcp protocol netty dotnetty network tls ssl</tags>
<repository type="git" url="https://github.com/Azure/DotNetty/" />
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Codecs" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Transport" version="0.7.6" exclude="Build,Analyzers" />
</group>
<group targetFramework="net5.0">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Codecs" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Transport" version="0.7.6" exclude="Build,Analyzers" />
</group>
<group targetFramework="net6.0">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Codecs" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Transport" version="0.7.6" exclude="Build,Analyzers" />
</group>
<group targetFramework=".NETStandard2.0">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Codecs" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Transport" version="0.7.6" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>

View File

@ -1,591 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>DotNetty.Handlers</name>
</assembly>
<members>
<member name="T:DotNetty.Handlers.Flow.FlowControlHandler">
The {@link FlowControlHandler} ensures that only one message per {@code read()} is sent downstream.
Classes such as {@link ByteToMessageDecoder} or {@link MessageToByteEncoder} are free to emit as
many events as they like for any given input. A channel's auto reading configuration doesn't usually
apply in these scenarios. This is causing problems in downstream {@link ChannelHandler}s that would
like to hold subsequent events while they're processing one event. It's a common problem with the
{@code HttpObjectDecoder} that will very often fire a {@code HttpRequest} that is immediately followed
by a {@code LastHttpContent} event.
<pre>{@code
ChannelPipeline pipeline = ...;
pipeline.addLast(new HttpServerCodec());
pipeline.addLast(new FlowControlHandler());
pipeline.addLast(new MyExampleHandler());
class MyExampleHandler extends ChannelInboundHandlerAdapter {
@Override
public void channelRead(IChannelHandlerContext ctx, Object msg) {
if (msg instanceof HttpRequest) {
ctx.channel().config().setAutoRead(false);
// The FlowControlHandler will hold any subsequent events that
// were emitted by HttpObjectDecoder until auto reading is turned
// back on or Channel#read() is being called.
}
}
}
}</pre>
@see ChannelConfig#setAutoRead(bool)
</member>
<member name="P:DotNetty.Handlers.Flow.FlowControlHandler.IsQueueEmpty">
Determine if the underlying {@link Queue} is empty. This method exists for
testing, debugging and inspection purposes and it is not Thread safe!
</member>
<member name="M:DotNetty.Handlers.Flow.FlowControlHandler.Destroy">
Releases all messages and destroys the {@link Queue}.
</member>
<member name="M:DotNetty.Handlers.Flow.FlowControlHandler.Dequeue(DotNetty.Transport.Channels.IChannelHandlerContext,System.Int32)">
Dequeues one or many (or none) messages depending on the channel's auto
reading state and returns the number of messages that were consumed from
the internal queue.
The {@code minConsume} argument is used to force {@code dequeue()} into
consuming that number of messages regardless of the channel's auto
reading configuration.
@see #read(ChannelHandlerContext)
@see #channelRead(ChannelHandlerContext, Object)
</member>
<member name="T:DotNetty.Handlers.Logging.LoggingHandler">
<summary>
A <see cref="T:DotNetty.Transport.Channels.IChannelHandler" /> that logs all events using a logging framework.
By default, all events are logged at <tt>DEBUG</tt> level.
</summary>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor">
<summary>
Creates a new instance whose logger name is the fully qualified class
name of the instance with hex dump enabled.
</summary>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(DotNetty.Handlers.Logging.LogLevel)">
<summary>
Creates a new instance whose logger name is the fully qualified class
name of the instance
</summary>
<param name="level">the log level</param>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.Type)">
<summary>
Creates a new instance with the specified logger name and with hex dump
enabled
</summary>
<param name="type">the class type to generate the logger for</param>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.Type,DotNetty.Handlers.Logging.LogLevel)">
<summary>
Creates a new instance with the specified logger name.
</summary>
<param name="type">the class type to generate the logger for</param>
<param name="level">the log level</param>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.String)">
<summary>
Creates a new instance with the specified logger name using the default log level.
</summary>
<param name="name">the name of the class to use for the logger</param>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.#ctor(System.String,DotNetty.Handlers.Logging.LogLevel)">
<summary>
Creates a new instance with the specified logger name.
</summary>
<param name="name">the name of the class to use for the logger</param>
<param name="level">the log level</param>
</member>
<member name="P:DotNetty.Handlers.Logging.LoggingHandler.Level">
<summary>
Returns the <see cref="T:DotNetty.Handlers.Logging.LogLevel" /> that this handler uses to log
</summary>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String)">
<summary>
Formats an event and returns the formatted message
</summary>
<param name="eventName">the name of the event</param>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object)">
<summary>
Formats an event and returns the formatted message.
</summary>
<param name="eventName">the name of the event</param>
<param name="arg">the argument of the event</param>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.Format(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object,System.Object)">
<summary>
Formats an event and returns the formatted message. This method is currently only used for formatting
<see cref="M:DotNetty.Transport.Channels.IChannelHandler.ConnectAsync(DotNetty.Transport.Channels.IChannelHandlerContext,System.Net.EndPoint,System.Net.EndPoint)" />
</summary>
<param name="eventName">the name of the event</param>
<param name="firstArg">the first argument of the event</param>
<param name="secondArg">the second argument of the event</param>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatByteBuffer(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,DotNetty.Buffers.IByteBuffer)">
<summary>
Generates the default log message of the specified event whose argument is a <see cref="T:DotNetty.Buffers.IByteBuffer" />.
</summary>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatByteBufferHolder(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,DotNetty.Buffers.IByteBufferHolder)">
<summary>
Generates the default log message of the specified event whose argument is a <see cref="T:DotNetty.Buffers.IByteBufferHolder" />.
</summary>
</member>
<member name="M:DotNetty.Handlers.Logging.LoggingHandler.FormatSimple(DotNetty.Transport.Channels.IChannelHandlerContext,System.String,System.Object)">
<summary>
Generates the default log message of the specified event whose argument is an arbitrary object.
</summary>
</member>
<member name="T:DotNetty.Handlers.Timeout.IdleState">
<summary>
An <see cref="T:System.Enum"/> that represents the idle state of a <see cref="T:DotNetty.Transport.Channels.IChannel"/>.
</summary>
</member>
<member name="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle">
<summary>
No data was received for a while.
</summary>
</member>
<member name="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle">
<summary>
No data was sent for a while.
</summary>
</member>
<member name="F:DotNetty.Handlers.Timeout.IdleState.AllIdle">
<summary>
No data was either received or sent for a while.
</summary>
</member>
<member name="T:DotNetty.Handlers.Timeout.IdleStateEvent">
<summary>
A user event triggered by <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/> when a <see cref="T:DotNetty.Transport.Channels.IChannel"/> is idle.
</summary>
</member>
<member name="M:DotNetty.Handlers.Timeout.IdleStateEvent.#ctor(DotNetty.Handlers.Timeout.IdleState,System.Boolean)">
<summary>
Constructor for sub-classes.
</summary>
<param name="state">the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> which triggered the event.</param>
<param name="first"><code>true</code> if its the first idle event for the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>.</param>
</member>
<member name="P:DotNetty.Handlers.Timeout.IdleStateEvent.State">
<summary>
Returns the idle state.
</summary>
<value>The state.</value>
</member>
<member name="P:DotNetty.Handlers.Timeout.IdleStateEvent.First">
<summary>
Returns <code>true</code> if this was the first event for the <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>
</summary>
<returns><code>true</code> if first; otherwise, <code>false</code>.</returns>
</member>
<member name="T:DotNetty.Handlers.Timeout.IdleStateHandler">
<summary>
Triggers an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> when a <see cref="T:DotNetty.Transport.Channels.IChannel"/> has not performed
read, write, or both operation for a while.
<para>
<h3>Supported idle states</h3>
<table border="1">
<tr>
<th>Property</th><th>Meaning</th>
</tr>
<tr>
<td><code>readerIdleTime</code></td>
<td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
will be triggered when no read was performed for the specified period of
time. Specify <code>0</code> to disable.
</td>
</tr>
<tr>
<td><code>writerIdleTime</code></td>
<td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
will be triggered when no write was performed for the specified period of
time. Specify <code>0</code> to disable.</td>
</tr>
<tr>
<td><code>allIdleTime</code></td>
<td>an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
will be triggered when neither read nor write was performed for the
specified period of time. Specify <code>0</code> to disable.</td>
</tr>
</table>
</para>
<para>
<example>
An example that sends a ping message when there is no outbound traffic
for 30 seconds. The connection is closed when there is no inbound traffic
for 60 seconds.
<c>
var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
bootstrap.ChildHandler(new ActionChannelInitializer&lt;ISocketChannel&gt;(channel =>
{
IChannelPipeline pipeline = channel.Pipeline;
pipeline.AddLast("idleStateHandler", new <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>(60, 30, 0);
pipeline.AddLast("myHandler", new MyHandler());
}
</c>
Handler should handle the <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> triggered by <see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>.
<c>
public class MyHandler : ChannelDuplexHandler
{
public override void UserEventTriggered(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Object"/> evt)
{
if(evt is <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>)
{
<see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> e = (<see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>) evt;
if (e.State == <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>.ReaderIdle)
{
ctx.close();
}
else if(e.State == <see cref="T:DotNetty.Handlers.Timeout.IdleState"/>.WriterIdle)
{
ctx.writeAndFlush(new PingMessage());
}
}
}
}
</c>
</example>
</para>
<seealso cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>
<seealso cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>
</summary>
</member>
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Int32,System.Int32,System.Int32)">
<summary>
Initializes a new instance firing <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>s.
</summary>
<param name="readerIdleTimeSeconds">
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
will be triggered when no read was performed for the specified
period of time. Specify <code>0</code> to disable.
</param>
<param name="writerIdleTimeSeconds">
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
will be triggered when no write was performed for the specified
period of time. Specify <code>0</code> to disable.
</param>
<param name="allIdleTimeSeconds">
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
will be triggered when neither read nor write was performed for
the specified period of time. Specify <code>0</code> to disable.
</param>
</member>
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.TimeSpan,System.TimeSpan,System.TimeSpan)">
<summary>
<see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)"/>
</summary>
</member>
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)">
<summary>
Initializes a new instance firing <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>s.
</summary>
<param name="observeOutput">
whether or not the consumption of <code>bytes</code> should be taken into
consideration when assessing write idleness. The default is <code>false</code>.
</param>
<param name="readerIdleTime">
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.ReaderIdle"/>
will be triggered when no read was performed for the specified
period of time. Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
</param>
<param name="writerIdleTime">
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.WriterIdle"/>
will be triggered when no write was performed for the specified
period of time. Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
</param>
<param name="allIdleTime">
an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> whose state is <see cref="F:DotNetty.Handlers.Timeout.IdleState.AllIdle"/>
will be triggered when neither read nor write was performed for
the specified period of time. Specify <see cref="F:System.TimeSpan.Zero"/> to disable.
</param>
</member>
<member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.ReaderIdleTime">
<summary>
Return the readerIdleTime that was given when instance this class in milliseconds.
</summary>
<returns>The reader idle time in millis.</returns>
</member>
<member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.WriterIdleTime">
<summary>
Return the writerIdleTime that was given when instance this class in milliseconds.
</summary>
<returns>The writer idle time in millis.</returns>
</member>
<member name="P:DotNetty.Handlers.Timeout.IdleStateHandler.AllIdleTime">
<summary>
Return the allIdleTime that was given when instance this class in milliseconds.
</summary>
<returns>The all idle time in millis.</returns>
</member>
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.Ticks">
<summary>
This method is visible for testing!
</summary>
<returns></returns>
</member>
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.Schedule(DotNetty.Transport.Channels.IChannelHandlerContext,System.Action{System.Object,System.Object},System.Object,System.Object,System.TimeSpan)">
<summary>
This method is visible for testing!
</summary>
<param name="ctx"></param>
<param name="task"></param>
<param name="context"></param>
<param name="state"></param>
<param name="delay"></param>
<returns></returns>
</member>
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.ChannelIdle(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Handlers.Timeout.IdleStateEvent)">
<summary>
Is called when an <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/> should be fired. This implementation calls
<see cref="M:DotNetty.Transport.Channels.IChannelHandlerContext.FireUserEventTriggered(System.Object)"/>.
</summary>
<param name="context">Context.</param>
<param name="stateEvent">Evt.</param>
</member>
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.NewIdleStateEvent(DotNetty.Handlers.Timeout.IdleState,System.Boolean)">
<summary>
Returns a <see cref="T:DotNetty.Handlers.Timeout.IdleStateEvent"/>.
</summary>
<param name="state"></param>
<param name="first"></param>
<returns></returns>
</member>
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.InitOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext)">
<summary>
<see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.HasOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext,System.Boolean)"/>
</summary>
<param name="ctx"></param>
</member>
<member name="M:DotNetty.Handlers.Timeout.IdleStateHandler.HasOutputChanged(DotNetty.Transport.Channels.IChannelHandlerContext,System.Boolean)">
<summary>
Returns <code>true</code> if and only if the <see cref="M:DotNetty.Handlers.Timeout.IdleStateHandler.#ctor(System.Boolean,System.TimeSpan,System.TimeSpan,System.TimeSpan)"/>
was constructed
with <code>observeOutput</code> enabled and there has been an observed change in the
<see cref="T:DotNetty.Transport.Channels.ChannelOutboundBuffer"/> between two consecutive calls of this method.
https://github.com/netty/netty/issues/6150
</summary>
<param name="ctx"></param>
<param name="first"></param>
<returns></returns>
</member>
<member name="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler">
<summary>
Raises a <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutException"/> when no data was read within a certain
period of time.
<pre>
The connection is closed when there is no inbound traffic
for 30 seconds.
<example>
<c>
var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
bootstrap.ChildHandler(new ActionChannelInitializer&lt;ISocketChannel&gt;(channel =>
{
IChannelPipeline pipeline = channel.Pipeline;
pipeline.AddLast("readTimeoutHandler", new <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>(30);
pipeline.AddLast("myHandler", new MyHandler());
}
</c>
<c>
public class MyHandler : ChannelDuplexHandler
{
public override void ExceptionCaught(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Exception"/> exception)
{
if(exception is <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutException"/>)
{
// do somethind
}
else
{
base.ExceptionCaught(context, cause);
}
}
}
</c>
</example>
</pre>
<seealso cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>
<seealso cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>
</summary>
</member>
<member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
</summary>
<param name="timeoutSeconds">Timeout in seconds.</param>
</member>
<member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.#ctor(System.TimeSpan)">
<summary>
Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
</summary>
<param name="timeout">Timeout.</param>
</member>
<member name="M:DotNetty.Handlers.Timeout.ReadTimeoutHandler.ReadTimedOut(DotNetty.Transport.Channels.IChannelHandlerContext)">
<summary>
Is called when a read timeout was detected.
</summary>
<param name="context">Context.</param>
</member>
<member name="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler">
<summary>
Raises a <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutException"/> when a write operation cannot finish in a certain period of time.
<para>
<example>
The connection is closed when a write operation cannot finish in 30 seconds.
<c>
var bootstrap = new <see cref="T:DotNetty.Transport.Bootstrapping.ServerBootstrap"/>();
bootstrap.ChildHandler(new ActionChannelInitializer&lt;ISocketChannel&gt;(channel =>
{
IChannelPipeline pipeline = channel.Pipeline;
pipeline.AddLast("writeTimeoutHandler", new <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutHandler"/>(30);
pipeline.AddLast("myHandler", new MyHandler());
}
</c>
<c>
public class MyHandler : ChannelDuplexHandler
{
public override void ExceptionCaught(<see cref="T:DotNetty.Transport.Channels.IChannelHandlerContext"/> context, <see cref="T:System.Exception"/> exception)
{
if(exception is <see cref="T:DotNetty.Handlers.Timeout.WriteTimeoutException"/>)
{
// do somethind
}
else
{
base.ExceptionCaught(context, cause);
}
}
}
</c>
</example>
</para>
<see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/>
<see cref="T:DotNetty.Handlers.Timeout.IdleStateHandler"/>
</summary>
</member>
<member name="F:DotNetty.Handlers.Timeout.WriteTimeoutHandler.tasks">
<summary>
A doubly-linked list to track all WriteTimeoutTasks.
</summary>
</member>
<member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
</summary>
<param name="timeoutSeconds">Timeout in seconds.</param>
</member>
<member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.#ctor(System.TimeSpan)">
<summary>
Initializes a new instance of the <see cref="T:DotNetty.Handlers.Timeout.ReadTimeoutHandler"/> class.
</summary>
<param name="timeout">Timeout.</param>
</member>
<member name="M:DotNetty.Handlers.Timeout.WriteTimeoutHandler.WriteTimedOut(DotNetty.Transport.Channels.IChannelHandlerContext)">
<summary>
Is called when a write timeout was detected
</summary>
<param name="context">Context.</param>
</member>
<member name="T:DotNetty.Handlers.Tls.NotSslRecordException">
<summary>
Special exception which will get thrown if a packet is
received that not looks like a TLS/SSL record. A user can check for
this <see cref="T:DotNetty.Handlers.Tls.NotSslRecordException" /> and so detect if one peer tries to
use secure and the other plain connection.
</summary>
</member>
<member name="M:DotNetty.Handlers.Tls.TlsHandler.Unwrap(DotNetty.Transport.Channels.IChannelHandlerContext,DotNetty.Buffers.IByteBuffer,System.Int32,System.Int32,System.Collections.Generic.List{System.ValueTuple{System.Int32,System.Byte}},System.Collections.Generic.List{System.Object})">
<summary>Unwraps inbound SSL records.</summary>
</member>
<member name="M:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.#ctor">
<summary>
Creates a new event that indicates a successful handshake.
</summary>
</member>
<member name="M:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.#ctor(System.Exception)">
<summary>
Creates a new event that indicates an unsuccessful handshake.
Use {@link #SUCCESS} to indicate a successful handshake.
</summary>
</member>
<member name="P:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.IsSuccessful">
<summary>
Return {@code true} if the handshake was successful
</summary>
</member>
<member name="P:DotNetty.Handlers.Tls.TlsHandshakeCompletionEvent.Exception">
<summary>
Return the {@link Throwable} if {@link #isSuccess()} returns {@code false}
and so the handshake failed.
</summary>
</member>
<member name="T:DotNetty.Handlers.Tls.TlsUtils">
Utilities for TLS packets.
</member>
<member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_CHANGE_CIPHER_SPEC">
change cipher spec
</member>
<member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_ALERT">
alert
</member>
<member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_HANDSHAKE">
handshake
</member>
<member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_CONTENT_TYPE_APPLICATION_DATA">
application data
</member>
<member name="F:DotNetty.Handlers.Tls.TlsUtils.SSL_RECORD_HEADER_LENGTH">
the length of the ssl record header (in bytes)
</member>
<member name="M:DotNetty.Handlers.Tls.TlsUtils.GetEncryptedPacketLength(DotNetty.Buffers.IByteBuffer,System.Int32,System.Byte@)">
<summary>
Return how much bytes can be read out of the encrypted data. Be aware that this method will not increase
the readerIndex of the given <see cref="T:DotNetty.Buffers.IByteBuffer"/>.
</summary>
<param name="buffer">
The <see cref="T:DotNetty.Buffers.IByteBuffer"/> to read from. Be aware that it must have at least
<see cref="F:DotNetty.Handlers.Tls.TlsUtils.SSL_RECORD_HEADER_LENGTH"/> bytes to read,
otherwise it will throw an <see cref="T:System.ArgumentException"/>.
</param>
<param name="offset">Offset to record start.</param>
<returns>
The length of the encrypted packet that is included in the buffer. This will
return <c>-1</c> if the given <see cref="T:DotNetty.Buffers.IByteBuffer"/> is not encrypted at all.
</returns>
</member>
</members>
</doc>

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: a61e68d64f6b7a841860081180e17735
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>DotNetty.Transport</id>
<version>0.7.6</version>
<authors>Microsoft</authors>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<projectUrl>https://github.com/Azure/DotNetty/</projectUrl>
<description>Transport model in DotNetty</description>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<tags>socket tcp udp protocol netty dotnetty network</tags>
<repository type="git" url="https://github.com/Azure/DotNetty/" />
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
</group>
<group targetFramework="net5.0">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
</group>
<group targetFramework="net6.0">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
</group>
<group targetFramework=".NETStandard2.0">
<dependency id="DotNetty.Buffers" version="0.7.6" exclude="Build,Analyzers" />
<dependency id="DotNetty.Common" version="0.7.6" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: b11effb35b751f5478c72d4063f5a34e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 6fe70d45e4b6df247adc82ecf2f02dd2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 8cf27e33a2a695446ac3045d57b5aa93
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,23 +0,0 @@
fileFormatVersion: 2
guid: d0118675b90bf1540bfe0c3ee305c533
labels:
- NuGetForUnity
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 675b022c45ec31f48813c987c8e9f8ac
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8f9f30b201fdf2c4aa6a62aca6e762ce
guid: 2a9f87a1b86edd84282f701744de2b91
folderAsset: yes
DefaultImporter:
externalObjects: {}

Binary file not shown.

View File

@ -2,16 +2,16 @@
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>Google.Protobuf</id>
<version>3.27.3</version>
<version>3.18.3</version>
<authors>Google Inc.</authors>
<license type="expression">BSD-3-Clause</license>
<licenseUrl>https://licenses.nuget.org/BSD-3-Clause</licenseUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<licenseUrl>https://github.com/protocolbuffers/protobuf/blob/master/LICENSE</licenseUrl>
<projectUrl>https://github.com/protocolbuffers/protobuf</projectUrl>
<description>C# runtime library for Protocol Buffers - Google's data interchange format.</description>
<releaseNotes>C# proto3 support</releaseNotes>
<copyright>Copyright 2015, Google Inc.</copyright>
<tags>Protocol Buffers Binary Serialization Format Google proto proto3</tags>
<repository type="git" url="https://github.com/protocolbuffers/protobuf.git" commit="7cc670c1809e704ebeba90fb430d50e009f36727" />
<repository type="git" url="https://github.com/protocolbuffers/protobuf.git" commit="023bbeae9ea3330a06101feeadf89810d9a61abe" />
<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="System.Memory" version="4.5.3" exclude="Build,Analyzers" />

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e3a299f96af792447bc8dd7508decef8
guid: 374dddb28553cc742b383525730a76e7
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ed0ad94bf4f19d6419b95c2353d4fb12
guid: 8e923523582ba9d42a3029ddf4188f14
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 92112220d5f304f4cb8d2003d6ee3cbf
guid: 51c38cc887608a740a2488ea9566cc82
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 214756d1acbb5c3488c678d4d31af568
guid: fff138f2a3dd35a4daef5b5e7b7369a5
labels:
- NuGetForUnity
PluginImporter:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c1026b3961f55e04aae143f54982d70c
guid: 510eba593b06e8242a0717b261d53988
TextScriptImporter:
externalObjects: {}
userData:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 1df3b6cde8a33a041995563086f4177c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: bb2928bb20098754b94439f41ad67bcd
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: ba448250acf908e4dab937db2e10e421
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 40e665da0e4aa7547910d8133771dc25
guid: f18a784ff4b1ec74583805c041963783
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c30d2ab3dd57bd24ea55506561525107
guid: 8635ea0599e1d1843aa02d572c2f3a73
TextureImporter:
internalIDToNameTable: []
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f1becbe4520be8a4ea8be7a825f001da
guid: 764e9a3a9bdd10847939d64f07151398
TextScriptImporter:
externalObjects: {}
userData:

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>Microsoft.Bcl.AsyncInterfaces</id>
<version>6.0.0</version>
<authors>Microsoft</authors>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<icon>Icon.png</icon>
<projectUrl>https://dot.net/</projectUrl>
<description>Provides the IAsyncEnumerable&lt;T&gt; and IAsyncDisposable interfaces and helper types for .NET Standard 2.0. This package is not required starting with .NET Standard 2.1 and .NET Core 3.0.
Commonly Used Types:
System.IAsyncDisposable
System.Collections.Generic.IAsyncEnumerable
System.Collections.Generic.IAsyncEnumerator</description>
<releaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</releaseNotes>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<serviceable>true</serviceable>
<repository type="git" url="https://github.com/dotnet/runtime" commit="4822e3c3aa77eb82b2fb33c9321f923cf11ddde6" />
<dependencies>
<group targetFramework=".NETFramework4.6.1">
<dependency id="System.Threading.Tasks.Extensions" version="4.5.4" exclude="Build,Analyzers" />
</group>
<group targetFramework=".NETStandard2.0">
<dependency id="System.Threading.Tasks.Extensions" version="4.5.4" exclude="Build,Analyzers" />
</group>
<group targetFramework=".NETStandard2.1" />
</dependencies>
</metadata>
</package>

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1f7a4920d27beae49bb9a4f0447fa6a0
guid: 65648c05f2458f140b887fb3a5d6828b
DefaultImporter:
externalObjects: {}
userData:

View File

@ -15,9 +15,9 @@ Copyright (c) .NET Foundation. All rights reserved.
Licensed under the Apache License, Version 2.0.
Available at
https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt
https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt
License notice for Slicing-by-8
License notice for Slicing-by-8
-------------------------------
http://sourceforge.net/projects/slicing-by-8/
@ -66,7 +66,7 @@ shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.
License notice for Zlib
License notice for Zlib
-----------------------
https://github.com/madler/zlib
@ -117,12 +117,12 @@ furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License notice for International Organization for Standardization
@ -232,7 +232,7 @@ noted) — feel free to use them however you please. The aggregate collection an
descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are
distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and
without even the implied warranty of merchantability or fitness for a particular
purpose.
purpose.
License notice for Brotli
--------------------------------------
@ -378,7 +378,7 @@ License notice for RFC 3492
---------------------------
The punycode implementation is based on the sample code in RFC 3492
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
@ -448,7 +448,7 @@ ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE.
License notice for Algorithm from RFC 4122 -
License notice for Algorithm from RFC 4122 -
A Universally Unique IDentifier (UUID) URN Namespace
----------------------------------------------------
@ -517,8 +517,8 @@ License notice for Greg Parker
------------------------------
Greg Parker gparker@cs.stanford.edu December 2000
This code is in the public domain and may be copied or modified without
permission.
This code is in the public domain and may be copied or modified without
permission.
License notice for libunwind based code
----------------------------------------
@ -548,23 +548,23 @@ License notice for Printing Floating-Point Numbers (Dragon4)
/******************************************************************************
Copyright (c) 2014 Ryan Juckett
http://www.ryanjuckett.com/
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
******************************************************************************/
@ -669,24 +669,18 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License notice for Xorshift RNGs
License notice for xoshiro RNGs
--------------------------------
George Marsaglia
2003-07-04
Journal of Statistical Software
License: http://creativecommons.org/licenses/by/3.0/
Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org)
https://www.jstatsoft.org/article/view/v008i14
https://www.jstatsoft.org/index.php/jss/article/view/v008i14/xorshift.pdf
To the extent possible under law, the author has dedicated all copyright
and related and neighboring rights to this software to the public domain
worldwide. This software is distributed without any warranty.
License notice for Xorshift (Wikipedia)
---------------------------------------
See <http://creativecommons.org/publicdomain/zero/1.0/>.
https://en.wikipedia.org/wiki/Xorshift
License: https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License
License for fastmod (https://github.com/lemire/fastmod)
License for fastmod (https://github.com/lemire/fastmod) and ibm-fpgen (https://github.com/nigeltao/parse-number-fxx-test-data)
--------------------------------------
Copyright 2018 Daniel Lemire
@ -882,3 +876,64 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
License notice for musl
-----------------------
musl as a whole is licensed under the following standard MIT license:
Copyright © 2005-2020 Rich Felker, et al.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License notice for "Faster Unsigned Division by Constants"
------------------------------
Reference implementations of computing and using the "magic number" approach to dividing
by constants, including codegen instructions. The unsigned division incorporates the
"round down" optimization per ridiculous_fish.
This is free and unencumbered software. Any copyright is dedicated to the Public Domain.
License notice for mimalloc
-----------------------------------
MIT License
Copyright (c) 2019 Microsoft Corporation, Daan Leijen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b778b798cde78674aaf25f8e44616c32
guid: b96198fc5433e364b8a5e3f3fa74eab9
TextScriptImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8811b63ca6e395141a09b05c4ba64f9d
guid: e09954f3bd77bbe46ae7f10a32927fb4
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6c6cd7b89b408cd4fa0b75e93877335e
guid: 62558022e8fd02948a22b4d6e13977e8
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8a5534e1c4c1ff146834ce7dc06b1c94
guid: db13e74890243e247b396d6940f0fe8b
labels:
- NuGetForUnity
PluginImporter:

View File

@ -0,0 +1,8 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Microsoft.Bcl.AsyncInterfaces</name>
</assembly>
<members>
</members>
</doc>

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 42f40e4bfbbee9b4f9a0eeaf706c7ebb
guid: 6a7fb55024821244a95e0bc195ac2967
TextScriptImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ee73c8ef1a521144091f23aebfaeb0ec
guid: ae49b417af213104aac86205bceee2c6
TextScriptImporter:
externalObjects: {}
userData:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: b8055523db692be488861299414f1b8d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,51 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata minClientVersion="2.12">
<id>Microsoft.Extensions.DependencyInjection</id>
<version>5.0.0</version>
<title>Microsoft.Extensions.DependencyInjection</title>
<authors>Microsoft</authors>
<owners>microsoft,dotnetframework</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<icon>Icon.png</icon>
<projectUrl>https://github.com/dotnet/runtime</projectUrl>
<iconUrl>http://go.microsoft.com/fwlink/?LinkID=288859</iconUrl>
<description>Default implementation of dependency injection for Microsoft.Extensions.DependencyInjection.
When using NuGet 3.x this package requires at least version 3.4.</description>
<releaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</releaseNotes>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<serviceable>true</serviceable>
<repository type="git" url="git://github.com/dotnet/runtime" commit="cf258a14b70ad9069470a108f13765e0e5988f51" />
<dependencies>
<group targetFramework=".NETFramework4.6.1">
<dependency id="Microsoft.Bcl.AsyncInterfaces" version="5.0.0" />
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="5.0.0" />
<dependency id="System.Threading.Tasks.Extensions" version="4.5.4" />
</group>
<group targetFramework=".NETCoreApp5.0">
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="5.0.0" />
</group>
<group targetFramework=".NETCoreApp2.1">
<dependency id="Microsoft.Bcl.AsyncInterfaces" version="5.0.0" />
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="5.0.0" />
</group>
<group targetFramework=".NETCoreApp3.0">
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="5.0.0" />
</group>
<group targetFramework=".NETStandard2.0">
<dependency id="Microsoft.Bcl.AsyncInterfaces" version="5.0.0" />
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="5.0.0" />
<dependency id="System.Threading.Tasks.Extensions" version="4.5.4" />
</group>
<group targetFramework=".NETStandard2.1">
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="5.0.0" />
</group>
</dependencies>
<frameworkAssemblies>
<frameworkAssembly assemblyName="mscorlib" targetFramework=".NETFramework4.6.1" />
<frameworkAssembly assemblyName="System.Core" targetFramework=".NETFramework4.6.1" />
</frameworkAssemblies>
</metadata>
</package>

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 70bd11752ae1ea8429b475eaba069eb1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: eea8b01a59baf4044ae509b0525db942
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More