From fbccde859f71752e10cff4f74861a509de6d658b Mon Sep 17 00:00:00 2001 From: SnowShow Date: Tue, 22 Apr 2025 15:31:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B6=E4=BD=99=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BuildCLI/build_android.bat | 9 + BuildCLI/build_android.sh | 18 + BuildCLI/path_define.bat | 6 + BuildCLI/path_define.sh | 14 + .../GameConfig/CustomTemplate/ConfigSystem.cs | 50 + .../cs-bin/tables.sbn | 55 + Configs/GameConfig/Datas/Scene/gameScene.xlsx | Bin 0 -> 11883 bytes Configs/GameConfig/Datas/UI/gameUILoad.xlsx | Bin 0 -> 11862 bytes Configs/GameConfig/Datas/UI/gameUITip.xlsx | Bin 0 -> 11875 bytes Configs/GameConfig/Datas/UI/gameUIWidget.xlsx | Bin 0 -> 11952 bytes .../GameConfig/Datas/UI/gameUIWindows.xlsx | Bin 0 -> 12027 bytes Configs/GameConfig/Datas/__beans__.xlsx | Bin 0 -> 10144 bytes Configs/GameConfig/Datas/__enums__.xlsx | Bin 0 -> 10505 bytes Configs/GameConfig/Datas/__tables__.xlsx | Bin 0 -> 9869 bytes Configs/GameConfig/Datas/item.xlsx | Bin 0 -> 11214 bytes Configs/GameConfig/Datas/roleUnit.xlsx | Bin 0 -> 11950 bytes Configs/GameConfig/Defines/builtin.xml | 17 + .../GameConfig/gen_code_bin_to_project.bat | 20 + Configs/GameConfig/gen_code_bin_to_project.sh | 24 + .../gen_code_bin_to_project_lazyload.bat | 21 + .../gen_code_bin_to_project_lazyload.sh | 25 + Configs/GameConfig/gen_code_bin_to_server.bat | 18 + Configs/GameConfig/gen_code_bin_to_server.sh | 21 + Configs/GameConfig/luban.conf | 22 + .../.idea/CopilotChatHistory.xml | 15 + .../.idea.GameServer/.idea/encodings.xml | 4 + .../.idea.GameServer/.idea/indexLayout.xml | 8 + .../.idea/projectSettingsUpdater.xml | 6 + .../.idea/.idea.GameServer/.idea/vcs.xml | 6 + .../.idea.GameServer/.idea/workspace.xml | 462 +++ .../Server..2025033117.Debug.log | 14 + .../Server..2025033117.Info.log | 15 + .../Server..2025033117.Warn.log | 2 + .../Server..2025040213.Debug.log | 63 + .../Server..2025040213.Error.log | 20 + .../Server..2025040213.Info.log | 48 + .../Server..2025040213.Warn.log | 6 + .../Server..2025040214.Debug.log | 31 + .../Server..2025040214.Error.log | 24 + .../Server..2025040214.Info.log | 18 + .../Server..2025040214.Warn.log | 5 + .../Server..2025040216.Debug.log | 10 + .../Server..2025040216.Error.log | 18 + .../Server..2025040216.Info.log | 18 + .../Server..2025040216.Warn.log | 1 + .../Server..2025040217.Debug.log | 36 + .../Server..2025040217.Error.log | 31 + .../Server..2025040217.Info.log | 45 + .../Server..2025040217.Warn.log | 5 + .../Server..2025041018.Debug.log | 10 + .../Server..2025041018.Info.log | 15 + .../Server..2025041018.Warn.log | 7 + .../Server..2025041115.Debug.log | 106 + .../Server..2025041115.Error.log | 762 ++++ .../Server..2025041115.Info.log | 121 + .../Server..2025041115.Warn.log | 11 + .../Server..2025041116.Debug.log | 63 + .../Server..2025041116.Error.log | 23 + .../Server..2025041116.Info.log | 60 + .../Server..2025041116.Warn.log | 5 + GameServer/Bin/Debug/net9.0/APlugins.dll | Bin 0 -> 3584 bytes GameServer/Bin/Debug/net9.0/APlugins.pdb | Bin 0 -> 20704 bytes GameServer/Bin/Debug/net9.0/CommandLine.dll | Bin 0 -> 225280 bytes GameServer/Bin/Debug/net9.0/DnsClient.dll | Bin 0 -> 154112 bytes GameServer/Bin/Debug/net9.0/Entity.dll | Bin 0 -> 44544 bytes GameServer/Bin/Debug/net9.0/Entity.pdb | Bin 0 -> 38748 bytes .../Bin/Debug/net9.0/Fantasy-Net.Config.dll | Bin 0 -> 5632 bytes .../Debug/net9.0/Fantasy-Net.ConfigTable.dll | Bin 0 -> 8704 bytes .../Bin/Debug/net9.0/Fantasy-Net.NLog.dll | Bin 0 -> 7168 bytes GameServer/Bin/Debug/net9.0/Fantasy-Net.dll | Bin 0 -> 543232 bytes .../Fantasy.Tools.ExporterConfigTable.dll | Bin 0 -> 5632 bytes .../Fantasy.Tools.ExporterNetworkProtocol.dll | Bin 0 -> 5632 bytes GameServer/Bin/Debug/net9.0/Hotfix.dll | Bin 0 -> 57856 bytes GameServer/Bin/Debug/net9.0/Hotfix.pdb | Bin 0 -> 37356 bytes GameServer/Bin/Debug/net9.0/Main.deps.json | 578 +++ GameServer/Bin/Debug/net9.0/Main.dll | Bin 0 -> 7680 bytes GameServer/Bin/Debug/net9.0/Main.exe | Bin 0 -> 147456 bytes GameServer/Bin/Debug/net9.0/Main.pdb | Bin 0 -> 21812 bytes .../Bin/Debug/net9.0/Main.runtimeconfig.json | 18 + .../Microsoft.IdentityModel.Abstractions.dll | Bin 0 -> 19512 bytes .../Microsoft.IdentityModel.JsonWebTokens.dll | Bin 0 -> 166944 bytes .../Microsoft.IdentityModel.Logging.dll | Bin 0 -> 36920 bytes .../net9.0/Microsoft.IdentityModel.Tokens.dll | Bin 0 -> 367672 bytes GameServer/Bin/Debug/net9.0/MongoDB.Bson.dll | Bin 0 -> 533504 bytes .../Bin/Debug/net9.0/MongoDB.Driver.dll | Bin 0 -> 2422272 bytes GameServer/Bin/Debug/net9.0/NLog.config | 91 + GameServer/Bin/Debug/net9.0/NLog.dll | Bin 0 -> 953344 bytes GameServer/Bin/Debug/net9.0/NLog.xsd | 3483 +++++++++++++++++ .../Bin/Debug/net9.0/Newtonsoft.Json.dll | Bin 0 -> 712464 bytes GameServer/Bin/Debug/net9.0/SharpCompress.dll | Bin 0 -> 546304 bytes GameServer/Bin/Debug/net9.0/Snappier.dll | Bin 0 -> 40448 bytes .../System.IdentityModel.Tokens.Jwt.dll | Bin 0 -> 91680 bytes GameServer/Bin/Debug/net9.0/ZstdSharp.dll | Bin 0 -> 406016 bytes .../Bin/Debug/net9.0/protobuf-net.Core.dll | Bin 0 -> 300032 bytes GameServer/Bin/Debug/net9.0/protobuf-net.dll | Bin 0 -> 285184 bytes .../Server..2025032516.Debug.log | 4 + .../Server..2025032516.Error.log | 21 + .../Server..2025032516.Info.log | 13 + GameServer/Bin/Release/net9.0/APlugins.dll | Bin 0 -> 3584 bytes GameServer/Bin/Release/net9.0/APlugins.pdb | Bin 0 -> 20700 bytes GameServer/Bin/Release/net9.0/CommandLine.dll | Bin 0 -> 225280 bytes GameServer/Bin/Release/net9.0/DnsClient.dll | Bin 0 -> 154112 bytes GameServer/Bin/Release/net9.0/Entity.dll | Bin 0 -> 36864 bytes GameServer/Bin/Release/net9.0/Entity.pdb | Bin 0 -> 34232 bytes .../Bin/Release/net9.0/Fantasy-Net.Config.dll | Bin 0 -> 5632 bytes .../net9.0/Fantasy-Net.ConfigTable.dll | Bin 0 -> 8704 bytes .../Bin/Release/net9.0/Fantasy-Net.NLog.dll | Bin 0 -> 7168 bytes GameServer/Bin/Release/net9.0/Fantasy-Net.dll | Bin 0 -> 543232 bytes .../Fantasy.Tools.ExporterConfigTable.dll | Bin 0 -> 5632 bytes .../Fantasy.Tools.ExporterNetworkProtocol.dll | Bin 0 -> 5632 bytes GameServer/Bin/Release/net9.0/Hotfix.dll | Bin 0 -> 42496 bytes GameServer/Bin/Release/net9.0/Hotfix.pdb | Bin 0 -> 31696 bytes GameServer/Bin/Release/net9.0/Main.deps.json | 578 +++ GameServer/Bin/Release/net9.0/Main.dll | Bin 0 -> 7680 bytes GameServer/Bin/Release/net9.0/Main.exe | Bin 0 -> 146944 bytes GameServer/Bin/Release/net9.0/Main.pdb | Bin 0 -> 21696 bytes .../Release/net9.0/Main.runtimeconfig.json | 19 + .../Microsoft.IdentityModel.Abstractions.dll | Bin 0 -> 19512 bytes .../Microsoft.IdentityModel.JsonWebTokens.dll | Bin 0 -> 166944 bytes .../Microsoft.IdentityModel.Logging.dll | Bin 0 -> 36920 bytes .../net9.0/Microsoft.IdentityModel.Tokens.dll | Bin 0 -> 365600 bytes .../Bin/Release/net9.0/MongoDB.Bson.dll | Bin 0 -> 533504 bytes .../Bin/Release/net9.0/MongoDB.Driver.dll | Bin 0 -> 2422272 bytes GameServer/Bin/Release/net9.0/NLog.config | 91 + GameServer/Bin/Release/net9.0/NLog.dll | Bin 0 -> 953344 bytes GameServer/Bin/Release/net9.0/NLog.xsd | 3483 +++++++++++++++++ .../Bin/Release/net9.0/Newtonsoft.Json.dll | Bin 0 -> 712464 bytes .../Bin/Release/net9.0/SharpCompress.dll | Bin 0 -> 546304 bytes GameServer/Bin/Release/net9.0/Snappier.dll | Bin 0 -> 40448 bytes .../System.IdentityModel.Tokens.Jwt.dll | Bin 0 -> 91680 bytes GameServer/Bin/Release/net9.0/ZstdSharp.dll | Bin 0 -> 406016 bytes .../Bin/Release/net9.0/linux-x64/APlugins.dll | Bin 0 -> 3584 bytes .../Bin/Release/net9.0/linux-x64/APlugins.pdb | Bin 0 -> 20700 bytes .../Release/net9.0/linux-x64/CommandLine.dll | Bin 0 -> 225280 bytes .../Release/net9.0/linux-x64/DnsClient.dll | Bin 0 -> 154112 bytes .../Bin/Release/net9.0/linux-x64/Entity.dll | Bin 0 -> 36864 bytes .../Bin/Release/net9.0/linux-x64/Entity.pdb | Bin 0 -> 34232 bytes .../net9.0/linux-x64/Fantasy-Net.Config.dll | Bin 0 -> 5632 bytes .../linux-x64/Fantasy-Net.ConfigTable.dll | Bin 0 -> 8704 bytes .../net9.0/linux-x64/Fantasy-Net.NLog.dll | Bin 0 -> 7168 bytes .../Release/net9.0/linux-x64/Fantasy-Net.dll | Bin 0 -> 543232 bytes .../Fantasy.Tools.ExporterConfigTable.dll | Bin 0 -> 5632 bytes .../Fantasy.Tools.ExporterNetworkProtocol.dll | Bin 0 -> 5632 bytes .../Bin/Release/net9.0/linux-x64/Hotfix.dll | Bin 0 -> 42496 bytes .../Bin/Release/net9.0/linux-x64/Hotfix.pdb | Bin 0 -> 31696 bytes GameServer/Bin/Release/net9.0/linux-x64/Main | Bin 0 -> 75144 bytes .../Release/net9.0/linux-x64/Main.deps.json | 579 +++ .../Bin/Release/net9.0/linux-x64/Main.dll | Bin 0 -> 7168 bytes .../Bin/Release/net9.0/linux-x64/Main.pdb | Bin 0 -> 21708 bytes .../net9.0/linux-x64/Main.runtimeconfig.json | 19 + .../Microsoft.IdentityModel.Abstractions.dll | Bin 0 -> 19512 bytes .../Microsoft.IdentityModel.JsonWebTokens.dll | Bin 0 -> 166944 bytes .../Microsoft.IdentityModel.Logging.dll | Bin 0 -> 36920 bytes .../Microsoft.IdentityModel.Tokens.dll | Bin 0 -> 365600 bytes .../Release/net9.0/linux-x64/MongoDB.Bson.dll | Bin 0 -> 533504 bytes .../net9.0/linux-x64/MongoDB.Driver.dll | Bin 0 -> 2422272 bytes .../Bin/Release/net9.0/linux-x64/NLog.config | 91 + .../Bin/Release/net9.0/linux-x64/NLog.dll | Bin 0 -> 953344 bytes .../Bin/Release/net9.0/linux-x64/NLog.xsd | 3483 +++++++++++++++++ .../net9.0/linux-x64/Newtonsoft.Json.dll | Bin 0 -> 712464 bytes .../net9.0/linux-x64/SharpCompress.dll | Bin 0 -> 546304 bytes .../Bin/Release/net9.0/linux-x64/Snappier.dll | Bin 0 -> 40448 bytes .../System.IdentityModel.Tokens.Jwt.dll | Bin 0 -> 91680 bytes .../Release/net9.0/linux-x64/ZstdSharp.dll | Bin 0 -> 406016 bytes .../net9.0/linux-x64/protobuf-net.Core.dll | Bin 0 -> 300032 bytes .../Release/net9.0/linux-x64/protobuf-net.dll | Bin 0 -> 285184 bytes .../Bin/Release/net9.0/protobuf-net.Core.dll | Bin 0 -> 300032 bytes .../Bin/Release/net9.0/protobuf-net.dll | Bin 0 -> 285184 bytes .../Bin/Release/net9.0/新建 文本文档.txt | 0 .../Config/Binary/MachineConfigData.bytes | 2 + .../Config/Binary/ProcessConfigData.bytes | 2 + .../Config/Binary/SceneConfigData.bytes | 6 + GameServer/Config/Binary/UnitConfigData.bytes | 4 + .../Config/Binary/WorldConfigData.bytes | 2 + GameServer/Config/Excel/Custom.txt | 1 + .../Config/Excel/Server/MachineConfig.xlsx | Bin 0 -> 9715 bytes .../Config/Excel/Server/ProcessConfig.xlsx | Bin 0 -> 9794 bytes .../Config/Excel/Server/SceneConfig.xlsx | Bin 0 -> 17013 bytes .../Config/Excel/Server/WorldConfig.xlsx | Bin 0 -> 9873 bytes GameServer/Config/Excel/UnitConfig.xlsx | Bin 0 -> 9870 bytes GameServer/Config/Excel/Version.txt | 1 + .../Config/Json/Server/MachineConfigData.Json | 3 + .../Config/Json/Server/ProcessConfigData.Json | 3 + .../Config/Json/Server/SceneConfigData.Json | 7 + .../Config/Json/Server/UnitConfigData.Json | 3 + .../Config/Json/Server/WorldConfigData.Json | 3 + .../NetworkProtocol/Inner/InnerMessage.proto | 104 + .../Config/NetworkProtocol/OpCode.Cache | 1 + .../NetworkProtocol/Outer/OuterMessage.proto | 243 ++ .../Config/NetworkProtocol/RouteType.Config | 3 + .../Console/Fantasy.Console.Entity/Entry.cs | 72 + .../Fantasy.Console.Entity.csproj | 13 + .../NetworkProtocol/OuterMessage.cs | 271 ++ .../NetworkProtocol/OuterMessage.cs.meta | 11 + .../NetworkProtocol/OuterOpcode.cs | 19 + .../NetworkProtocol/OuterOpcode.cs.meta | 11 + .../NetworkProtocol/RouteType.cs | 9 + .../NetworkProtocol/RouteType.cs.meta | 11 + .../Fantasy.Console.Main/ConsoleLog.cs | 138 + .../Fantasy.Console.Main.csproj | 14 + .../Console/Fantasy.Console.Main/Program.cs | 10 + GameServer/Console/Fantasy.Console.sln | 28 + .../Fantasy.Console.sln.DotSettings.user | 3 + GameServer/Main/Main.csproj | 10 + GameServer/Main/Program.cs | 3 + ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../obj/Debug/net9.0/Main.AssemblyInfo.cs | 23 + .../net9.0/Main.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../obj/Debug/net9.0/Main.GlobalUsings.g.cs | 8 + .../Main/obj/Debug/net9.0/Main.assets.cache | Bin 0 -> 160 bytes .../Main/obj/Main.csproj.nuget.dgspec.json | 68 + GameServer/Main/obj/Main.csproj.nuget.g.props | 15 + .../Main/obj/Main.csproj.nuget.g.targets | 2 + GameServer/Main/obj/project.assets.json | 73 + GameServer/Main/obj/project.nuget.cache | 8 + GameServer/Main/obj/project.packagespec.json | 1 + .../Main/obj/rider.project.model.nuget.info | 1 + .../Main/obj/rider.project.restore.info | 1 + .../.idea/.idea.GameServer/.idea/.gitignore | 13 + .../Server/.idea/.idea.GameServer/.idea/.name | 1 + .../.idea/CopilotChatHistory.xml | 45 + .../.idea.GameServer/.idea/deployment.xml | 16 + .../.idea.GameServer/.idea/encodings.xml | 4 + .../.idea.GameServer/.idea/indexLayout.xml | 11 + .../.idea.GameServer/.idea/sshConfigs.xml | 8 + .../.idea/.idea.GameServer/.idea/vcs.xml | 6 + .../.idea.GameServer/.idea/webServers.xml | 14 + .../GameServer/DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 226002 bytes ...02337ab6-ac65-4c33-aba9-0a893e08a6fd.vsidx | Bin 0 -> 107 bytes ...e7946b6b-af37-4064-bfde-5bf32f813bd6.vsidx | Bin 0 -> 142538 bytes ...f09d1882-9418-4756-a216-6f48af18b13e.vsidx | Bin 0 -> 1141 bytes .../Server/.vs/GameServer/v17/.futdcache.v2 | Bin 0 -> 1036 bytes GameServer/Server/.vs/GameServer/v17/.suo | Bin 0 -> 36352 bytes .../GameServer/v17/DocumentLayout.backup.json | 31 + .../.vs/GameServer/v17/DocumentLayout.json | 31 + .../gameserver.metadata.v9.bin | Bin 0 -> 2157 bytes .../gameserver.projects.v9.bin | Bin 0 -> 103580 bytes .../gameserver.strings.v9.bin | Bin 0 -> 141549 bytes GameServer/Server/APlugins/APlugins.csproj | 18 + .../Exporter/ConfigTable/CommandLine.dll | Bin 0 -> 225280 bytes .../ConfigTable/EPPlus.Interfaces.dll | Bin 0 -> 6656 bytes .../ConfigTable/EPPlus.System.Drawing.dll | Bin 0 -> 7680 bytes .../Tools/Exporter/ConfigTable/EPPlus.dll | Bin 0 -> 3745280 bytes .../Exporter/ConfigTable/Excel/Custom.txt | 1 + .../Excel/Server/MachineConfig.xlsx | Bin 0 -> 10108 bytes .../Excel/Server/ProcessConfig.xlsx | Bin 0 -> 10189 bytes .../ConfigTable/Excel/Server/SceneConfig.xlsx | Bin 0 -> 18467 bytes .../ConfigTable/Excel/Server/WorldConfig.xlsx | Bin 0 -> 10127 bytes .../Exporter/ConfigTable/Excel/Version.txt | 1 + .../ConfigTable/ExporterSettings.json | 44 + .../ConfigTable/Fantasy.Tools.ConfigTable | Bin 0 -> 123264 bytes .../Fantasy.Tools.ConfigTable.deps.json | 521 +++ .../ConfigTable/Fantasy.Tools.ConfigTable.dll | Bin 0 -> 64000 bytes .../ConfigTable/Fantasy.Tools.ConfigTable.pdb | Bin 0 -> 37928 bytes ...ntasy.Tools.ConfigTable.runtimeconfig.json | 12 + .../Json/Server/MachineConfigData.Json | 3 + .../Json/Server/ProcessConfigData.Json | 3 + .../Json/Server/SceneConfigData.Json | 6 + .../Json/Server/WorldConfigData.Json | 3 + .../Microsoft.CodeAnalysis.CSharp.dll | Bin 0 -> 6523664 bytes .../ConfigTable/Microsoft.CodeAnalysis.dll | Bin 0 -> 2985224 bytes ....Extensions.Configuration.Abstractions.dll | Bin 0 -> 27936 bytes ...xtensions.Configuration.FileExtensions.dll | Bin 0 -> 27936 bytes ...icrosoft.Extensions.Configuration.Json.dll | Bin 0 -> 26784 bytes .../Microsoft.Extensions.Configuration.dll | Bin 0 -> 43800 bytes ....Extensions.FileProviders.Abstractions.dll | Bin 0 -> 22176 bytes ...soft.Extensions.FileProviders.Physical.dll | Bin 0 -> 44808 bytes ...icrosoft.Extensions.FileSystemGlobbing.dll | Bin 0 -> 45848 bytes .../Microsoft.Extensions.Primitives.dll | Bin 0 -> 43680 bytes .../Microsoft.IO.RecyclableMemoryStream.dll | Bin 0 -> 65968 bytes .../Microsoft.Win32.SystemEvents.dll | Bin 0 -> 58496 bytes .../NetworkProtocol/Inner/InnerMessage.proto | 27 + .../ConfigTable/NetworkProtocol/OpCode.Cache | 1 + .../NetworkProtocol/Outer/OuterMessage.proto | 64 + .../NetworkProtocol/RouteType.Config | 3 + .../Exporter/ConfigTable/Newtonsoft.Json.dll | Bin 0 -> 712464 bytes .../Tools/Exporter/ConfigTable/README.md | 16 + .../Tools/Exporter/ConfigTable/Run.bat | 21 + .../Tools/Exporter/ConfigTable/Run.sh | 23 + .../ConfigTable/System.Drawing.Common.dll | Bin 0 -> 173696 bytes .../ConfigTable/System.Formats.Asn1.dll | Bin 0 -> 97048 bytes .../System.Security.Cryptography.Pkcs.dll | Bin 0 -> 264864 bytes .../Exporter/ConfigTable/System.Text.Json.dll | Bin 0 -> 579848 bytes .../ConfigTable/protobuf-net.Core.dll | Bin 0 -> 296960 bytes .../Exporter/ConfigTable/protobuf-net.dll | Bin 0 -> 284160 bytes .../bin/Debug/net9.0/APlugins.deps.json | 433 ++ .../APlugins/bin/Debug/net9.0/APlugins.dll | Bin 0 -> 3584 bytes .../APlugins/bin/Debug/net9.0/APlugins.pdb | Bin 0 -> 20704 bytes .../bin/Release/net9.0/APlugins.deps.json | 433 ++ .../APlugins/bin/Release/net9.0/APlugins.dll | Bin 0 -> 3584 bytes .../APlugins/bin/Release/net9.0/APlugins.pdb | Bin 0 -> 20700 bytes .../obj/APlugins.csproj.nuget.dgspec.json | 95 + .../obj/APlugins.csproj.nuget.g.props | 21 + .../obj/APlugins.csproj.nuget.g.targets | 10 + ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../obj/Debug/net9.0/APlugins.AssemblyInfo.cs | 22 + .../net9.0/APlugins.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../Debug/net9.0/APlugins.GlobalUsings.g.cs | 8 + .../obj/Debug/net9.0/APlugins.assets.cache | Bin 0 -> 15845 bytes .../APlugins.csproj.AssemblyReference.cache | Bin 0 -> 7279 bytes .../APlugins.csproj.CoreCompileInputs.cache | 1 + .../APlugins.csproj.FileListAbsolute.txt | 60 + .../APlugins/obj/Debug/net9.0/APlugins.dll | Bin 0 -> 3584 bytes .../APlugins/obj/Debug/net9.0/APlugins.pdb | Bin 0 -> 20704 bytes .../obj/Debug/net9.0/Plugins.AssemblyInfo.cs | 23 + .../net9.0/Plugins.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../Debug/net9.0/Plugins.GlobalUsings.g.cs | 8 + .../obj/Debug/net9.0/ref/APlugins.dll | Bin 0 -> 4608 bytes .../obj/Debug/net9.0/refint/APlugins.dll | Bin 0 -> 4608 bytes .../obj/Plugins.csproj.nuget.dgspec.json | 78 + .../APlugins/obj/Plugins.csproj.nuget.g.props | 16 + .../obj/Plugins.csproj.nuget.g.targets | 2 + ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../Release/net9.0/APlugins.AssemblyInfo.cs | 22 + .../net9.0/APlugins.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../Release/net9.0/APlugins.GlobalUsings.g.cs | 8 + .../obj/Release/net9.0/APlugins.assets.cache | Bin 0 -> 15845 bytes .../APlugins.csproj.AssemblyReference.cache | Bin 0 -> 7279 bytes .../APlugins.csproj.CoreCompileInputs.cache | 1 + .../APlugins.csproj.FileListAbsolute.txt | 12 + .../APlugins/obj/Release/net9.0/APlugins.dll | Bin 0 -> 3584 bytes .../APlugins/obj/Release/net9.0/APlugins.pdb | Bin 0 -> 20700 bytes .../obj/Release/net9.0/ref/APlugins.dll | Bin 0 -> 4608 bytes .../obj/Release/net9.0/refint/APlugins.dll | Bin 0 -> 4608 bytes .../Server/APlugins/obj/project.assets.json | 1335 +++++++ .../Server/APlugins/obj/project.nuget.cache | 37 + .../APlugins/obj/project.packagespec.json | 1 + .../obj/rider.project.model.nuget.info | 1 + .../APlugins/obj/rider.project.restore.info | 1 + GameServer/Server/Entity/AssemblyHelper.cs | 41 + .../Server/Entity/Common/GameErrorCode.cs | 34 + GameServer/Server/Entity/Entity.csproj | 19 + .../Server/Entity/Enum/Commom/ELockType.cs | 10 + .../Generate/ConfigTable/Entity/UnitConfig.cs | 99 + .../Entity/Generate/CustomExport/SceneType.cs | 27 + .../Generate/NetworkProtocol/InnerMessage.cs | 408 ++ .../Generate/NetworkProtocol/InnerOpcode.cs | 26 + .../Generate/NetworkProtocol/OuterMessage.cs | 912 +++++ .../Generate/NetworkProtocol/OuterOpcode.cs | 49 + .../Generate/NetworkProtocol/RouteType.cs | 9 + .../Model/Authentication/Account/Account.cs | 9 + .../Account/AccountCacheInfo.cs | 8 + .../Authentication/AuthenticationComponent.cs | 11 + .../JWT/AuthenticationJWTComponent.cs | 54 + .../TimeOut/AccountInfoTimeOuterComponent.cs | 9 + .../TimeOut/AccountTimeOuterComponent.cs | 9 + .../Model/Chat/ChatChannel/ChatChannel.cs | 8 + .../ChatChannel/ChatChannelCenterComponent.cs | 8 + .../Entity/Model/Chat/ChatManageComponent.cs | 8 + .../Server/Entity/Model/Chat/ChatUnit.cs | 9 + .../Model/Gate/GameAccount/GameAccount.cs | 16 + .../GameAccount/GameAccountFlagComponent.cs | 11 + .../GameAccount/GameAccountManageComponent.cs | 8 + .../Server/Entity/Model/Gate/GateComponent.cs | 8 + .../Entity/Model/Gate/JWT/GateJWTComponent.cs | 20 + .../Model/Session/EntityTimeOutComponent.cs | 10 + .../Exporter/ConfigTable/Excel/Custom.txt | 1 + .../Excel/Server/MachineConfig.xlsx | Bin 0 -> 10108 bytes .../Excel/Server/ProcessConfig.xlsx | Bin 0 -> 10189 bytes .../ConfigTable/Excel/Server/SceneConfig.xlsx | Bin 0 -> 18467 bytes .../ConfigTable/Excel/Server/WorldConfig.xlsx | Bin 0 -> 10127 bytes .../Exporter/ConfigTable/Excel/Version.txt | 1 + .../Json/Server/MachineConfigData.Json | 3 + .../Json/Server/ProcessConfigData.Json | 3 + .../Json/Server/SceneConfigData.Json | 6 + .../Json/Server/WorldConfigData.Json | 3 + .../NetworkProtocol/Inner/InnerMessage.proto | 27 + .../ConfigTable/NetworkProtocol/OpCode.Cache | 1 + .../NetworkProtocol/Outer/OuterMessage.proto | 64 + .../NetworkProtocol/RouteType.Config | 3 + .../Tools/Exporter/ConfigTable/README.md | 16 + .../Entity/bin/Debug/net9.0/APlugins.dll | Bin 0 -> 3584 bytes .../Entity/bin/Debug/net9.0/APlugins.pdb | Bin 0 -> 20704 bytes .../Entity/bin/Debug/net9.0/Entity.deps.json | 509 +++ .../Server/Entity/bin/Debug/net9.0/Entity.dll | Bin 0 -> 44544 bytes .../Server/Entity/bin/Debug/net9.0/Entity.pdb | Bin 0 -> 38748 bytes .../Entity/bin/Release/net9.0/APlugins.dll | Bin 0 -> 3584 bytes .../Entity/bin/Release/net9.0/APlugins.pdb | Bin 0 -> 20700 bytes .../bin/Release/net9.0/Entity.deps.json | 509 +++ .../Entity/bin/Release/net9.0/Entity.dll | Bin 0 -> 36864 bytes .../Entity/bin/Release/net9.0/Entity.pdb | Bin 0 -> 34232 bytes ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../obj/Debug/net9.0/Entity.AssemblyInfo.cs | 22 + .../net9.0/Entity.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../obj/Debug/net9.0/Entity.GlobalUsings.g.cs | 8 + .../obj/Debug/net9.0/Entity.assets.cache | Bin 0 -> 18077 bytes .../Entity.csproj.AssemblyReference.cache | Bin 0 -> 8542 bytes .../Entity.csproj.CoreCompileInputs.cache | 1 + .../net9.0/Entity.csproj.FileListAbsolute.txt | 108 + .../obj/Debug/net9.0/Entity.csproj.Up2Date | 0 .../Server/Entity/obj/Debug/net9.0/Entity.dll | Bin 0 -> 44544 bytes .../Server/Entity/obj/Debug/net9.0/Entity.pdb | Bin 0 -> 38748 bytes .../Entity/obj/Debug/net9.0/ref/Entity.dll | Bin 0 -> 28160 bytes .../Entity/obj/Debug/net9.0/refint/Entity.dll | Bin 0 -> 28160 bytes .../obj/Entity.csproj.nuget.dgspec.json | 178 + .../Entity/obj/Entity.csproj.nuget.g.props | 21 + .../Entity/obj/Entity.csproj.nuget.g.targets | 10 + ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../obj/Release/net9.0/Entity.AssemblyInfo.cs | 22 + .../net9.0/Entity.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../Release/net9.0/Entity.GlobalUsings.g.cs | 8 + .../obj/Release/net9.0/Entity.assets.cache | Bin 0 -> 18077 bytes .../Entity.csproj.AssemblyReference.cache | Bin 0 -> 8662 bytes .../Entity.csproj.CoreCompileInputs.cache | 1 + .../net9.0/Entity.csproj.FileListAbsolute.txt | 15 + .../obj/Release/net9.0/Entity.csproj.Up2Date | 0 .../Entity/obj/Release/net9.0/Entity.dll | Bin 0 -> 36864 bytes .../Entity/obj/Release/net9.0/Entity.pdb | Bin 0 -> 34232 bytes .../Entity/obj/Release/net9.0/ref/Entity.dll | Bin 0 -> 25088 bytes .../obj/Release/net9.0/refint/Entity.dll | Bin 0 -> 25088 bytes .../Server/Entity/obj/project.assets.json | 1569 ++++++++ .../Server/Entity/obj/project.nuget.cache | 41 + .../Entity/obj/project.packagespec.json | 1 + .../Entity/obj/rider.project.model.nuget.info | 1 + .../Entity/obj/rider.project.restore.info | 1 + GameServer/Server/GameServer.sln | 42 + .../Server/GameServer.sln.DotSettings.user | 12 + GameServer/Server/Hotfix/Hotfix.csproj | 17 + .../Server/Hotfix/OnCreateScene_InitEvent.cs | 33 + .../Authentication/Account/AccountSystem.cs | 30 + .../AccountInfoTimeOuterComponentSystem.cs | 39 + .../TimeOut/AccountTimeOuterComponent.cs | 33 + .../AuthenticationComponentSystem.cs | 187 + .../Handler/C2A_LoginRequestHandler.cs | 33 + .../Handler/C2A_RegisterRequestHandler.cs | 28 + .../Helper/AuthenticationHelper.cs | 28 + .../JWT/AuthenticationJWTComponentSystem.cs | 83 + .../AuthenticationJWTComponentHelper.cs | 11 + .../ChatChannelCenterComponentSystem.cs | 46 + .../Chat/ChatChannel/ChatChannelSystem.cs | 58 + .../Outter/Chat/ChatManageComponentSystem.cs | 39 + .../Inner/G2Chat_LoginRequestHandler.cs | 26 + .../Inner/G2Chat_OfflineRequestHandler.cs | 18 + .../C2Chat_BoardRequestMessageHandler.cs | 16 + .../Outer/C2Chat_TestRequestHandler.cs | 15 + .../ChatChannelCenterComponentHelper.cs | 22 + .../Outter/Chat/Helper/ChatComponentHelper.cs | 17 + .../Hotfix/Outter/Chat/Helper/ChatHelper.cs | 28 + .../Outter/Common/Data/ServerDataHelper.cs | 21 + .../Entity/EntityTimeOutComponentSystem.cs | 77 + .../Outter/Entity/EntityTimeOutHelper.cs | 35 + .../Gate/GameAccount/GameAccountFactory.cs | 23 + .../GameAccountFlagComponentSystem.cs | 17 + .../GameAccountManageComponentSystem.cs | 188 + .../Gate/GameAccount/GameAccountSystem.cs | 45 + .../GameAccount/Helper/GameAccountHelper.cs | 20 + .../Hotfix/Outter/Gate/GateComponentSystem.cs | 19 + .../Gate/Handler/C2G_LoginRequestHandler.cs | 57 + ...C2G_UpdateAndSaveGameNameRequestHandler.cs | 25 + .../Handler/G2C_GetGameAccountInfoHandler.cs | 41 + .../Inner/Chat2G_BoardMessageHandler.cs | 29 + .../Outter/Gate/Helper/GateComponentHelper.cs | 42 + .../Outter/Gate/Helper/GateLoginHelper.cs | 64 + .../Outter/Gate/JWT/GateJWTComponentSystem.cs | 72 + .../Gate/JWT/Helper/GateJwtComponentHelper.cs | 37 + .../Exporter/ConfigTable/Excel/Custom.txt | 1 + .../Excel/Server/MachineConfig.xlsx | Bin 0 -> 10108 bytes .../Excel/Server/ProcessConfig.xlsx | Bin 0 -> 10189 bytes .../ConfigTable/Excel/Server/SceneConfig.xlsx | Bin 0 -> 18467 bytes .../ConfigTable/Excel/Server/WorldConfig.xlsx | Bin 0 -> 10127 bytes .../Exporter/ConfigTable/Excel/Version.txt | 1 + .../Json/Server/MachineConfigData.Json | 3 + .../Json/Server/ProcessConfigData.Json | 3 + .../Json/Server/SceneConfigData.Json | 6 + .../Json/Server/WorldConfigData.Json | 3 + .../NetworkProtocol/Inner/InnerMessage.proto | 27 + .../ConfigTable/NetworkProtocol/OpCode.Cache | 1 + .../NetworkProtocol/Outer/OuterMessage.proto | 64 + .../NetworkProtocol/RouteType.Config | 3 + .../Tools/Exporter/ConfigTable/README.md | 16 + .../Hotfix/bin/Debug/net9.0/APlugins.dll | Bin 0 -> 3584 bytes .../Hotfix/bin/Debug/net9.0/APlugins.pdb | Bin 0 -> 20704 bytes .../Server/Hotfix/bin/Debug/net9.0/Entity.dll | Bin 0 -> 44544 bytes .../Server/Hotfix/bin/Debug/net9.0/Entity.pdb | Bin 0 -> 38748 bytes .../Hotfix/bin/Debug/net9.0/Hotfix.deps.json | 525 +++ .../Server/Hotfix/bin/Debug/net9.0/Hotfix.dll | Bin 0 -> 57856 bytes .../Server/Hotfix/bin/Debug/net9.0/Hotfix.pdb | Bin 0 -> 37356 bytes .../Hotfix/bin/Release/net9.0/APlugins.dll | Bin 0 -> 3584 bytes .../Hotfix/bin/Release/net9.0/APlugins.pdb | Bin 0 -> 20700 bytes .../Hotfix/bin/Release/net9.0/Entity.dll | Bin 0 -> 36864 bytes .../Hotfix/bin/Release/net9.0/Entity.pdb | Bin 0 -> 34232 bytes .../bin/Release/net9.0/Hotfix.deps.json | 525 +++ .../Hotfix/bin/Release/net9.0/Hotfix.dll | Bin 0 -> 42496 bytes .../Hotfix/bin/Release/net9.0/Hotfix.pdb | Bin 0 -> 31696 bytes ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../obj/Debug/net9.0/Hotfix.AssemblyInfo.cs | 22 + .../net9.0/Hotfix.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../obj/Debug/net9.0/Hotfix.GlobalUsings.g.cs | 8 + .../obj/Debug/net9.0/Hotfix.assets.cache | Bin 0 -> 17653 bytes .../Hotfix.csproj.AssemblyReference.cache | Bin 0 -> 8771 bytes .../Hotfix.csproj.CoreCompileInputs.cache | 1 + .../net9.0/Hotfix.csproj.FileListAbsolute.txt | 128 + .../obj/Debug/net9.0/Hotfix.csproj.Up2Date | 0 .../Server/Hotfix/obj/Debug/net9.0/Hotfix.dll | Bin 0 -> 57856 bytes .../Server/Hotfix/obj/Debug/net9.0/Hotfix.pdb | Bin 0 -> 37356 bytes .../Hotfix/obj/Debug/net9.0/ref/Hotfix.dll | Bin 0 -> 21504 bytes .../Hotfix/obj/Debug/net9.0/refint/Hotfix.dll | Bin 0 -> 21504 bytes .../obj/Hotfix.csproj.nuget.dgspec.json | 247 ++ .../Hotfix/obj/Hotfix.csproj.nuget.g.props | 21 + .../Hotfix/obj/Hotfix.csproj.nuget.g.targets | 10 + ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../obj/Release/net9.0/Hotfix.AssemblyInfo.cs | 22 + .../net9.0/Hotfix.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../Release/net9.0/Hotfix.GlobalUsings.g.cs | 8 + .../obj/Release/net9.0/Hotfix.assets.cache | Bin 0 -> 17653 bytes .../Hotfix.csproj.AssemblyReference.cache | Bin 0 -> 9686 bytes .../Hotfix.csproj.CoreCompileInputs.cache | 1 + .../net9.0/Hotfix.csproj.FileListAbsolute.txt | 17 + .../obj/Release/net9.0/Hotfix.csproj.Up2Date | 0 .../Hotfix/obj/Release/net9.0/Hotfix.dll | Bin 0 -> 42496 bytes .../Hotfix/obj/Release/net9.0/Hotfix.pdb | Bin 0 -> 31696 bytes .../Hotfix/obj/Release/net9.0/ref/Hotfix.dll | Bin 0 -> 18432 bytes .../obj/Release/net9.0/refint/Hotfix.dll | Bin 0 -> 18432 bytes .../Server/Hotfix/obj/project.assets.json | 1573 ++++++++ .../Server/Hotfix/obj/project.nuget.cache | 41 + .../Hotfix/obj/project.packagespec.json | 1 + .../Hotfix/obj/rider.project.model.nuget.info | 1 + .../Hotfix/obj/rider.project.restore.info | 1 + GameServer/Server/Main/Main.csproj | 29 + GameServer/Server/Main/NLog.config | 91 + GameServer/Server/Main/NLog.xsd | 3483 +++++++++++++++++ GameServer/Server/Main/Program.cs | 34 + .../Main/Properties/launchSettings.json | 10 + .../Exporter/ConfigTable/Excel/Custom.txt | 1 + .../Excel/Server/MachineConfig.xlsx | Bin 0 -> 10108 bytes .../Excel/Server/ProcessConfig.xlsx | Bin 0 -> 10189 bytes .../ConfigTable/Excel/Server/SceneConfig.xlsx | Bin 0 -> 18467 bytes .../ConfigTable/Excel/Server/WorldConfig.xlsx | Bin 0 -> 10127 bytes .../Exporter/ConfigTable/Excel/Version.txt | 1 + .../Json/Server/MachineConfigData.Json | 3 + .../Json/Server/ProcessConfigData.Json | 3 + .../Json/Server/SceneConfigData.Json | 6 + .../Json/Server/WorldConfigData.Json | 3 + .../NetworkProtocol/Inner/InnerMessage.proto | 27 + .../ConfigTable/NetworkProtocol/OpCode.Cache | 1 + .../NetworkProtocol/Outer/OuterMessage.proto | 64 + .../NetworkProtocol/RouteType.Config | 3 + .../Main/Tools/Exporter/ConfigTable/README.md | 16 + .../Main/bin/Debug/net9.0/CommandLine.dll | Bin 0 -> 225280 bytes .../Main/bin/Debug/net9.0/DnsClient.dll | Bin 0 -> 154112 bytes .../Server/Main/bin/Debug/net9.0/Entity.dll | Bin 0 -> 5120 bytes .../Server/Main/bin/Debug/net9.0/Entity.pdb | Bin 0 -> 20852 bytes .../bin/Debug/net9.0/Fantasy-Net.NLog.dll | Bin 0 -> 7168 bytes .../Main/bin/Debug/net9.0/Fantasy-Net.dll | Bin 0 -> 533504 bytes .../Server/Main/bin/Debug/net9.0/Hotfix.dll | Bin 0 -> 3584 bytes .../Server/Main/bin/Debug/net9.0/Hotfix.pdb | Bin 0 -> 20304 bytes .../Main/bin/Debug/net9.0/Main.deps.json | 379 ++ .../Server/Main/bin/Debug/net9.0/Main.dll | Bin 0 -> 7680 bytes .../Server/Main/bin/Debug/net9.0/Main.exe | Bin 0 -> 145408 bytes .../Server/Main/bin/Debug/net9.0/Main.pdb | Bin 0 -> 21156 bytes .../bin/Debug/net9.0/Main.runtimeconfig.json | 18 + .../Main/bin/Debug/net9.0/MongoDB.Bson.dll | Bin 0 -> 533504 bytes .../Main/bin/Debug/net9.0/MongoDB.Driver.dll | Bin 0 -> 2422272 bytes .../Server/Main/bin/Debug/net9.0/NLog.config | 91 + .../Server/Main/bin/Debug/net9.0/NLog.dll | Bin 0 -> 953344 bytes .../Server/Main/bin/Debug/net9.0/NLog.xsd | 3483 +++++++++++++++++ .../Main/bin/Debug/net9.0/Newtonsoft.Json.dll | Bin 0 -> 712464 bytes .../Main/bin/Debug/net9.0/SharpCompress.dll | Bin 0 -> 546304 bytes .../Server/Main/bin/Debug/net9.0/Snappier.dll | Bin 0 -> 40448 bytes .../Main/bin/Debug/net9.0/ZstdSharp.dll | Bin 0 -> 406016 bytes .../bin/Debug/net9.0/protobuf-net.Core.dll | Bin 0 -> 300032 bytes .../Main/bin/Debug/net9.0/protobuf-net.dll | Bin 0 -> 285184 bytes ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../obj/Debug/net9.0/Main.AssemblyInfo.cs | 22 + .../net9.0/Main.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../obj/Debug/net9.0/Main.GlobalUsings.g.cs | 8 + .../Main/obj/Debug/net9.0/Main.assets.cache | Bin 0 -> 18511 bytes .../Main.csproj.AssemblyReference.cache | Bin 0 -> 9662 bytes .../Main.csproj.CoreCompileInputs.cache | 1 + .../net9.0/Main.csproj.FileListAbsolute.txt | 168 + .../Main/obj/Debug/net9.0/Main.csproj.Up2Date | 0 .../Server/Main/obj/Debug/net9.0/Main.dll | Bin 0 -> 7680 bytes .../Debug/net9.0/Main.genruntimeconfig.cache | 1 + .../Server/Main/obj/Debug/net9.0/Main.pdb | Bin 0 -> 21812 bytes .../Server/Main/obj/Debug/net9.0/apphost.exe | Bin 0 -> 147456 bytes .../Server/Main/obj/Debug/net9.0/ref/Main.dll | Bin 0 -> 5632 bytes .../Main/obj/Debug/net9.0/refint/Main.dll | Bin 0 -> 5632 bytes .../Main/obj/Main.csproj.nuget.dgspec.json | 362 ++ .../Server/Main/obj/Main.csproj.nuget.g.props | 21 + .../Main/obj/Main.csproj.nuget.g.targets | 11 + ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../obj/Release/net9.0/Main.AssemblyInfo.cs | 22 + .../net9.0/Main.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../obj/Release/net9.0/Main.GlobalUsings.g.cs | 8 + .../Main/obj/Release/net9.0/Main.assets.cache | Bin 0 -> 18511 bytes .../Main.csproj.AssemblyReference.cache | Bin 0 -> 11535 bytes .../Main.csproj.CoreCompileInputs.cache | 1 + .../net9.0/Main.csproj.FileListAbsolute.txt | 18 + .../obj/Release/net9.0/Main.csproj.Up2Date | 0 .../Server/Main/obj/Release/net9.0/Main.dll | Bin 0 -> 7680 bytes .../net9.0/Main.genruntimeconfig.cache | 1 + .../Server/Main/obj/Release/net9.0/Main.pdb | Bin 0 -> 21696 bytes .../Main/obj/Release/net9.0/apphost.exe | Bin 0 -> 146944 bytes ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../net9.0/linux-x64/Main.AssemblyInfo.cs | 22 + .../linux-x64/Main.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 15 + .../net9.0/linux-x64/Main.GlobalUsings.g.cs | 8 + .../net9.0/linux-x64/Main.assets.cache | Bin 0 -> 16641 bytes .../Main.csproj.AssemblyReference.cache | Bin 0 -> 11535 bytes .../Main.csproj.CoreCompileInputs.cache | 1 + .../Main.csproj.FileListAbsolute.txt | 18 + .../net9.0/linux-x64/Main.csproj.Up2Date | 0 .../obj/Release/net9.0/linux-x64/Main.dll | Bin 0 -> 7168 bytes .../linux-x64/Main.genruntimeconfig.cache | 1 + .../obj/Release/net9.0/linux-x64/Main.pdb | Bin 0 -> 21708 bytes .../linux-x64/PublishOutputs.2607d84ed1.txt | 35 + .../linux-x64/PublishOutputs.45828c0e46.txt | 35 + .../Main/obj/Release/net9.0/linux-x64/apphost | Bin 0 -> 75144 bytes .../obj/Release/net9.0/linux-x64/ref/Main.dll | Bin 0 -> 4608 bytes .../Release/net9.0/linux-x64/refint/Main.dll | Bin 0 -> 4608 bytes .../Main/obj/Release/net9.0/ref/Main.dll | Bin 0 -> 6144 bytes .../Main/obj/Release/net9.0/refint/Main.dll | Bin 0 -> 6144 bytes .../Server/Main/obj/project.assets.json | 2783 +++++++++++++ .../Server/Main/obj/project.nuget.cache | 49 + .../Server/Main/obj/project.packagespec.json | 1 + .../Main/obj/rider.project.model.nuget.info | 1 + .../Main/obj/rider.project.restore.info | 1 + GameServer/Tools/ConfigTable/CommandLine.dll | Bin 0 -> 225280 bytes .../Tools/ConfigTable/EPPlus.Interfaces.dll | Bin 0 -> 6656 bytes .../ConfigTable/EPPlus.System.Drawing.dll | Bin 0 -> 7680 bytes GameServer/Tools/ConfigTable/EPPlus.dll | Bin 0 -> 3745280 bytes .../Tools/ConfigTable/ExporterSettings.json | 48 + .../ConfigTable/Fantasy.Tools.ConfigTable | Bin 0 -> 123264 bytes .../Fantasy.Tools.ConfigTable.deps.json | 508 +++ .../ConfigTable/Fantasy.Tools.ConfigTable.dll | Bin 0 -> 65536 bytes .../ConfigTable/Fantasy.Tools.ConfigTable.pdb | Bin 0 -> 38300 bytes ...ntasy.Tools.ConfigTable.runtimeconfig.json | 12 + .../Microsoft.CodeAnalysis.CSharp.dll | Bin 0 -> 6523664 bytes .../ConfigTable/Microsoft.CodeAnalysis.dll | Bin 0 -> 2985224 bytes ....Extensions.Configuration.Abstractions.dll | Bin 0 -> 27936 bytes ...xtensions.Configuration.FileExtensions.dll | Bin 0 -> 27936 bytes ...icrosoft.Extensions.Configuration.Json.dll | Bin 0 -> 26784 bytes .../Microsoft.Extensions.Configuration.dll | Bin 0 -> 43800 bytes ....Extensions.FileProviders.Abstractions.dll | Bin 0 -> 22176 bytes ...soft.Extensions.FileProviders.Physical.dll | Bin 0 -> 44808 bytes ...icrosoft.Extensions.FileSystemGlobbing.dll | Bin 0 -> 45848 bytes .../Microsoft.Extensions.Primitives.dll | Bin 0 -> 43680 bytes .../Microsoft.IO.RecyclableMemoryStream.dll | Bin 0 -> 65968 bytes .../Microsoft.Win32.SystemEvents.dll | Bin 0 -> 26752 bytes .../Tools/ConfigTable/Newtonsoft.Json.dll | Bin 0 -> 712464 bytes GameServer/Tools/ConfigTable/Run.bat | 33 + GameServer/Tools/ConfigTable/Run.sh | 34 + .../ConfigTable/System.Drawing.Common.dll | Bin 0 -> 173696 bytes .../Tools/ConfigTable/System.Formats.Asn1.dll | Bin 0 -> 97048 bytes .../System.Security.Cryptography.Pkcs.dll | Bin 0 -> 264864 bytes .../Tools/ConfigTable/System.Text.Json.dll | Bin 0 -> 579848 bytes .../Tools/ConfigTable/protobuf-net.Core.dll | Bin 0 -> 296960 bytes GameServer/Tools/ConfigTable/protobuf-net.dll | Bin 0 -> 284160 bytes .../net7.0/Microsoft.Win32.SystemEvents.dll | Bin 0 -> 58496 bytes .../win/lib/net7.0/System.Drawing.Common.dll | Bin 0 -> 614536 bytes .../System.Security.Cryptography.Pkcs.dll | Bin 0 -> 319776 bytes .../Tools/NetworkProtocol/CommandLine.dll | Bin 0 -> 225280 bytes .../NetworkProtocol/ExporterSettings.json | 29 + .../Fantasy.Tools.NetworkProtocol | Bin 0 -> 123264 bytes .../Fantasy.Tools.NetworkProtocol.deps.json | 227 ++ .../Fantasy.Tools.NetworkProtocol.dll | Bin 0 -> 46080 bytes .../Fantasy.Tools.NetworkProtocol.pdb | Bin 0 -> 24576 bytes ...y.Tools.NetworkProtocol.runtimeconfig.json | 12 + ....Extensions.Configuration.Abstractions.dll | Bin 0 -> 27936 bytes ...xtensions.Configuration.FileExtensions.dll | Bin 0 -> 27936 bytes ...icrosoft.Extensions.Configuration.Json.dll | Bin 0 -> 26784 bytes .../Microsoft.Extensions.Configuration.dll | Bin 0 -> 43800 bytes ....Extensions.FileProviders.Abstractions.dll | Bin 0 -> 22176 bytes ...soft.Extensions.FileProviders.Physical.dll | Bin 0 -> 44808 bytes ...icrosoft.Extensions.FileSystemGlobbing.dll | Bin 0 -> 45848 bytes .../Microsoft.Extensions.Primitives.dll | Bin 0 -> 43680 bytes .../Tools/NetworkProtocol/Newtonsoft.Json.dll | Bin 0 -> 712464 bytes GameServer/Tools/NetworkProtocol/Run.bat | 21 + GameServer/Tools/NetworkProtocol/Run.sh | 23 + Tools/FileServer/.gitignore | 8 + Tools/FileServer/README.md | 42 + Tools/FileServer/bin/app.js | 26 + Tools/FileServer/index.js | 3 + Tools/FileServer/instal.bat | 1 + Tools/FileServer/instal.sh | 3 + Tools/FileServer/package.json | 30 + Tools/FileServer/src/mime.js | 12 + Tools/FileServer/src/static-server.js | 334 ++ Tools/FileServer/src/templates/404.js | 44 + Tools/FileServer/src/templates/default.js | 93 + Tools/FileServer/src/templates/images/404.png | Bin 0 -> 12644 bytes Tools/FileServer/src/templates/index.js | 7 + Tools/FileServer/start.bat | 1 + Tools/FileServer/start.sh | 3 + Tools/Luban/CommandLine.dll | Bin 0 -> 225280 bytes Tools/Luban/ExcelDataReader.dll | Bin 0 -> 181760 bytes Tools/Luban/Google.Protobuf.dll | Bin 0 -> 485472 bytes Tools/Luban/Luban.Bson.deps.json | 107 + Tools/Luban/Luban.Bson.dll | Bin 0 -> 7680 bytes Tools/Luban/Luban.Bson.pdb | Bin 0 -> 12776 bytes Tools/Luban/Luban.CSharp.deps.json | 73 + Tools/Luban/Luban.CSharp.dll | Bin 0 -> 56320 bytes Tools/Luban/Luban.CSharp.pdb | Bin 0 -> 25536 bytes Tools/Luban/Luban.Core.deps.json | 57 + Tools/Luban/Luban.Core.dll | Bin 0 -> 239616 bytes Tools/Luban/Luban.Core.pdb | Bin 0 -> 112128 bytes Tools/Luban/Luban.Cpp.deps.json | 73 + Tools/Luban/Luban.Cpp.dll | Bin 0 -> 25088 bytes Tools/Luban/Luban.Cpp.pdb | Bin 0 -> 16688 bytes .../Luban/Luban.DataLoader.Builtin.deps.json | 547 +++ Tools/Luban/Luban.DataLoader.Builtin.dll | Bin 0 -> 74240 bytes Tools/Luban/Luban.DataLoader.Builtin.pdb | Bin 0 -> 38120 bytes .../Luban/Luban.DataTarget.Builtin.deps.json | 564 +++ Tools/Luban/Luban.DataTarget.Builtin.dll | Bin 0 -> 25600 bytes Tools/Luban/Luban.DataTarget.Builtin.pdb | Bin 0 -> 22644 bytes .../Luban.DataValidator.Builtin.deps.json | 73 + Tools/Luban/Luban.DataValidator.Builtin.dll | Bin 0 -> 26112 bytes Tools/Luban/Luban.DataValidator.Builtin.pdb | Bin 0 -> 18720 bytes Tools/Luban/Luban.FlatBuffers.deps.json | 581 +++ Tools/Luban/Luban.FlatBuffers.dll | Bin 0 -> 12800 bytes Tools/Luban/Luban.FlatBuffers.pdb | Bin 0 -> 15080 bytes Tools/Luban/Luban.Gdscript.deps.json | 581 +++ Tools/Luban/Luban.Gdscript.dll | Bin 0 -> 10752 bytes Tools/Luban/Luban.Gdscript.pdb | Bin 0 -> 14000 bytes Tools/Luban/Luban.Golang.deps.json | 73 + Tools/Luban/Luban.Golang.dll | Bin 0 -> 24576 bytes Tools/Luban/Luban.Golang.pdb | Bin 0 -> 16524 bytes Tools/Luban/Luban.Java.deps.json | 73 + Tools/Luban/Luban.Java.dll | Bin 0 -> 19968 bytes Tools/Luban/Luban.Java.pdb | Bin 0 -> 15668 bytes Tools/Luban/Luban.L10N.deps.json | 564 +++ Tools/Luban/Luban.L10N.dll | Bin 0 -> 12800 bytes Tools/Luban/Luban.L10N.pdb | Bin 0 -> 14420 bytes Tools/Luban/Luban.Lua.deps.json | 73 + Tools/Luban/Luban.Lua.dll | Bin 0 -> 14848 bytes Tools/Luban/Luban.Lua.pdb | Bin 0 -> 15628 bytes Tools/Luban/Luban.MsgPack.deps.json | 123 + Tools/Luban/Luban.MsgPack.dll | Bin 0 -> 8704 bytes Tools/Luban/Luban.MsgPack.pdb | Bin 0 -> 13508 bytes Tools/Luban/Luban.PHP.deps.json | 581 +++ Tools/Luban/Luban.PHP.dll | Bin 0 -> 11776 bytes Tools/Luban/Luban.PHP.pdb | Bin 0 -> 13776 bytes Tools/Luban/Luban.Protobuf.deps.json | 597 +++ Tools/Luban/Luban.Protobuf.dll | Bin 0 -> 21504 bytes Tools/Luban/Luban.Protobuf.pdb | Bin 0 -> 18944 bytes Tools/Luban/Luban.Python.deps.json | 581 +++ Tools/Luban/Luban.Python.dll | Bin 0 -> 13312 bytes Tools/Luban/Luban.Python.pdb | Bin 0 -> 14612 bytes Tools/Luban/Luban.Rust.deps.json | 73 + Tools/Luban/Luban.Rust.dll | Bin 0 -> 25088 bytes Tools/Luban/Luban.Rust.pdb | Bin 0 -> 16852 bytes Tools/Luban/Luban.Schema.Builtin.deps.json | 564 +++ Tools/Luban/Luban.Schema.Builtin.dll | Bin 0 -> 31232 bytes Tools/Luban/Luban.Schema.Builtin.pdb | Bin 0 -> 17992 bytes .../Luban.Schema.Builtin.runtimeconfig.json | 14 + Tools/Luban/Luban.Typescript.deps.json | 615 +++ Tools/Luban/Luban.Typescript.dll | Bin 0 -> 18432 bytes Tools/Luban/Luban.Typescript.pdb | Bin 0 -> 15932 bytes Tools/Luban/Luban.deps.json | 998 +++++ Tools/Luban/Luban.dll | Bin 0 -> 18432 bytes Tools/Luban/Luban.exe | Bin 0 -> 138752 bytes Tools/Luban/Luban.pdb | Bin 0 -> 15888 bytes Tools/Luban/Luban.runtimeconfig.json | 13 + Tools/Luban/MessagePack.Annotations.dll | Bin 0 -> 11776 bytes Tools/Luban/MessagePack.dll | Bin 0 -> 330752 bytes Tools/Luban/Microsoft.NET.StringTools.dll | Bin 0 -> 30856 bytes Tools/Luban/NLog.dll | Bin 0 -> 953344 bytes Tools/Luban/Neo.Lua.dll | Bin 0 -> 321024 bytes Tools/Luban/Newtonsoft.Json.Bson.dll | Bin 0 -> 101592 bytes Tools/Luban/Newtonsoft.Json.dll | Bin 0 -> 695336 bytes Tools/Luban/Scriban.dll | Bin 0 -> 449536 bytes Tools/Luban/Templates/common/cpp/enum.sbn | 23 + Tools/Luban/Templates/common/cs/enum.sbn | 28 + Tools/Luban/Templates/common/go/enum.sbn | 19 + Tools/Luban/Templates/common/java/enum.sbn | 19 + Tools/Luban/Templates/common/php/enum.sbn | 2 + .../Templates/common/rs/macros/Cargo.toml.sbn | 14 + .../Templates/common/rs/macros/src/lib.rs.sbn | 65 + Tools/Luban/Templates/common/ts/enum.sbn | 2 + Tools/Luban/Templates/cpp-rawptr-bin/bean.sbn | 32 + .../Templates/cpp-rawptr-bin/schema_cpp.sbn | 45 + .../Templates/cpp-rawptr-bin/schema_h.sbn | 21 + .../Luban/Templates/cpp-rawptr-bin/table.sbn | 134 + .../Luban/Templates/cpp-rawptr-bin/tables.sbn | 23 + .../Templates/cpp-sharedptr-bin/bean.sbn | 32 + .../cpp-sharedptr-bin/schema_cpp.sbn | 50 + .../Templates/cpp-sharedptr-bin/schema_h.sbn | 21 + .../Templates/cpp-sharedptr-bin/table.sbn | 140 + .../Templates/cpp-sharedptr-bin/tables.sbn | 23 + Tools/Luban/Templates/cs-bin/bean.sbn | 151 + Tools/Luban/Templates/cs-bin/table.sbn | 163 + Tools/Luban/Templates/cs-bin/tables.sbn | 31 + Tools/Luban/Templates/cs-dotnet-json/bean.sbn | 152 + .../Luban/Templates/cs-dotnet-json/table.sbn | 162 + .../Luban/Templates/cs-dotnet-json/tables.sbn | 32 + Tools/Luban/Templates/cs-editor-json/bean.sbn | 102 + Tools/Luban/Templates/cs-editor-json/enum.sbn | 59 + .../Templates/cs-newtonsoft-json/bean.sbn | 158 + .../Templates/cs-newtonsoft-json/table.sbn | 169 + .../Templates/cs-newtonsoft-json/tables.sbn | 32 + Tools/Luban/Templates/cs-simple-json/bean.sbn | 152 + .../Luban/Templates/cs-simple-json/table.sbn | 162 + .../Luban/Templates/cs-simple-json/tables.sbn | 32 + Tools/Luban/Templates/cs_pb/tables.sbn | 32 + Tools/Luban/Templates/flatbuffers/schema.sbn | 51 + .../Luban/Templates/gdscript-json/schema.sbn | 167 + Tools/Luban/Templates/go-bin/bean.sbn | 54 + Tools/Luban/Templates/go-bin/table.sbn | 116 + Tools/Luban/Templates/go-bin/tables.sbn | 33 + Tools/Luban/Templates/go-json/bean.sbn | 50 + Tools/Luban/Templates/go-json/table.sbn | 103 + Tools/Luban/Templates/go-json/tables.sbn | 28 + Tools/Luban/Templates/java-bin/bean.sbn | 65 + Tools/Luban/Templates/java-bin/table.sbn | 81 + Tools/Luban/Templates/java-bin/tables.sbn | 37 + Tools/Luban/Templates/java-json/bean.sbn | 67 + Tools/Luban/Templates/java-json/table.sbn | 82 + Tools/Luban/Templates/java-json/tables.sbn | 39 + Tools/Luban/Templates/lua-bin/schema.sbn | 158 + Tools/Luban/Templates/lua-lua/schema.sbn | 42 + Tools/Luban/Templates/pb/schema.sbn | 41 + Tools/Luban/Templates/php-json/schema.sbn | 155 + Tools/Luban/Templates/python-json/schema.sbn | 156 + Tools/Luban/Templates/rust-bin/lib.sbn | 51 + Tools/Luban/Templates/rust-bin/mod.sbn | 280 ++ Tools/Luban/Templates/rust-bin/toml.sbn | 11 + Tools/Luban/Templates/rust-json/lib.sbn | 51 + Tools/Luban/Templates/rust-json/mod.sbn | 287 ++ Tools/Luban/Templates/rust-json/toml.sbn | 12 + .../Luban/Templates/typescript-bin/schema.sbn | 234 ++ .../Templates/typescript-json/schema.sbn | 226 ++ .../Templates/typescript-protobuf/schema.sbn | 31 + Tools/Luban/Ude.NetStandard.dll | Bin 0 -> 164864 bytes Tools/Luban/YamlDotNet.NetCore.dll | Bin 0 -> 172032 bytes Tools/Luban/de/Neo.Lua.resources.dll | Bin 0 -> 10752 bytes Tools/Luban/nlog.xml | 25 + Tools/build-luban.bat | 5 + Tools/build-luban.sh | 5 + luban/.editorconfig | 53 + luban/.gitattributes | 63 + luban/.github/FUNDING.yml | 12 + luban/.github/workflows/sync_gitee.yml | 38 + luban/.gitignore | 275 ++ luban/.travis.yml | 9 + luban/LICENSE | 21 + luban/README.md | 51 + luban/README_EN.md | 49 + luban/docs/_config.yml | 1 + luban/docs/images/Client_Server.png | Bin 0 -> 53854 bytes luban/docs/images/adv/def_01.png | Bin 0 -> 15825 bytes luban/docs/images/adv/def_02.png | Bin 0 -> 8673 bytes luban/docs/images/adv/def_03.png | Bin 0 -> 15900 bytes luban/docs/images/adv/def_04.png | Bin 0 -> 7397 bytes luban/docs/images/adv/def_05.png | Bin 0 -> 19215 bytes luban/docs/images/adv/def_06.png | Bin 0 -> 9752 bytes luban/docs/images/adv/def_07.png | Bin 0 -> 19240 bytes luban/docs/images/adv/def_08.png | Bin 0 -> 16889 bytes luban/docs/images/adv/def_09.png | Bin 0 -> 6275 bytes luban/docs/images/adv/def_10.png | Bin 0 -> 22135 bytes luban/docs/images/adv/def_11.png | Bin 0 -> 22368 bytes luban/docs/images/adv/def_12.png | Bin 0 -> 22320 bytes luban/docs/images/adv/def_13.png | Bin 0 -> 25359 bytes luban/docs/images/adv/def_14.png | Bin 0 -> 23163 bytes luban/docs/images/adv/def_15.png | Bin 0 -> 20752 bytes luban/docs/images/adv/def_16.png | Bin 0 -> 21195 bytes luban/docs/images/adv/def_17.png | Bin 0 -> 38373 bytes luban/docs/images/adv/def_18.png | Bin 0 -> 7021 bytes luban/docs/images/adv/def_19.png | Bin 0 -> 4963 bytes luban/docs/images/adv/def_20.png | Bin 0 -> 3294 bytes luban/docs/images/adv/def_21.png | Bin 0 -> 4232 bytes luban/docs/images/adv/def_22.png | Bin 0 -> 14805 bytes luban/docs/images/adv/def_23.png | Bin 0 -> 2876 bytes luban/docs/images/adv/def_24.png | Bin 0 -> 20953 bytes luban/docs/images/adv/def_25.png | Bin 0 -> 18218 bytes luban/docs/images/adv/def_26.png | Bin 0 -> 7317 bytes luban/docs/images/adv/def_27.png | Bin 0 -> 6964 bytes luban/docs/images/adv/def_28.png | Bin 0 -> 3862 bytes luban/docs/images/adv/def_29.png | Bin 0 -> 18096 bytes luban/docs/images/adv/def_30.png | Bin 0 -> 32259 bytes luban/docs/images/adv/def_31.png | Bin 0 -> 16857 bytes luban/docs/images/adv/def_32.png | Bin 0 -> 34896 bytes luban/docs/images/adv/def_33.png | Bin 0 -> 6753 bytes luban/docs/images/adv/def_34.png | Bin 0 -> 9369 bytes luban/docs/images/adv/def_35.png | Bin 0 -> 8874 bytes luban/docs/images/adv/def_36.png | Bin 0 -> 16171 bytes luban/docs/images/adv/def_37.png | Bin 0 -> 9805 bytes luban/docs/images/adv/def_38.png | Bin 0 -> 16508 bytes luban/docs/images/adv/def_39.png | Bin 0 -> 16500 bytes luban/docs/images/adv/def_40.png | Bin 0 -> 23700 bytes luban/docs/images/adv/def_41.png | Bin 0 -> 3241 bytes luban/docs/images/adv/def_42.png | Bin 0 -> 38923 bytes luban/docs/images/adv/def_43.png | Bin 0 -> 5531 bytes luban/docs/images/adv/def_44.png | Bin 0 -> 20364 bytes luban/docs/images/adv/def_45.png | Bin 0 -> 22088 bytes luban/docs/images/adv/def_46.png | Bin 0 -> 28030 bytes luban/docs/images/adv/def_47.png | Bin 0 -> 7602 bytes luban/docs/images/adv/def_48.png | Bin 0 -> 3432 bytes luban/docs/images/adv/def_49.png | Bin 0 -> 2042 bytes luban/docs/images/adv/def_50.png | Bin 0 -> 7468 bytes luban/docs/images/cases/bean.jpg | Bin 0 -> 14057 bytes luban/docs/images/cases/bean2.jpg | Bin 0 -> 16085 bytes luban/docs/images/cases/collection.jpg | Bin 0 -> 30306 bytes luban/docs/images/cases/enum.jpg | Bin 0 -> 28298 bytes luban/docs/images/cases/ignorefield.jpg | Bin 0 -> 18381 bytes luban/docs/images/cases/l10n_text.jpg | Bin 0 -> 16653 bytes luban/docs/images/cases/multileveltitle.jpg | Bin 0 -> 49315 bytes luban/docs/images/cases/multiline.jpg | Bin 0 -> 27054 bytes luban/docs/images/cases/nullable.jpg | Bin 0 -> 57155 bytes luban/docs/images/cases/primitive_type.jpg | Bin 0 -> 49444 bytes luban/docs/images/cases/quickstart_reward.jpg | Bin 0 -> 14564 bytes luban/docs/images/cases/quickstart_table.jpg | Bin 0 -> 30278 bytes luban/docs/images/cases/sep_bean.jpg | Bin 0 -> 30474 bytes luban/docs/images/cases/sep_container1.jpg | Bin 0 -> 19302 bytes luban/docs/images/cases/sep_container2.jpg | Bin 0 -> 29596 bytes luban/docs/images/cases/simple1.jpg | Bin 0 -> 13673 bytes luban/docs/images/cases/singleton.jpg | Bin 0 -> 20501 bytes luban/docs/images/cases/singleton2.jpg | Bin 0 -> 11574 bytes luban/docs/images/cases/stream.jpg | Bin 0 -> 25651 bytes .../images/cases/table_list_indep_key.jpg | Bin 0 -> 16606 bytes .../docs/images/cases/table_list_not_key.jpg | Bin 0 -> 13279 bytes .../images/cases/table_list_union_key.jpg | Bin 0 -> 16476 bytes luban/docs/images/cases/tag.jpg | Bin 0 -> 20047 bytes luban/docs/images/cases/tag2.jpg | Bin 0 -> 25878 bytes .../docs/images/cases/title_dynamic_bean.jpg | Bin 0 -> 14208 bytes luban/docs/images/cases/title_enum.jpg | Bin 0 -> 18609 bytes luban/docs/images/cases/title_map.jpg | Bin 0 -> 15996 bytes luban/docs/images/cases/titlelimit.jpg | Bin 0 -> 44448 bytes luban/docs/images/docusaurus-social-card.jpg | Bin 0 -> 55746 bytes luban/docs/images/docusaurus.png | Bin 0 -> 5142 bytes luban/docs/images/dots_release.png | Bin 0 -> 8510 bytes luban/docs/images/easy.svg | 79 + luban/docs/images/efficient.svg | 32 + luban/docs/images/excel_bean.jpg | Bin 0 -> 64141 bytes luban/docs/images/excel_enum.jpg | Bin 0 -> 57289 bytes luban/docs/images/excel_table.jpg | Bin 0 -> 42497 bytes luban/docs/images/favicon.ico | Bin 0 -> 1150 bytes luban/docs/images/favicon.png | Bin 0 -> 892 bytes luban/docs/images/flying-seagull.jpg | Bin 0 -> 329897 bytes luban/docs/images/icon.png | Bin 0 -> 19956 bytes luban/docs/images/install/install_01.png | Bin 0 -> 7298 bytes luban/docs/images/install/install_02.png | Bin 0 -> 17328 bytes luban/docs/images/install/install_03.png | Bin 0 -> 13201 bytes luban/docs/images/install/install_04.png | Bin 0 -> 32661 bytes luban/docs/images/install/install_05.png | Bin 0 -> 17229 bytes luban/docs/images/install/install_06.png | Bin 0 -> 7125 bytes luban/docs/images/install/install_07.png | Bin 0 -> 16098 bytes luban/docs/images/install/install_08.png | Bin 0 -> 34548 bytes luban/docs/images/install/install_09.png | Bin 0 -> 14113 bytes luban/docs/images/install/install_10.png | Bin 0 -> 22582 bytes luban/docs/images/logo.png | Bin 0 -> 19956 bytes luban/docs/images/logo.svg | 1 + luban/docs/images/luban_edit_tool.png | Bin 0 -> 51363 bytes luban/docs/images/more.png | Bin 0 -> 41386 bytes luban/docs/images/other.png | Bin 0 -> 32961 bytes luban/docs/images/panda-waving.png | Bin 0 -> 313616 bytes luban/docs/images/pipeline.jpg | Bin 0 -> 34159 bytes luban/docs/images/process.jpg | Bin 0 -> 25730 bytes luban/docs/images/python.png | Bin 0 -> 51525 bytes luban/docs/images/reliable-dark.svg | 28 + luban/docs/images/reliable.svg | 5 + luban/docs/images/ui.png | Bin 0 -> 24146 bytes .../images/undraw_docusaurus_mountain.svg | 171 + luban/docs/images/undraw_docusaurus_react.svg | 170 + luban/docs/images/undraw_docusaurus_tree.svg | 40 + luban/docs/images/web.png | Bin 0 -> 38793 bytes luban/docs/images/weixin.jpg | Bin 0 -> 53150 bytes luban/docs/images/zhifubao.jpg | Bin 0 -> 60040 bytes luban/docs/sponsor/weixin.JPG | Bin 0 -> 187224 bytes luban/docs/sponsor/zhifubao.JPG | Bin 0 -> 220134 bytes luban/scripts/format.bat | 2 + luban/scripts/format.sh | 2 + luban/src/.dockerignore | 6 + luban/src/.editorconfig | 53 + luban/src/Luban.Bson/AssemblyInfo.cs | 5 + luban/src/Luban.Bson/BsonDataTarget.cs | 32 + luban/src/Luban.Bson/BsonDataVisitor.cs | 132 + luban/src/Luban.Bson/Luban.Bson.csproj | 17 + luban/src/Luban.CSharp/AssemblyInfo.cs | 5 + .../CodeTarget/CsharpBinCodeTarget.cs | 15 + .../CodeTarget/CsharpCodeTargetBase.cs | 36 + .../CodeTarget/CsharpDotnetJsonCodeTarget.cs | 16 + .../CodeTarget/CsharpEditorJsonCodeTarget.cs | 94 + .../CsharpNewtonSoftJsonCodeTarget.cs | 15 + .../CodeTarget/CsharpSimpleJsonCodeTarget.cs | 16 + luban/src/Luban.CSharp/ConstStrings.cs | 8 + luban/src/Luban.CSharp/Luban.CSharp.csproj | 102 + .../CsharpBinTemplateExtension.cs | 13 + .../CsharpDotNetJsonTemplateExtension.cs | 32 + .../CsharpEditorJsonTemplateExtension.cs | 39 + .../CsharpNewtonSoftJsonTemplateExtension.cs | 24 + .../CsharpSimpleJsonTemplateExtension.cs | 32 + .../CsharpTemplateExtension.cs | 73 + .../Luban.CSharp/Templates/common/cs/enum.sbn | 28 + .../Luban.CSharp/Templates/cs-bin/bean.sbn | 151 + .../Luban.CSharp/Templates/cs-bin/table.sbn | 163 + .../Luban.CSharp/Templates/cs-bin/tables.sbn | 31 + .../Templates/cs-dotnet-json/bean.sbn | 152 + .../Templates/cs-dotnet-json/table.sbn | 162 + .../Templates/cs-dotnet-json/tables.sbn | 32 + .../Templates/cs-editor-json/bean.sbn | 102 + .../Templates/cs-editor-json/enum.sbn | 59 + .../Templates/cs-newtonsoft-json/bean.sbn | 158 + .../Templates/cs-newtonsoft-json/table.sbn | 169 + .../Templates/cs-newtonsoft-json/tables.sbn | 32 + .../Templates/cs-simple-json/bean.sbn | 152 + .../Templates/cs-simple-json/table.sbn | 162 + .../Templates/cs-simple-json/tables.sbn | 32 + .../TypeVisitors/BinaryDeserializeVisitor.cs | 21 + .../BinaryUnderlyingDeserializeVisitor.cs | 115 + .../TypeVisitors/ConstValueVisitor.cs | 84 + .../TypeVisitors/CtorDefaultValueVisitor.cs | 44 + .../TypeVisitors/DataToStringVisitor.cs | 34 + .../DeclaringCollectionRefNameVisitor.cs | 122 + .../TypeVisitors/DeclaringTypeNameVisitor.cs | 36 + .../DotNetJsonDeserializeVisitor.cs | 114 + .../EditorDeclaringTypeNameVisitor.cs | 16 + .../TypeVisitors/EditorInitValueVisitor.cs | 43 + .../EditorIsRawNullableTypeVisitor.cs | 19 + .../TypeVisitors/EditorJsonLoad.cs | 84 + .../TypeVisitors/EditorJsonSave.cs | 14 + .../TypeVisitors/EditorJsonSaveUnderlying.cs | 89 + .../TypeVisitors/EditorJsonSaveUnderlying2.cs | 89 + .../TypeVisitors/EditorNeedInitVisitor.cs | 18 + .../EditorUnderlyingTypeNameVisitor.cs | 13 + .../TypeVisitors/IsRawNullableTypeVisitor.cs | 39 + .../TypeVisitors/NeedInitFieldVisitor.cs | 39 + .../NewtonSoftJsonDeserializeVisitor.cs | 117 + .../TypeVisitors/RecursiveResolveVisitor.cs | 84 + .../SimpleJsonDeserializeVisitor.cs | 119 + .../TypeVisitors/StringDeserializeVisitor.cs | 84 + .../UnderlyingDeclaringTypeNameVisitor.cs | 85 + luban/src/Luban.Core/AssemblyInfo.cs | 5 + luban/src/Luban.Core/BuiltinOptionNames.cs | 58 + .../CodeFormat/CodeFormatManager.cs | 86 + .../CodeFormat/CodeStyleAttribute.cs | 11 + .../CodeFormat/CodeStyles/CodeStyleBase.cs | 17 + .../CodeStyles/ConfigurableCodeStyle.cs | 52 + .../CodeFormat/CodeStyles/OverlayCodeStyle.cs | 65 + luban/src/Luban.Core/CodeFormat/ICodeStyle.cs | 16 + .../CodeFormat/INamingConventionFormatter.cs | 6 + .../CodeFormat/NamingConventionAttribute.cs | 11 + .../CamelCaseFormatter.cs | 12 + .../NoneFormatter.cs | 10 + .../PascalCaseFormatter.cs | 12 + .../SnakeCaseFormatter.cs | 12 + .../UpperCaseFormatter.cs | 10 + .../AllInOneTemplateCodeTargetBase.cs | 42 + .../CodeTarget/CodeTargetAttribute.cs | 11 + .../Luban.Core/CodeTarget/CodeTargetBase.cs | 202 + .../CodeTarget/CodeTargetManager.cs | 19 + luban/src/Luban.Core/CodeTarget/CodeWriter.cs | 33 + .../CodeTarget/CommonFileHeaders.cs | 57 + .../src/Luban.Core/CodeTarget/ICodeTarget.cs | 27 + .../src/Luban.Core/CodeTarget/NameLocation.cs | 10 + .../CodeTarget/TemplateCodeTargetBase.cs | 130 + .../CustomBehaviour/BehaviourBaseAttribute.cs | 14 + .../CustomBehaviour/CustomBehaviourManager.cs | 76 + .../CustomBehaviour/ICustomBehaviour.cs | 8 + .../CustomBehaviour/IPriorityBehaviour.cs | 6 + .../DataLoader/DataCreateException.cs | 40 + .../DataLoader/DataLoaderAttribute.cs | 11 + .../Luban.Core/DataLoader/DataLoaderBase.cs | 15 + .../DataLoader/DataLoaderManager.cs | 126 + luban/src/Luban.Core/DataLoader/FieldNames.cs | 23 + .../src/Luban.Core/DataLoader/IDataLoader.cs | 15 + .../DataTarget/DataExporterAttribute.cs | 12 + .../Luban.Core/DataTarget/DataExporterBase.cs | 57 + .../DataTarget/DataTargetAttribute.cs | 11 + .../Luban.Core/DataTarget/DataTargetBase.cs | 80 + .../DataTarget/DataTargetManager.cs | 25 + .../Luban.Core/DataTarget/IDataExporter.cs | 7 + .../src/Luban.Core/DataTarget/IDataTarget.cs | 27 + .../DataTransformer/DataTransfomerBase.cs | 209 + .../DataTransformerAttribute.cs | 16 + .../DataTransformer/IDataTransformer.cs | 14 + .../DataVisitors/DataActionHelpVisitor.cs | 241 ++ .../DataVisitors/DataActionHelpVisitor2.cs | 255 ++ .../DataVisitors/IDataActionVisitor.cs | 69 + .../DataVisitors/IDataActionVisitor2.cs | 70 + .../DataVisitors/IDataFuncVisitor.cs | 102 + .../DataVisitors/IDataFuncVisitor2.cs | 108 + .../DataVisitors/IsDefaultValueVisitor.cs | 84 + .../IsSimpleLiteralDataVisitor.cs | 83 + .../Luban.Core/DataVisitors/TableVisitor.cs | 76 + .../DataVisitors/ToLiteralVisitorBase.cs | 67 + .../DataVisitors/ToStringVisitor.cs | 86 + .../DataVisitors/ToStringVisitor2.cs | 14 + luban/src/Luban.Core/Datas/DArray.cs | 84 + luban/src/Luban.Core/Datas/DBean.cs | 103 + luban/src/Luban.Core/Datas/DBool.cs | 91 + luban/src/Luban.Core/Datas/DByte.cs | 96 + luban/src/Luban.Core/Datas/DDateTime.cs | 98 + luban/src/Luban.Core/Datas/DDouble.cs | 89 + luban/src/Luban.Core/Datas/DEnum.cs | 105 + luban/src/Luban.Core/Datas/DFloat.cs | 93 + luban/src/Luban.Core/Datas/DInt.cs | 112 + luban/src/Luban.Core/Datas/DList.cs | 92 + luban/src/Luban.Core/Datas/DLong.cs | 103 + luban/src/Luban.Core/Datas/DMap.cs | 87 + luban/src/Luban.Core/Datas/DSet.cs | 88 + luban/src/Luban.Core/Datas/DShort.cs | 89 + luban/src/Luban.Core/Datas/DString.cs | 105 + luban/src/Luban.Core/Datas/DType.cs | 50 + luban/src/Luban.Core/Defs/DefAssembly.cs | 420 ++ luban/src/Luban.Core/Defs/DefBean.cs | 225 ++ luban/src/Luban.Core/Defs/DefEnum.cs | 195 + luban/src/Luban.Core/Defs/DefField.cs | 179 + luban/src/Luban.Core/Defs/DefRefGroup.cs | 16 + luban/src/Luban.Core/Defs/DefTable.cs | 160 + luban/src/Luban.Core/Defs/DefTypeBase.cs | 65 + luban/src/Luban.Core/Defs/LoadDefException.cs | 18 + luban/src/Luban.Core/Defs/Record.cs | 34 + luban/src/Luban.Core/Defs/TableDataInfo.cs | 185 + luban/src/Luban.Core/Defs/TableMode.cs | 8 + luban/src/Luban.Core/EnvManager.cs | 86 + luban/src/Luban.Core/GenerationContext.cs | 292 ++ luban/src/Luban.Core/GlobalConfigLoader.cs | 105 + luban/src/Luban.Core/IGenerationContext.cs | 12 + luban/src/Luban.Core/L10N/ITextProvider.cs | 16 + luban/src/Luban.Core/L10N/L10NManager.cs | 18 + .../Luban.Core/L10N/TextProviderAttribute.cs | 11 + luban/src/Luban.Core/Luban.Core.csproj | 47 + luban/src/Luban.Core/OutputFile.cs | 24 + luban/src/Luban.Core/OutputFileManifest.cs | 34 + .../Luban.Core/OutputSaver/IOutputSaver.cs | 10 + .../Luban.Core/OutputSaver/LocalFileSaver.cs | 30 + luban/src/Luban.Core/OutputSaver/NullSaver.cs | 15 + .../OutputSaver/OutputSaverAttribute.cs | 11 + .../Luban.Core/OutputSaver/OutputSaverBase.cs | 44 + .../OutputSaver/OutputSaverManager.cs | 19 + .../Luban.Core/Pipeline/DefaultPipeline.cs | 166 + luban/src/Luban.Core/Pipeline/IPipeline.cs | 9 + .../Luban.Core/Pipeline/PipelineArguments.cs | 30 + .../Luban.Core/Pipeline/PipelineAttribute.cs | 12 + .../Luban.Core/Pipeline/PipelineManager.cs | 19 + .../Luban.Core/PostProcess/IPostProcess.cs | 7 + .../PostProcess/PostProcessAttribute.cs | 22 + .../Luban.Core/PostProcess/PostProcessBase.cs | 15 + .../PostProcess/PostProcessManager.cs | 18 + luban/src/Luban.Core/RawDefs/RawAssembly.cs | 16 + luban/src/Luban.Core/RawDefs/RawBean.cs | 28 + luban/src/Luban.Core/RawDefs/RawEnum.cs | 37 + luban/src/Luban.Core/RawDefs/RawField.cs | 20 + luban/src/Luban.Core/RawDefs/RawGroup.cs | 8 + luban/src/Luban.Core/RawDefs/RawRefGroup.cs | 8 + luban/src/Luban.Core/RawDefs/RawTable.cs | 28 + luban/src/Luban.Core/RawDefs/RawTarget.cs | 12 + luban/src/Luban.Core/RawDefs/TypeMapper.cs | 10 + .../Luban.Core/RegisterBehaviourAttribute.cs | 7 + .../Schema/BeanSchemaLoaderAttribute.cs | 11 + .../Luban.Core/Schema/IBeanSchemaLoader.cs | 9 + luban/src/Luban.Core/Schema/IConfigLoader.cs | 6 + .../src/Luban.Core/Schema/ISchemaCollector.cs | 19 + luban/src/Luban.Core/Schema/ISchemaLoader.cs | 10 + luban/src/Luban.Core/Schema/ITableImporter.cs | 13 + luban/src/Luban.Core/Schema/LubanConfig.cs | 17 + .../Schema/SchemaCollectorAttribute.cs | 11 + .../Luban.Core/Schema/SchemaCollectorBase.cs | 66 + luban/src/Luban.Core/Schema/SchemaFileInfo.cs | 8 + .../Schema/SchemaLoaderAttribute.cs | 17 + .../src/Luban.Core/Schema/SchemaLoaderBase.cs | 10 + luban/src/Luban.Core/Schema/SchemaManager.cs | 95 + .../Schema/TableImporterAttribute.cs | 16 + .../src/Luban.Core/Serialization/BeanBase.cs | 10 + luban/src/Luban.Core/Serialization/ByteBuf.cs | 1690 ++++++++ .../Luban.Core/Serialization/ByteBufPool.cs | 38 + .../Serialization/EUnmarshalError.cs | 9 + .../src/Luban.Core/Serialization/FieldTag.cs | 40 + .../Luban.Core/Serialization/ISerializable.cs | 11 + luban/src/Luban.Core/Serialization/ITypeId.cs | 6 + .../Serialization/SerializationException.cs | 23 + .../ThreadLocalTemporalByteBufPool.cs | 78 + luban/src/Luban.Core/SimpleLauncher.cs | 77 + .../ContextTemplateExtension.cs | 33 + .../TypeTemplateExtension.cs | 134 + luban/src/Luban.Core/Tmpl/TemplateManager.cs | 100 + .../TypeVisitors/AllFalseVisitor.cs | 11 + .../Luban.Core/TypeVisitors/AllTrueVisitor.cs | 11 + .../TypeVisitors/DecoratorActionVisitor.cs | 165 + .../TypeVisitors/DecoratorFuncVisitor.cs | 407 ++ .../TypeVisitors/DeepCompareTypeDefine.cs | 239 ++ .../TypeVisitors/ITypeActionVisitor.cs | 69 + .../TypeVisitors/ITypeFuncVisitor.cs | 168 + .../IsValidTableKeyTypeVisitor.cs | 38 + .../TypeVisitors/RawDefineTypeNameVisitor.cs | 83 + .../Luban.Core/TypeVisitors/RefTypeVisitor.cs | 104 + .../TypeVisitors/TypeActionVisitorAdaptor.cs | 81 + luban/src/Luban.Core/Types/TArray.cs | 86 + luban/src/Luban.Core/Types/TBean.cs | 67 + luban/src/Luban.Core/Types/TBool.cs | 59 + luban/src/Luban.Core/Types/TByte.cs | 57 + luban/src/Luban.Core/Types/TDateTime.cs | 57 + luban/src/Luban.Core/Types/TDouble.cs | 57 + luban/src/Luban.Core/Types/TEnum.cs | 64 + luban/src/Luban.Core/Types/TFloat.cs | 59 + luban/src/Luban.Core/Types/TInt.cs | 57 + luban/src/Luban.Core/Types/TList.cs | 76 + luban/src/Luban.Core/Types/TLong.cs | 60 + luban/src/Luban.Core/Types/TMap.cs | 83 + luban/src/Luban.Core/Types/TSet.cs | 76 + luban/src/Luban.Core/Types/TShort.cs | 57 + luban/src/Luban.Core/Types/TString.cs | 58 + luban/src/Luban.Core/Types/TType.cs | 66 + luban/src/Luban.Core/Utils/AtomicLong.cs | 33 + .../Luban.Core/Utils/CollectionExtensions.cs | 12 + luban/src/Luban.Core/Utils/DataExtensions.cs | 16 + luban/src/Luban.Core/Utils/DataUtil.cs | 193 + luban/src/Luban.Core/Utils/DefExtensions.cs | 89 + luban/src/Luban.Core/Utils/DefUtil.cs | 346 ++ luban/src/Luban.Core/Utils/ExceptionUtil.cs | 16 + .../src/Luban.Core/Utils/ExternalTypeUtil.cs | 45 + luban/src/Luban.Core/Utils/FileCleaner.cs | 106 + luban/src/Luban.Core/Utils/FileUtil.cs | 266 ++ .../Luban.Core/Utils/ListEqualityComparer.cs | 23 + .../src/Luban.Core/Utils/LoadXmlException.cs | 18 + luban/src/Luban.Core/Utils/StringUtil.cs | 38 + luban/src/Luban.Core/Utils/TemplateUtil.cs | 15 + luban/src/Luban.Core/Utils/TimeUtil.cs | 8 + luban/src/Luban.Core/Utils/TimeZoneUtil.cs | 38 + luban/src/Luban.Core/Utils/TypeUtil.cs | 297 ++ luban/src/Luban.Core/Utils/XmlUtil.cs | 89 + .../Luban.Core/Validator/DataValidatorBase.cs | 18 + .../Validator/DataValidatorContext.cs | 45 + .../Validator/DataValidatorVisitor.cs | 178 + .../Luban.Core/Validator/IDataValidator.cs | 14 + .../Luban.Core/Validator/ITableValidator.cs | 8 + .../Validator/ValidatorAttribute.cs | 14 + .../Luban.Core/Validator/ValidatorManager.cs | 86 + .../src/Luban.Core/Validator/ValidatorType.cs | 7 + luban/src/Luban.Cpp/AssemblyInfo.cs | 5 + .../CodeTarget/CppBinRawptrCodeTarget.cs | 15 + .../CodeTarget/CppBinSharedptrCodeTarget.cs | 15 + .../Luban.Cpp/CodeTarget/CppCodeTargetBase.cs | 149 + luban/src/Luban.Cpp/Luban.Cpp.csproj | 70 + .../CppRawptrBinTemplateExtension.cs | 18 + .../CppSharedptrBinTemplateExtension.cs | 18 + .../CppTemplateExtension.cs | 48 + .../Luban.Cpp/Templates/common/cpp/enum.sbn | 23 + .../Templates/cpp-rawptr-bin/bean.sbn | 32 + .../Templates/cpp-rawptr-bin/schema_cpp.sbn | 45 + .../Templates/cpp-rawptr-bin/schema_h.sbn | 21 + .../Templates/cpp-rawptr-bin/table.sbn | 134 + .../Templates/cpp-rawptr-bin/tables.sbn | 23 + .../Templates/cpp-sharedptr-bin/bean.sbn | 32 + .../cpp-sharedptr-bin/schema_cpp.sbn | 50 + .../Templates/cpp-sharedptr-bin/schema_h.sbn | 21 + .../Templates/cpp-sharedptr-bin/table.sbn | 140 + .../Templates/cpp-sharedptr-bin/tables.sbn | 23 + .../CppRawptrDeclaringTypeNameVisitor.cs | 14 + .../CppRawptrDeserializeVisitor.cs | 21 + ...awptrUnderlyingDeclaringTypeNameVisitor.cs | 15 + .../CppRawptrUnderlyingDeserializeVisitor.cs | 10 + ...edPtrUnderlyingDeclaringTypeNameVisitor.cs | 14 + .../CppSharedptrDeclaringTypeNameVisitor.cs | 19 + .../CppSharedptrDeserializeVisitor.cs | 21 + ...ppSharedptrUnderlyingDeserializeVisitor.cs | 31 + .../CppUnderlyingDeclaringTypeNameVisitor.cs | 86 + .../CppUnderlyingDeserializeVisitorBase.cs | 87 + .../Luban.DataLoader.Builtin/AssemblyInfo.cs | 5 + .../DataVisitors/ExcelStreamDataCreator.cs | 322 ++ .../DataVisitors/InvalidExcelDataException.cs | 18 + .../DataVisitors/JsonDataCreator.cs | 193 + .../DataVisitors/LuaDataCreator.cs | 231 ++ .../DataVisitors/SheetDataCreator.cs | 571 +++ .../DataVisitors/StringDataCreator.cs | 134 + .../DataVisitors/UnityAssetDataCreator.cs | 6 + .../DataVisitors/XmlDataCreator.cs | 183 + .../DataVisitors/YamlDataCreator.cs | 198 + .../Luban.DataLoader.Builtin/Excel/Cell.cs | 29 + .../Excel/ExcelRowColumnDataSource.cs | 97 + .../Excel/ExcelStream.cs | 308 ++ .../Excel/RawSheet.cs | 12 + .../Excel/RawSheetTableDefInfo.cs | 18 + .../Excel/RowColumnSheet.cs | 205 + .../Excel/SheetLoadUtil.cs | 647 +++ .../Excel/StreamSheet.cs | 24 + .../Luban.DataLoader.Builtin/Excel/Title.cs | 114 + .../Excel/TitleRow.cs | 166 + .../Json/JsonDataSource.cs | 79 + .../Lua/LuaDataSource.cs | 73 + .../Luban.DataLoader.Builtin.csproj | 44 + .../UnityAsset/UnityAssetDataSource.cs | 85 + .../Utils/LoadDataUtil.cs | 282 ++ .../Xml/XmlDataSource.cs | 37 + .../Yaml/YamlDataLoader.cs | 79 + .../Luban.DataTarget.Builtin/AssemblyInfo.cs | 5 + .../Binary/BinaryDataTarget.cs | 27 + .../Binary/BinaryDataVisitor.cs | 133 + .../Binary/BinaryIndexExportor.cs | 34 + .../Binary/BinaryRecordOffsetDataTarget.cs | 36 + .../DefaultDataExporter.cs | 9 + .../Json/Json2DataTarget.cs | 64 + .../Json/Json2DataVisitor.cs | 20 + .../Json/JsonConvertTarget.cs | 50 + .../Json/JsonConvertor.cs | 54 + .../Json/JsonDataTarget.cs | 42 + .../Json/JsonDataVisitor.cs | 133 + .../Json/SimpleJsonTypeVisitor.cs | 40 + .../Json/ToJsonLiteralVisitor.cs | 105 + .../Json/ToJsonPropertyNameVisitor.cs | 84 + .../Luban.DataTarget.Builtin.csproj | 39 + .../NullDataExporter.cs | 12 + .../Res/ResDataVisitor.cs | 121 + .../Res/ResourceInfo.cs | 8 + .../Xml/ToXmlLiteralVisitor.cs | 36 + .../Xml/XmlDataTarget.cs | 41 + .../Xml/XmlDataVisitor.cs | 133 + .../Yaml/YamlDataTarget.cs | 35 + .../Yaml/YamlDataVisitor.cs | 142 + .../AssemblyInfo.cs | 5 + .../Collection/IndexValidator.cs | 73 + .../Collection/SizeValidator.cs | 45 + .../Luban.DataValidator.Builtin.csproj | 13 + .../Misc/NotDefaultValueValidator.cs | 27 + .../Path/IPathPattern.cs | 8 + .../Path/PathValidator.cs | 124 + .../Path/RegexPattern.cs | 31 + .../Path/SimpleReplacePattern.cs | 23 + .../Path/Ue4ResourcePattern.cs | 59 + .../Path/UnityAddressablePattern.cs | 15 + .../Range/DoubleRange.cs | 105 + .../Range/LongRange.cs | 97 + .../Range/RangeValidator.cs | 76 + .../Ref/RefValidator.cs | 215 + .../Set/LongDataSet.cs | 21 + .../Set/SetValidator.cs | 83 + .../Set/StringDataSet.cs | 15 + .../Str/RegexValidator.cs | 54 + luban/src/Luban.FlatBuffers/AssemblyInfo.cs | 5 + .../CodeTarget/FlatBuffersSchemaTarget.cs | 53 + .../DataTarget/FlatBuffersDataTarget.cs | 42 + .../FlatBuffersJsonDataVisitor.cs | 69 + .../Luban.FlatBuffers.csproj | 26 + .../FlatBuffersTemplateExtension.cs | 25 + .../Templates/flatbuffers/schema.sbn | 51 + .../CollectMapKeyValueEntriesVisitor.cs | 80 + .../FlatBuffersTypeNameVisitor.cs | 85 + .../IsFlatBuffersScalarTypeVisitor.cs | 34 + luban/src/Luban.Gdscript/AssemblyInfo.cs | 5 + .../CodeTarget/GdscriptCodeTargetBase.cs | 31 + .../CodeTarget/GdscriptJsonCodeTarget.cs | 15 + .../src/Luban.Gdscript/Luban.Gdscript.csproj | 23 + .../GdscriptCommonTemplateExtension.cs | 26 + .../GdscriptJsonTemplateExtension.cs | 34 + .../Templates/gdscript-json/schema.sbn | 167 + .../TypeVisitors/DeclaringTypeNameVisitor.cs | 86 + .../UnderlyingDeserializeVisitor.cs | 94 + luban/src/Luban.Golang/AssemblyInfo.cs | 5 + .../CodeTarget/GoBinCodeTarget.cs | 15 + .../CodeTarget/GoCodeTargetBase.cs | 34 + .../CodeTarget/GoJsonCodeTarget.cs | 15 + luban/src/Luban.Golang/Luban.Golang.csproj | 58 + .../GoBinTemplateExtension.cs | 29 + .../GoCommonTemplateExtension.cs | 25 + .../GoJsonTemplateExtension.cs | 34 + .../Luban.Golang/Templates/common/go/enum.sbn | 19 + .../Luban.Golang/Templates/go-bin/bean.sbn | 54 + .../Luban.Golang/Templates/go-bin/table.sbn | 116 + .../Luban.Golang/Templates/go-bin/tables.sbn | 33 + .../Luban.Golang/Templates/go-json/bean.sbn | 50 + .../Luban.Golang/Templates/go-json/table.sbn | 103 + .../Luban.Golang/Templates/go-json/tables.sbn | 28 + .../Luban.Golang/TypeVisitors/BinImport.cs | 35 + .../BinUnderlyingDeserializeVisitor.cs | 90 + .../TypeVisitors/DeclaringTypeNameVisitor.cs | 15 + .../TypeVisitors/DeserializeBinVisitor.cs | 21 + .../DeserializeJsonFieldVisitor.cs | 24 + .../DeserializeJsonUnderingVisitor.cs | 132 + .../TypeVisitors/DeserializeJsonVisitor.cs | 21 + .../TypeVisitors/IsPointerTypeVisitor.cs | 39 + .../Luban.Golang/TypeVisitors/JsonImport.cs | 36 + .../UnderlyingDeclaringTypeNameVisitor.cs | 86 + luban/src/Luban.Java/AssemblyInfo.cs | 5 + .../CodeTarget/JavaBinCodeTarget.cs | 15 + .../CodeTarget/JavaCodeTargetBase.cs | 38 + .../CodeTarget/JavaJsonCodeTarget.cs | 15 + luban/src/Luban.Java/Luban.Java.csproj | 47 + .../JavaBinTemplateExtension.cs | 13 + .../JavaCommonTemplateExtension.cs | 30 + .../JavaJsonTemplateExtension.cs | 25 + .../Luban.Java/Templates/common/java/enum.sbn | 19 + .../Luban.Java/Templates/java-bin/bean.sbn | 65 + .../Luban.Java/Templates/java-bin/table.sbn | 81 + .../Luban.Java/Templates/java-bin/tables.sbn | 37 + .../Luban.Java/Templates/java-json/bean.sbn | 67 + .../Luban.Java/Templates/java-json/table.sbn | 82 + .../Luban.Java/Templates/java-json/tables.sbn | 39 + .../TypeVisitors/JavaBinDeserializeVisitor.cs | 21 + .../JavaBinUnderlyingDeserializeVisitor.cs | 122 + .../JavaDeclaringBoxTypeNameVisitor.cs | 54 + .../JavaDeclaringTypeNameVisitor.cs | 86 + .../JavaJsonUnderlyingDeserializeVisitor.cs | 109 + luban/src/Luban.L10N/AssemblyInfo.cs | 5 + .../DataTarget/TextKeyCollection.cs | 16 + .../DataTarget/TextKeyListCollectorVisitor.cs | 95 + .../DataTarget/TextKeyListDataTarget.cs | 41 + luban/src/Luban.L10N/DefaultTextProvider.cs | 134 + luban/src/Luban.L10N/Luban.L10N.csproj | 14 + .../Luban.L10N/TextKeyToValueTransformer.cs | 39 + luban/src/Luban.L10N/TextValidator.cs | 41 + luban/src/Luban.Lua/AssemblyInfo.cs | 5 + .../Luban.Lua/CodeTarget/LuaBinCodeTarget.cs | 17 + .../Luban.Lua/CodeTarget/LuaCodeTargetBase.cs | 30 + .../Luban.Lua/CodeTarget/LuaLuaCodeTarget.cs | 11 + .../src/Luban.Lua/DataTarget/LuaDataTarget.cs | 72 + .../DataVisitors/ToLuaLiteralVisitor.cs | 96 + luban/src/Luban.Lua/Luban.Lua.csproj | 29 + .../LuaBinTemplateExtension.cs | 15 + .../LuaCommonTemplateExtension.cs | 15 + .../Luban.Lua/Templates/lua-bin/schema.sbn | 158 + .../Luban.Lua/Templates/lua-lua/schema.sbn | 42 + .../TypVisitors/LuaCommentTypeVisitor.cs | 84 + .../LuaDeserializeMethodNameVisitor.cs | 84 + .../LuaUnderlyingDeserializeVisitor.cs | 34 + .../TypVisitors/LuaValueOrDefaultVisitor.cs | 84 + luban/src/Luban.MsgPack/AssemblyInfo.cs | 5 + luban/src/Luban.MsgPack/Luban.MsgPack.csproj | 17 + luban/src/Luban.MsgPack/MsgPackDataTarget.cs | 32 + luban/src/Luban.MsgPack/MsgPackDataVisitor.cs | 195 + luban/src/Luban.PHP/AssemblyInfo.cs | 5 + .../Luban.PHP/CodeTarget/PHPCodeTargetBase.cs | 35 + .../Luban.PHP/CodeTarget/PHPJsonCodeTarget.cs | 15 + luban/src/Luban.PHP/Luban.PHP.csproj | 60 + .../PHPCommonTemplateExtension.cs | 38 + .../PHPJsonTemplateExtension.cs | 13 + .../Luban.PHP/Templates/common/php/enum.sbn | 2 + .../Luban.PHP/Templates/php-json/schema.sbn | 155 + .../TypeVisitors/JsonDeserializeVisitor.cs | 26 + .../JsonUnderlyingDeserializeVisitor.cs | 103 + luban/src/Luban.Protobuf/AssemblyInfo.cs | 5 + .../CodeTarget/CSharpProtobuf3CodeTarget.cs | 44 + .../CodeTarget/Protobuf2SchemaTarget.cs | 16 + .../CodeTarget/Protobuf3SchemaTarget.cs | 16 + .../CodeTarget/ProtobufSchemaTargetBase.cs | 56 + .../DataTarget/Protobuf2BinDataTarget.cs | 32 + .../DataTarget/Protobuf2JsonDataTarget.cs | 45 + .../DataTarget/Protobuf3BinDataTarget.cs | 13 + .../DataTarget/Protobuf3JsonDataTarget.cs | 14 + .../DataVisitors/Protobuf2JsonDataVisitor.cs | 61 + .../DataVisitors/Protobuf3JsonDataVisitor.cs | 14 + .../DataVisitors/ProtobufBinDataVisitor.cs | 234 ++ .../DataVisitors/ProtobufWireTypeVisitor.cs | 87 + .../src/Luban.Protobuf/Luban.Protobuf.csproj | 27 + .../CsharpProtobuf3TemplateExtension.cs | 32 + .../Protobuf2TemplateExtension.cs | 35 + .../Protobuf3TemplateExtension.cs | 35 + .../ProtobufCommonTemplateExtension.cs | 36 + .../Luban.Protobuf/Templates/cs_pb/tables.sbn | 32 + .../Luban.Protobuf/Templates/pb/schema.sbn | 41 + .../TypeVisitors/IsProtobufPackedType.cs | 45 + .../TypeVisitors/ProtobufTypeNameVisitor.cs | 102 + luban/src/Luban.Python/AssemblyInfo.cs | 5 + .../CodeTarget/Python2JsonCodeTarget.cs | 11 + .../CodeTarget/PythonCodeTargetBase.cs | 33 + .../DataVisitors/ToPythonLiteralVisitor.cs | 104 + luban/src/Luban.Python/Luban.Python.csproj | 30 + .../PythonCommonTemplateExtension.cs | 45 + .../Templates/python-json/schema.sbn | 156 + .../TypeVisitors/DeclaringTypeNameVisitor.cs | 25 + .../JsonUnderlyingDeserializeVisitor.cs | 114 + luban/src/Luban.Rust/AssemblyInfo.cs | 5 + .../CodeTarget/RustBinCodeTarget.cs | 16 + .../CodeTarget/RustCodeTargetBase.cs | 224 ++ .../CodeTarget/RustJsonCodeTarget.cs | 15 + luban/src/Luban.Rust/ConstantStrings.cs | 9 + luban/src/Luban.Rust/Luban.Rust.csproj | 40 + .../RustBinTemplateExtension.cs | 38 + .../RustCommonTemplateExtension.cs | 34 + .../RustJsonTemplateExtension.cs | 42 + .../Templates/common/rs/macros/Cargo.toml.sbn | 14 + .../Templates/common/rs/macros/src/lib.rs.sbn | 65 + .../src/Luban.Rust/Templates/rust-bin/lib.sbn | 51 + .../src/Luban.Rust/Templates/rust-bin/mod.sbn | 280 ++ .../Luban.Rust/Templates/rust-bin/toml.sbn | 11 + .../Luban.Rust/Templates/rust-json/lib.sbn | 51 + .../Luban.Rust/Templates/rust-json/mod.sbn | 287 ++ .../Luban.Rust/Templates/rust-json/toml.sbn | 12 + .../BinaryUnderlyingDeserializeVisitor.cs | 106 + .../RustDeclaringBoxTypeNameVisitor.cs | 15 + .../RustDeclaringTypeNameVisitor.cs | 87 + .../RustJsonUnderlyingDeserializeVisitor.cs | 89 + .../src/Luban.Schema.Builtin/AssemblyInfo.cs | 5 + .../Luban.Schema.Builtin/AutoTableImporter.cs | 11 + .../BeanSchemaFromExcelHeaderLoader.cs | 146 + .../DefaultSchemaCollector.cs | 65 + .../DefaultTableImporter.cs | 79 + .../Luban.Schema.Builtin/ExcelSchemaLoader.cs | 318 ++ .../Luban.Schema.Builtin.csproj | 43 + .../Luban.Schema.Builtin/SchemaLoaderUtil.cs | 137 + .../Luban.Schema.Builtin/XmlSchemaLoader.cs | 287 ++ .../src/Luban.Schema.Builtin/XmlSchemaUtil.cs | 41 + luban/src/Luban.Typescript/AssemblyInfo.cs | 5 + .../CodeTarget/TypescriptBinCodeTarget.cs | 15 + .../CodeTarget/TypescriptCodeTargetBase.cs | 35 + .../CodeTarget/TypescriptJsonCodeTarget.cs | 15 + .../TypescriptProtobufCodeTarget.cs | 15 + .../Luban.Typescript/Luban.Typescript.csproj | 63 + .../TypescriptBinTemplateExtension.cs | 12 + .../TypescriptCommonTemplateExtension.cs | 45 + .../TypescriptJsonTemplateExtension.cs | 13 + .../Templates/common/ts/enum.sbn | 2 + .../Templates/typescript-bin/schema.sbn | 234 ++ .../Templates/typescript-json/schema.sbn | 226 ++ .../Templates/typescript-protobuf/schema.sbn | 31 + .../TypeVisitors/BinDeserializeVisitor.cs | 23 + .../BinUnderingDeserializeVisitor.cs | 21 + .../BinUnderingDeserializeVisitorBase.cs | 82 + .../TypeVisitors/DeclaringTypeNameVisitor.cs | 14 + .../TypeVisitors/JsonDeserializeVisitor.cs | 26 + .../JsonUnderlyingDeserializeVisitor.cs | 100 + .../UnderlyingDeclaringTypeNameVisitor.cs | 84 + luban/src/Luban.sln | 145 + luban/src/Luban.sln.DotSettings | 2 + luban/src/Luban/.editorconfig | 134 + luban/src/Luban/Luban.csproj | 87 + luban/src/Luban/Program.cs | 320 ++ luban/src/Luban/Utils/ConsoleUtil.cs | 70 + luban/src/Luban/Utils/DirectoryWatcher.cs | 88 + luban/src/Luban/nlog.xml | 25 + luban/src/nuget.config | 17 + 1521 files changed, 93465 insertions(+) create mode 100644 BuildCLI/build_android.bat create mode 100644 BuildCLI/build_android.sh create mode 100644 BuildCLI/path_define.bat create mode 100644 BuildCLI/path_define.sh create mode 100644 Configs/GameConfig/CustomTemplate/ConfigSystem.cs create mode 100644 Configs/GameConfig/CustomTemplate/CustomTemplate_Client_LazyLoad/cs-bin/tables.sbn create mode 100644 Configs/GameConfig/Datas/Scene/gameScene.xlsx create mode 100644 Configs/GameConfig/Datas/UI/gameUILoad.xlsx create mode 100644 Configs/GameConfig/Datas/UI/gameUITip.xlsx create mode 100644 Configs/GameConfig/Datas/UI/gameUIWidget.xlsx create mode 100644 Configs/GameConfig/Datas/UI/gameUIWindows.xlsx create mode 100644 Configs/GameConfig/Datas/__beans__.xlsx create mode 100644 Configs/GameConfig/Datas/__enums__.xlsx create mode 100644 Configs/GameConfig/Datas/__tables__.xlsx create mode 100644 Configs/GameConfig/Datas/item.xlsx create mode 100644 Configs/GameConfig/Datas/roleUnit.xlsx create mode 100644 Configs/GameConfig/Defines/builtin.xml create mode 100644 Configs/GameConfig/gen_code_bin_to_project.bat create mode 100644 Configs/GameConfig/gen_code_bin_to_project.sh create mode 100644 Configs/GameConfig/gen_code_bin_to_project_lazyload.bat create mode 100644 Configs/GameConfig/gen_code_bin_to_project_lazyload.sh create mode 100644 Configs/GameConfig/gen_code_bin_to_server.bat create mode 100644 Configs/GameConfig/gen_code_bin_to_server.sh create mode 100644 Configs/GameConfig/luban.conf create mode 100644 GameServer/.idea/.idea.GameServer/.idea/CopilotChatHistory.xml create mode 100644 GameServer/.idea/.idea.GameServer/.idea/encodings.xml create mode 100644 GameServer/.idea/.idea.GameServer/.idea/indexLayout.xml create mode 100644 GameServer/.idea/.idea.GameServer/.idea/projectSettingsUpdater.xml create mode 100644 GameServer/.idea/.idea.GameServer/.idea/vcs.xml create mode 100644 GameServer/.idea/.idea.GameServer/.idea/workspace.xml create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Debug.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Info.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Warn.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Debug.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Error.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Info.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Warn.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Debug.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Error.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Info.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Warn.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Debug.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Error.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Info.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Warn.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Debug.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Error.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Info.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Warn.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Debug.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Info.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Warn.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Debug.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Error.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Info.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Warn.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Debug.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Error.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Info.log create mode 100644 GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Warn.log create mode 100644 GameServer/Bin/Debug/net9.0/APlugins.dll create mode 100644 GameServer/Bin/Debug/net9.0/APlugins.pdb create mode 100644 GameServer/Bin/Debug/net9.0/CommandLine.dll create mode 100644 GameServer/Bin/Debug/net9.0/DnsClient.dll create mode 100644 GameServer/Bin/Debug/net9.0/Entity.dll create mode 100644 GameServer/Bin/Debug/net9.0/Entity.pdb create mode 100644 GameServer/Bin/Debug/net9.0/Fantasy-Net.Config.dll create mode 100644 GameServer/Bin/Debug/net9.0/Fantasy-Net.ConfigTable.dll create mode 100644 GameServer/Bin/Debug/net9.0/Fantasy-Net.NLog.dll create mode 100644 GameServer/Bin/Debug/net9.0/Fantasy-Net.dll create mode 100644 GameServer/Bin/Debug/net9.0/Fantasy.Tools.ExporterConfigTable.dll create mode 100644 GameServer/Bin/Debug/net9.0/Fantasy.Tools.ExporterNetworkProtocol.dll create mode 100644 GameServer/Bin/Debug/net9.0/Hotfix.dll create mode 100644 GameServer/Bin/Debug/net9.0/Hotfix.pdb create mode 100644 GameServer/Bin/Debug/net9.0/Main.deps.json create mode 100644 GameServer/Bin/Debug/net9.0/Main.dll create mode 100644 GameServer/Bin/Debug/net9.0/Main.exe create mode 100644 GameServer/Bin/Debug/net9.0/Main.pdb create mode 100644 GameServer/Bin/Debug/net9.0/Main.runtimeconfig.json create mode 100644 GameServer/Bin/Debug/net9.0/Microsoft.IdentityModel.Abstractions.dll create mode 100644 GameServer/Bin/Debug/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll create mode 100644 GameServer/Bin/Debug/net9.0/Microsoft.IdentityModel.Logging.dll create mode 100644 GameServer/Bin/Debug/net9.0/Microsoft.IdentityModel.Tokens.dll create mode 100644 GameServer/Bin/Debug/net9.0/MongoDB.Bson.dll create mode 100644 GameServer/Bin/Debug/net9.0/MongoDB.Driver.dll create mode 100644 GameServer/Bin/Debug/net9.0/NLog.config create mode 100644 GameServer/Bin/Debug/net9.0/NLog.dll create mode 100644 GameServer/Bin/Debug/net9.0/NLog.xsd create mode 100644 GameServer/Bin/Debug/net9.0/Newtonsoft.Json.dll create mode 100644 GameServer/Bin/Debug/net9.0/SharpCompress.dll create mode 100644 GameServer/Bin/Debug/net9.0/Snappier.dll create mode 100644 GameServer/Bin/Debug/net9.0/System.IdentityModel.Tokens.Jwt.dll create mode 100644 GameServer/Bin/Debug/net9.0/ZstdSharp.dll create mode 100644 GameServer/Bin/Debug/net9.0/protobuf-net.Core.dll create mode 100644 GameServer/Bin/Debug/net9.0/protobuf-net.dll create mode 100644 GameServer/Bin/Release/Logs/Server/Server20250325/Server..2025032516.Debug.log create mode 100644 GameServer/Bin/Release/Logs/Server/Server20250325/Server..2025032516.Error.log create mode 100644 GameServer/Bin/Release/Logs/Server/Server20250325/Server..2025032516.Info.log create mode 100644 GameServer/Bin/Release/net9.0/APlugins.dll create mode 100644 GameServer/Bin/Release/net9.0/APlugins.pdb create mode 100644 GameServer/Bin/Release/net9.0/CommandLine.dll create mode 100644 GameServer/Bin/Release/net9.0/DnsClient.dll create mode 100644 GameServer/Bin/Release/net9.0/Entity.dll create mode 100644 GameServer/Bin/Release/net9.0/Entity.pdb create mode 100644 GameServer/Bin/Release/net9.0/Fantasy-Net.Config.dll create mode 100644 GameServer/Bin/Release/net9.0/Fantasy-Net.ConfigTable.dll create mode 100644 GameServer/Bin/Release/net9.0/Fantasy-Net.NLog.dll create mode 100644 GameServer/Bin/Release/net9.0/Fantasy-Net.dll create mode 100644 GameServer/Bin/Release/net9.0/Fantasy.Tools.ExporterConfigTable.dll create mode 100644 GameServer/Bin/Release/net9.0/Fantasy.Tools.ExporterNetworkProtocol.dll create mode 100644 GameServer/Bin/Release/net9.0/Hotfix.dll create mode 100644 GameServer/Bin/Release/net9.0/Hotfix.pdb create mode 100644 GameServer/Bin/Release/net9.0/Main.deps.json create mode 100644 GameServer/Bin/Release/net9.0/Main.dll create mode 100644 GameServer/Bin/Release/net9.0/Main.exe create mode 100644 GameServer/Bin/Release/net9.0/Main.pdb create mode 100644 GameServer/Bin/Release/net9.0/Main.runtimeconfig.json create mode 100644 GameServer/Bin/Release/net9.0/Microsoft.IdentityModel.Abstractions.dll create mode 100644 GameServer/Bin/Release/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll create mode 100644 GameServer/Bin/Release/net9.0/Microsoft.IdentityModel.Logging.dll create mode 100644 GameServer/Bin/Release/net9.0/Microsoft.IdentityModel.Tokens.dll create mode 100644 GameServer/Bin/Release/net9.0/MongoDB.Bson.dll create mode 100644 GameServer/Bin/Release/net9.0/MongoDB.Driver.dll create mode 100644 GameServer/Bin/Release/net9.0/NLog.config create mode 100644 GameServer/Bin/Release/net9.0/NLog.dll create mode 100644 GameServer/Bin/Release/net9.0/NLog.xsd create mode 100644 GameServer/Bin/Release/net9.0/Newtonsoft.Json.dll create mode 100644 GameServer/Bin/Release/net9.0/SharpCompress.dll create mode 100644 GameServer/Bin/Release/net9.0/Snappier.dll create mode 100644 GameServer/Bin/Release/net9.0/System.IdentityModel.Tokens.Jwt.dll create mode 100644 GameServer/Bin/Release/net9.0/ZstdSharp.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/APlugins.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/APlugins.pdb create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/CommandLine.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/DnsClient.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Entity.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Entity.pdb create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Fantasy-Net.Config.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Fantasy-Net.ConfigTable.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Fantasy-Net.NLog.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Fantasy-Net.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Fantasy.Tools.ExporterConfigTable.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Fantasy.Tools.ExporterNetworkProtocol.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Hotfix.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Hotfix.pdb create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Main create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Main.deps.json create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Main.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Main.pdb create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Main.runtimeconfig.json create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Microsoft.IdentityModel.Abstractions.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Microsoft.IdentityModel.JsonWebTokens.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Microsoft.IdentityModel.Logging.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Microsoft.IdentityModel.Tokens.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/MongoDB.Bson.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/MongoDB.Driver.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/NLog.config create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/NLog.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/NLog.xsd create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Newtonsoft.Json.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/SharpCompress.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/Snappier.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/System.IdentityModel.Tokens.Jwt.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/ZstdSharp.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/protobuf-net.Core.dll create mode 100644 GameServer/Bin/Release/net9.0/linux-x64/protobuf-net.dll create mode 100644 GameServer/Bin/Release/net9.0/protobuf-net.Core.dll create mode 100644 GameServer/Bin/Release/net9.0/protobuf-net.dll create mode 100644 GameServer/Bin/Release/net9.0/新建 文本文档.txt create mode 100644 GameServer/Config/Binary/MachineConfigData.bytes create mode 100644 GameServer/Config/Binary/ProcessConfigData.bytes create mode 100644 GameServer/Config/Binary/SceneConfigData.bytes create mode 100644 GameServer/Config/Binary/UnitConfigData.bytes create mode 100644 GameServer/Config/Binary/WorldConfigData.bytes create mode 100644 GameServer/Config/Excel/Custom.txt create mode 100644 GameServer/Config/Excel/Server/MachineConfig.xlsx create mode 100644 GameServer/Config/Excel/Server/ProcessConfig.xlsx create mode 100644 GameServer/Config/Excel/Server/SceneConfig.xlsx create mode 100644 GameServer/Config/Excel/Server/WorldConfig.xlsx create mode 100644 GameServer/Config/Excel/UnitConfig.xlsx create mode 100644 GameServer/Config/Excel/Version.txt create mode 100644 GameServer/Config/Json/Server/MachineConfigData.Json create mode 100644 GameServer/Config/Json/Server/ProcessConfigData.Json create mode 100644 GameServer/Config/Json/Server/SceneConfigData.Json create mode 100644 GameServer/Config/Json/Server/UnitConfigData.Json create mode 100644 GameServer/Config/Json/Server/WorldConfigData.Json create mode 100644 GameServer/Config/NetworkProtocol/Inner/InnerMessage.proto create mode 100644 GameServer/Config/NetworkProtocol/OpCode.Cache create mode 100644 GameServer/Config/NetworkProtocol/Outer/OuterMessage.proto create mode 100644 GameServer/Config/NetworkProtocol/RouteType.Config create mode 100644 GameServer/Console/Fantasy.Console.Entity/Entry.cs create mode 100644 GameServer/Console/Fantasy.Console.Entity/Fantasy.Console.Entity.csproj create mode 100644 GameServer/Console/Fantasy.Console.Entity/NetworkProtocol/OuterMessage.cs create mode 100644 GameServer/Console/Fantasy.Console.Entity/NetworkProtocol/OuterMessage.cs.meta create mode 100644 GameServer/Console/Fantasy.Console.Entity/NetworkProtocol/OuterOpcode.cs create mode 100644 GameServer/Console/Fantasy.Console.Entity/NetworkProtocol/OuterOpcode.cs.meta create mode 100644 GameServer/Console/Fantasy.Console.Entity/NetworkProtocol/RouteType.cs create mode 100644 GameServer/Console/Fantasy.Console.Entity/NetworkProtocol/RouteType.cs.meta create mode 100644 GameServer/Console/Fantasy.Console.Main/ConsoleLog.cs create mode 100644 GameServer/Console/Fantasy.Console.Main/Fantasy.Console.Main.csproj create mode 100644 GameServer/Console/Fantasy.Console.Main/Program.cs create mode 100644 GameServer/Console/Fantasy.Console.sln create mode 100644 GameServer/Console/Fantasy.Console.sln.DotSettings.user create mode 100644 GameServer/Main/Main.csproj create mode 100644 GameServer/Main/Program.cs create mode 100644 GameServer/Main/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 GameServer/Main/obj/Debug/net9.0/Main.AssemblyInfo.cs create mode 100644 GameServer/Main/obj/Debug/net9.0/Main.AssemblyInfoInputs.cache create mode 100644 GameServer/Main/obj/Debug/net9.0/Main.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Main/obj/Debug/net9.0/Main.GlobalUsings.g.cs create mode 100644 GameServer/Main/obj/Debug/net9.0/Main.assets.cache create mode 100644 GameServer/Main/obj/Main.csproj.nuget.dgspec.json create mode 100644 GameServer/Main/obj/Main.csproj.nuget.g.props create mode 100644 GameServer/Main/obj/Main.csproj.nuget.g.targets create mode 100644 GameServer/Main/obj/project.assets.json create mode 100644 GameServer/Main/obj/project.nuget.cache create mode 100644 GameServer/Main/obj/project.packagespec.json create mode 100644 GameServer/Main/obj/rider.project.model.nuget.info create mode 100644 GameServer/Main/obj/rider.project.restore.info create mode 100644 GameServer/Server/.idea/.idea.GameServer/.idea/.gitignore create mode 100644 GameServer/Server/.idea/.idea.GameServer/.idea/.name create mode 100644 GameServer/Server/.idea/.idea.GameServer/.idea/CopilotChatHistory.xml create mode 100644 GameServer/Server/.idea/.idea.GameServer/.idea/deployment.xml create mode 100644 GameServer/Server/.idea/.idea.GameServer/.idea/encodings.xml create mode 100644 GameServer/Server/.idea/.idea.GameServer/.idea/indexLayout.xml create mode 100644 GameServer/Server/.idea/.idea.GameServer/.idea/sshConfigs.xml create mode 100644 GameServer/Server/.idea/.idea.GameServer/.idea/vcs.xml create mode 100644 GameServer/Server/.idea/.idea.GameServer/.idea/webServers.xml create mode 100644 GameServer/Server/.vs/GameServer/DesignTimeBuild/.dtbcache.v2 create mode 100644 GameServer/Server/.vs/GameServer/FileContentIndex/02337ab6-ac65-4c33-aba9-0a893e08a6fd.vsidx create mode 100644 GameServer/Server/.vs/GameServer/FileContentIndex/e7946b6b-af37-4064-bfde-5bf32f813bd6.vsidx create mode 100644 GameServer/Server/.vs/GameServer/FileContentIndex/f09d1882-9418-4756-a216-6f48af18b13e.vsidx create mode 100644 GameServer/Server/.vs/GameServer/v17/.futdcache.v2 create mode 100644 GameServer/Server/.vs/GameServer/v17/.suo create mode 100644 GameServer/Server/.vs/GameServer/v17/DocumentLayout.backup.json create mode 100644 GameServer/Server/.vs/GameServer/v17/DocumentLayout.json create mode 100644 GameServer/Server/.vs/ProjectEvaluation/gameserver.metadata.v9.bin create mode 100644 GameServer/Server/.vs/ProjectEvaluation/gameserver.projects.v9.bin create mode 100644 GameServer/Server/.vs/ProjectEvaluation/gameserver.strings.v9.bin create mode 100644 GameServer/Server/APlugins/APlugins.csproj create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/CommandLine.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/EPPlus.Interfaces.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/EPPlus.System.Drawing.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/EPPlus.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Excel/Custom.txt create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Excel/Server/MachineConfig.xlsx create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Excel/Server/ProcessConfig.xlsx create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Excel/Server/SceneConfig.xlsx create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Excel/Server/WorldConfig.xlsx create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Excel/Version.txt create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/ExporterSettings.json create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Fantasy.Tools.ConfigTable create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Fantasy.Tools.ConfigTable.deps.json create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Fantasy.Tools.ConfigTable.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Fantasy.Tools.ConfigTable.pdb create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Fantasy.Tools.ConfigTable.runtimeconfig.json create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Json/Server/MachineConfigData.Json create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Json/Server/ProcessConfigData.Json create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Json/Server/SceneConfigData.Json create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Json/Server/WorldConfigData.Json create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.CodeAnalysis.CSharp.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.CodeAnalysis.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.Extensions.Configuration.Abstractions.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.Extensions.Configuration.FileExtensions.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.Extensions.Configuration.Json.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.Extensions.Configuration.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.Extensions.FileProviders.Abstractions.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.Extensions.FileProviders.Physical.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.Extensions.FileSystemGlobbing.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.Extensions.Primitives.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.IO.RecyclableMemoryStream.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Microsoft.Win32.SystemEvents.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/NetworkProtocol/Inner/InnerMessage.proto create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/NetworkProtocol/OpCode.Cache create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/NetworkProtocol/Outer/OuterMessage.proto create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/NetworkProtocol/RouteType.Config create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Newtonsoft.Json.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/README.md create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Run.bat create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/Run.sh create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/System.Drawing.Common.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/System.Formats.Asn1.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/System.Security.Cryptography.Pkcs.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/System.Text.Json.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/protobuf-net.Core.dll create mode 100644 GameServer/Server/APlugins/Tools/Exporter/ConfigTable/protobuf-net.dll create mode 100644 GameServer/Server/APlugins/bin/Debug/net9.0/APlugins.deps.json create mode 100644 GameServer/Server/APlugins/bin/Debug/net9.0/APlugins.dll create mode 100644 GameServer/Server/APlugins/bin/Debug/net9.0/APlugins.pdb create mode 100644 GameServer/Server/APlugins/bin/Release/net9.0/APlugins.deps.json create mode 100644 GameServer/Server/APlugins/bin/Release/net9.0/APlugins.dll create mode 100644 GameServer/Server/APlugins/bin/Release/net9.0/APlugins.pdb create mode 100644 GameServer/Server/APlugins/obj/APlugins.csproj.nuget.dgspec.json create mode 100644 GameServer/Server/APlugins/obj/APlugins.csproj.nuget.g.props create mode 100644 GameServer/Server/APlugins/obj/APlugins.csproj.nuget.g.targets create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/APlugins.AssemblyInfo.cs create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/APlugins.AssemblyInfoInputs.cache create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/APlugins.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/APlugins.GlobalUsings.g.cs create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/APlugins.assets.cache create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/APlugins.csproj.AssemblyReference.cache create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/APlugins.csproj.CoreCompileInputs.cache create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/APlugins.csproj.FileListAbsolute.txt create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/APlugins.dll create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/APlugins.pdb create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/Plugins.AssemblyInfo.cs create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/Plugins.AssemblyInfoInputs.cache create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/Plugins.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/Plugins.GlobalUsings.g.cs create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/ref/APlugins.dll create mode 100644 GameServer/Server/APlugins/obj/Debug/net9.0/refint/APlugins.dll create mode 100644 GameServer/Server/APlugins/obj/Plugins.csproj.nuget.dgspec.json create mode 100644 GameServer/Server/APlugins/obj/Plugins.csproj.nuget.g.props create mode 100644 GameServer/Server/APlugins/obj/Plugins.csproj.nuget.g.targets create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/APlugins.AssemblyInfo.cs create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/APlugins.AssemblyInfoInputs.cache create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/APlugins.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/APlugins.GlobalUsings.g.cs create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/APlugins.assets.cache create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/APlugins.csproj.AssemblyReference.cache create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/APlugins.csproj.CoreCompileInputs.cache create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/APlugins.csproj.FileListAbsolute.txt create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/APlugins.dll create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/APlugins.pdb create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/ref/APlugins.dll create mode 100644 GameServer/Server/APlugins/obj/Release/net9.0/refint/APlugins.dll create mode 100644 GameServer/Server/APlugins/obj/project.assets.json create mode 100644 GameServer/Server/APlugins/obj/project.nuget.cache create mode 100644 GameServer/Server/APlugins/obj/project.packagespec.json create mode 100644 GameServer/Server/APlugins/obj/rider.project.model.nuget.info create mode 100644 GameServer/Server/APlugins/obj/rider.project.restore.info create mode 100644 GameServer/Server/Entity/AssemblyHelper.cs create mode 100644 GameServer/Server/Entity/Common/GameErrorCode.cs create mode 100644 GameServer/Server/Entity/Entity.csproj create mode 100644 GameServer/Server/Entity/Enum/Commom/ELockType.cs create mode 100644 GameServer/Server/Entity/Generate/ConfigTable/Entity/UnitConfig.cs create mode 100644 GameServer/Server/Entity/Generate/CustomExport/SceneType.cs create mode 100644 GameServer/Server/Entity/Generate/NetworkProtocol/InnerMessage.cs create mode 100644 GameServer/Server/Entity/Generate/NetworkProtocol/InnerOpcode.cs create mode 100644 GameServer/Server/Entity/Generate/NetworkProtocol/OuterMessage.cs create mode 100644 GameServer/Server/Entity/Generate/NetworkProtocol/OuterOpcode.cs create mode 100644 GameServer/Server/Entity/Generate/NetworkProtocol/RouteType.cs create mode 100644 GameServer/Server/Entity/Model/Authentication/Account/Account.cs create mode 100644 GameServer/Server/Entity/Model/Authentication/Account/AccountCacheInfo.cs create mode 100644 GameServer/Server/Entity/Model/Authentication/AuthenticationComponent.cs create mode 100644 GameServer/Server/Entity/Model/Authentication/JWT/AuthenticationJWTComponent.cs create mode 100644 GameServer/Server/Entity/Model/Authentication/TimeOut/AccountInfoTimeOuterComponent.cs create mode 100644 GameServer/Server/Entity/Model/Authentication/TimeOut/AccountTimeOuterComponent.cs create mode 100644 GameServer/Server/Entity/Model/Chat/ChatChannel/ChatChannel.cs create mode 100644 GameServer/Server/Entity/Model/Chat/ChatChannel/ChatChannelCenterComponent.cs create mode 100644 GameServer/Server/Entity/Model/Chat/ChatManageComponent.cs create mode 100644 GameServer/Server/Entity/Model/Chat/ChatUnit.cs create mode 100644 GameServer/Server/Entity/Model/Gate/GameAccount/GameAccount.cs create mode 100644 GameServer/Server/Entity/Model/Gate/GameAccount/GameAccountFlagComponent.cs create mode 100644 GameServer/Server/Entity/Model/Gate/GameAccount/GameAccountManageComponent.cs create mode 100644 GameServer/Server/Entity/Model/Gate/GateComponent.cs create mode 100644 GameServer/Server/Entity/Model/Gate/JWT/GateJWTComponent.cs create mode 100644 GameServer/Server/Entity/Model/Session/EntityTimeOutComponent.cs create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/Excel/Custom.txt create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/Excel/Server/MachineConfig.xlsx create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/Excel/Server/ProcessConfig.xlsx create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/Excel/Server/SceneConfig.xlsx create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/Excel/Server/WorldConfig.xlsx create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/Excel/Version.txt create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/Json/Server/MachineConfigData.Json create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/Json/Server/ProcessConfigData.Json create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/Json/Server/SceneConfigData.Json create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/Json/Server/WorldConfigData.Json create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/NetworkProtocol/Inner/InnerMessage.proto create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/NetworkProtocol/OpCode.Cache create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/NetworkProtocol/Outer/OuterMessage.proto create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/NetworkProtocol/RouteType.Config create mode 100644 GameServer/Server/Entity/Tools/Exporter/ConfigTable/README.md create mode 100644 GameServer/Server/Entity/bin/Debug/net9.0/APlugins.dll create mode 100644 GameServer/Server/Entity/bin/Debug/net9.0/APlugins.pdb create mode 100644 GameServer/Server/Entity/bin/Debug/net9.0/Entity.deps.json create mode 100644 GameServer/Server/Entity/bin/Debug/net9.0/Entity.dll create mode 100644 GameServer/Server/Entity/bin/Debug/net9.0/Entity.pdb create mode 100644 GameServer/Server/Entity/bin/Release/net9.0/APlugins.dll create mode 100644 GameServer/Server/Entity/bin/Release/net9.0/APlugins.pdb create mode 100644 GameServer/Server/Entity/bin/Release/net9.0/Entity.deps.json create mode 100644 GameServer/Server/Entity/bin/Release/net9.0/Entity.dll create mode 100644 GameServer/Server/Entity/bin/Release/net9.0/Entity.pdb create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.AssemblyInfo.cs create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.AssemblyInfoInputs.cache create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.GlobalUsings.g.cs create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.assets.cache create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.csproj.AssemblyReference.cache create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.csproj.CoreCompileInputs.cache create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.csproj.FileListAbsolute.txt create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.csproj.Up2Date create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.dll create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/Entity.pdb create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/ref/Entity.dll create mode 100644 GameServer/Server/Entity/obj/Debug/net9.0/refint/Entity.dll create mode 100644 GameServer/Server/Entity/obj/Entity.csproj.nuget.dgspec.json create mode 100644 GameServer/Server/Entity/obj/Entity.csproj.nuget.g.props create mode 100644 GameServer/Server/Entity/obj/Entity.csproj.nuget.g.targets create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.AssemblyInfo.cs create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.AssemblyInfoInputs.cache create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.GlobalUsings.g.cs create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.assets.cache create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.csproj.AssemblyReference.cache create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.csproj.CoreCompileInputs.cache create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.csproj.FileListAbsolute.txt create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.csproj.Up2Date create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.dll create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/Entity.pdb create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/ref/Entity.dll create mode 100644 GameServer/Server/Entity/obj/Release/net9.0/refint/Entity.dll create mode 100644 GameServer/Server/Entity/obj/project.assets.json create mode 100644 GameServer/Server/Entity/obj/project.nuget.cache create mode 100644 GameServer/Server/Entity/obj/project.packagespec.json create mode 100644 GameServer/Server/Entity/obj/rider.project.model.nuget.info create mode 100644 GameServer/Server/Entity/obj/rider.project.restore.info create mode 100644 GameServer/Server/GameServer.sln create mode 100644 GameServer/Server/GameServer.sln.DotSettings.user create mode 100644 GameServer/Server/Hotfix/Hotfix.csproj create mode 100644 GameServer/Server/Hotfix/OnCreateScene_InitEvent.cs create mode 100644 GameServer/Server/Hotfix/Outter/Authentication/Account/AccountSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Authentication/Account/TimeOut/AccountInfoTimeOuterComponentSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Authentication/Account/TimeOut/AccountTimeOuterComponent.cs create mode 100644 GameServer/Server/Hotfix/Outter/Authentication/AuthenticationComponentSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Authentication/Handler/C2A_LoginRequestHandler.cs create mode 100644 GameServer/Server/Hotfix/Outter/Authentication/Handler/C2A_RegisterRequestHandler.cs create mode 100644 GameServer/Server/Hotfix/Outter/Authentication/Helper/AuthenticationHelper.cs create mode 100644 GameServer/Server/Hotfix/Outter/Authentication/JWT/AuthenticationJWTComponentSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Authentication/JWT/Helper/AuthenticationJWTComponentHelper.cs create mode 100644 GameServer/Server/Hotfix/Outter/Chat/ChatChannel/ChatChannelCenterComponentSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Chat/ChatChannel/ChatChannelSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Chat/ChatManageComponentSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Chat/Handler/Inner/G2Chat_LoginRequestHandler.cs create mode 100644 GameServer/Server/Hotfix/Outter/Chat/Handler/Inner/G2Chat_OfflineRequestHandler.cs create mode 100644 GameServer/Server/Hotfix/Outter/Chat/Handler/Outer/C2Chat_BoardRequestMessageHandler.cs create mode 100644 GameServer/Server/Hotfix/Outter/Chat/Handler/Outer/C2Chat_TestRequestHandler.cs create mode 100644 GameServer/Server/Hotfix/Outter/Chat/Helper/ChatChannelCenterComponentHelper.cs create mode 100644 GameServer/Server/Hotfix/Outter/Chat/Helper/ChatComponentHelper.cs create mode 100644 GameServer/Server/Hotfix/Outter/Chat/Helper/ChatHelper.cs create mode 100644 GameServer/Server/Hotfix/Outter/Common/Data/ServerDataHelper.cs create mode 100644 GameServer/Server/Hotfix/Outter/Entity/EntityTimeOutComponentSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Entity/EntityTimeOutHelper.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/GameAccount/GameAccountFactory.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/GameAccount/GameAccountFlagComponentSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/GameAccount/GameAccountManageComponentSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/GameAccount/GameAccountSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/GameAccount/Helper/GameAccountHelper.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/GateComponentSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/Handler/C2G_LoginRequestHandler.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/Handler/C2G_UpdateAndSaveGameNameRequestHandler.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/Handler/G2C_GetGameAccountInfoHandler.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/Handler/Inner/Chat2G_BoardMessageHandler.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/Helper/GateComponentHelper.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/Helper/GateLoginHelper.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/JWT/GateJWTComponentSystem.cs create mode 100644 GameServer/Server/Hotfix/Outter/Gate/JWT/Helper/GateJwtComponentHelper.cs create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/Excel/Custom.txt create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/Excel/Server/MachineConfig.xlsx create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/Excel/Server/ProcessConfig.xlsx create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/Excel/Server/SceneConfig.xlsx create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/Excel/Server/WorldConfig.xlsx create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/Excel/Version.txt create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/Json/Server/MachineConfigData.Json create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/Json/Server/ProcessConfigData.Json create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/Json/Server/SceneConfigData.Json create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/Json/Server/WorldConfigData.Json create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/NetworkProtocol/Inner/InnerMessage.proto create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/NetworkProtocol/OpCode.Cache create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/NetworkProtocol/Outer/OuterMessage.proto create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/NetworkProtocol/RouteType.Config create mode 100644 GameServer/Server/Hotfix/Tools/Exporter/ConfigTable/README.md create mode 100644 GameServer/Server/Hotfix/bin/Debug/net9.0/APlugins.dll create mode 100644 GameServer/Server/Hotfix/bin/Debug/net9.0/APlugins.pdb create mode 100644 GameServer/Server/Hotfix/bin/Debug/net9.0/Entity.dll create mode 100644 GameServer/Server/Hotfix/bin/Debug/net9.0/Entity.pdb create mode 100644 GameServer/Server/Hotfix/bin/Debug/net9.0/Hotfix.deps.json create mode 100644 GameServer/Server/Hotfix/bin/Debug/net9.0/Hotfix.dll create mode 100644 GameServer/Server/Hotfix/bin/Debug/net9.0/Hotfix.pdb create mode 100644 GameServer/Server/Hotfix/bin/Release/net9.0/APlugins.dll create mode 100644 GameServer/Server/Hotfix/bin/Release/net9.0/APlugins.pdb create mode 100644 GameServer/Server/Hotfix/bin/Release/net9.0/Entity.dll create mode 100644 GameServer/Server/Hotfix/bin/Release/net9.0/Entity.pdb create mode 100644 GameServer/Server/Hotfix/bin/Release/net9.0/Hotfix.deps.json create mode 100644 GameServer/Server/Hotfix/bin/Release/net9.0/Hotfix.dll create mode 100644 GameServer/Server/Hotfix/bin/Release/net9.0/Hotfix.pdb create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.AssemblyInfo.cs create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.AssemblyInfoInputs.cache create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.GlobalUsings.g.cs create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.assets.cache create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.csproj.AssemblyReference.cache create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.csproj.CoreCompileInputs.cache create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.csproj.FileListAbsolute.txt create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.csproj.Up2Date create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.dll create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/Hotfix.pdb create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/ref/Hotfix.dll create mode 100644 GameServer/Server/Hotfix/obj/Debug/net9.0/refint/Hotfix.dll create mode 100644 GameServer/Server/Hotfix/obj/Hotfix.csproj.nuget.dgspec.json create mode 100644 GameServer/Server/Hotfix/obj/Hotfix.csproj.nuget.g.props create mode 100644 GameServer/Server/Hotfix/obj/Hotfix.csproj.nuget.g.targets create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.AssemblyInfo.cs create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.AssemblyInfoInputs.cache create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.GlobalUsings.g.cs create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.assets.cache create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.csproj.AssemblyReference.cache create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.csproj.CoreCompileInputs.cache create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.csproj.FileListAbsolute.txt create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.csproj.Up2Date create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.dll create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/Hotfix.pdb create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/ref/Hotfix.dll create mode 100644 GameServer/Server/Hotfix/obj/Release/net9.0/refint/Hotfix.dll create mode 100644 GameServer/Server/Hotfix/obj/project.assets.json create mode 100644 GameServer/Server/Hotfix/obj/project.nuget.cache create mode 100644 GameServer/Server/Hotfix/obj/project.packagespec.json create mode 100644 GameServer/Server/Hotfix/obj/rider.project.model.nuget.info create mode 100644 GameServer/Server/Hotfix/obj/rider.project.restore.info create mode 100644 GameServer/Server/Main/Main.csproj create mode 100644 GameServer/Server/Main/NLog.config create mode 100644 GameServer/Server/Main/NLog.xsd create mode 100644 GameServer/Server/Main/Program.cs create mode 100644 GameServer/Server/Main/Properties/launchSettings.json create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/Excel/Custom.txt create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/Excel/Server/MachineConfig.xlsx create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/Excel/Server/ProcessConfig.xlsx create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/Excel/Server/SceneConfig.xlsx create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/Excel/Server/WorldConfig.xlsx create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/Excel/Version.txt create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/Json/Server/MachineConfigData.Json create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/Json/Server/ProcessConfigData.Json create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/Json/Server/SceneConfigData.Json create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/Json/Server/WorldConfigData.Json create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/NetworkProtocol/Inner/InnerMessage.proto create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/NetworkProtocol/OpCode.Cache create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/NetworkProtocol/Outer/OuterMessage.proto create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/NetworkProtocol/RouteType.Config create mode 100644 GameServer/Server/Main/Tools/Exporter/ConfigTable/README.md create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/CommandLine.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/DnsClient.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Entity.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Entity.pdb create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Fantasy-Net.NLog.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Fantasy-Net.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Hotfix.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Hotfix.pdb create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Main.deps.json create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Main.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Main.exe create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Main.pdb create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Main.runtimeconfig.json create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/MongoDB.Bson.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/MongoDB.Driver.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/NLog.config create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/NLog.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/NLog.xsd create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Newtonsoft.Json.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/SharpCompress.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/Snappier.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/ZstdSharp.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/protobuf-net.Core.dll create mode 100644 GameServer/Server/Main/bin/Debug/net9.0/protobuf-net.dll create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.AssemblyInfo.cs create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.AssemblyInfoInputs.cache create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.GlobalUsings.g.cs create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.assets.cache create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.csproj.AssemblyReference.cache create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.csproj.CoreCompileInputs.cache create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.csproj.FileListAbsolute.txt create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.csproj.Up2Date create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.dll create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.genruntimeconfig.cache create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/Main.pdb create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/apphost.exe create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/ref/Main.dll create mode 100644 GameServer/Server/Main/obj/Debug/net9.0/refint/Main.dll create mode 100644 GameServer/Server/Main/obj/Main.csproj.nuget.dgspec.json create mode 100644 GameServer/Server/Main/obj/Main.csproj.nuget.g.props create mode 100644 GameServer/Server/Main/obj/Main.csproj.nuget.g.targets create mode 100644 GameServer/Server/Main/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.AssemblyInfo.cs create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.AssemblyInfoInputs.cache create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.GlobalUsings.g.cs create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.assets.cache create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.csproj.AssemblyReference.cache create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.csproj.CoreCompileInputs.cache create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.csproj.FileListAbsolute.txt create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.csproj.Up2Date create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.dll create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.genruntimeconfig.cache create mode 100644 GameServer/Server/Main/obj/Release/net9.0/Main.pdb create mode 100644 GameServer/Server/Main/obj/Release/net9.0/apphost.exe create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.AssemblyInfo.cs create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.AssemblyInfoInputs.cache create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.GlobalUsings.g.cs create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.assets.cache create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.csproj.AssemblyReference.cache create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.csproj.CoreCompileInputs.cache create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.csproj.FileListAbsolute.txt create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.csproj.Up2Date create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.dll create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.genruntimeconfig.cache create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/Main.pdb create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/PublishOutputs.2607d84ed1.txt create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/PublishOutputs.45828c0e46.txt create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/apphost create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/ref/Main.dll create mode 100644 GameServer/Server/Main/obj/Release/net9.0/linux-x64/refint/Main.dll create mode 100644 GameServer/Server/Main/obj/Release/net9.0/ref/Main.dll create mode 100644 GameServer/Server/Main/obj/Release/net9.0/refint/Main.dll create mode 100644 GameServer/Server/Main/obj/project.assets.json create mode 100644 GameServer/Server/Main/obj/project.nuget.cache create mode 100644 GameServer/Server/Main/obj/project.packagespec.json create mode 100644 GameServer/Server/Main/obj/rider.project.model.nuget.info create mode 100644 GameServer/Server/Main/obj/rider.project.restore.info create mode 100644 GameServer/Tools/ConfigTable/CommandLine.dll create mode 100644 GameServer/Tools/ConfigTable/EPPlus.Interfaces.dll create mode 100644 GameServer/Tools/ConfigTable/EPPlus.System.Drawing.dll create mode 100644 GameServer/Tools/ConfigTable/EPPlus.dll create mode 100644 GameServer/Tools/ConfigTable/ExporterSettings.json create mode 100644 GameServer/Tools/ConfigTable/Fantasy.Tools.ConfigTable create mode 100644 GameServer/Tools/ConfigTable/Fantasy.Tools.ConfigTable.deps.json create mode 100644 GameServer/Tools/ConfigTable/Fantasy.Tools.ConfigTable.dll create mode 100644 GameServer/Tools/ConfigTable/Fantasy.Tools.ConfigTable.pdb create mode 100644 GameServer/Tools/ConfigTable/Fantasy.Tools.ConfigTable.runtimeconfig.json create mode 100644 GameServer/Tools/ConfigTable/Microsoft.CodeAnalysis.CSharp.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.CodeAnalysis.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.Extensions.Configuration.Abstractions.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.Extensions.Configuration.FileExtensions.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.Extensions.Configuration.Json.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.Extensions.Configuration.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.Extensions.FileProviders.Abstractions.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.Extensions.FileProviders.Physical.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.Extensions.FileSystemGlobbing.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.Extensions.Primitives.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.IO.RecyclableMemoryStream.dll create mode 100644 GameServer/Tools/ConfigTable/Microsoft.Win32.SystemEvents.dll create mode 100644 GameServer/Tools/ConfigTable/Newtonsoft.Json.dll create mode 100644 GameServer/Tools/ConfigTable/Run.bat create mode 100644 GameServer/Tools/ConfigTable/Run.sh create mode 100644 GameServer/Tools/ConfigTable/System.Drawing.Common.dll create mode 100644 GameServer/Tools/ConfigTable/System.Formats.Asn1.dll create mode 100644 GameServer/Tools/ConfigTable/System.Security.Cryptography.Pkcs.dll create mode 100644 GameServer/Tools/ConfigTable/System.Text.Json.dll create mode 100644 GameServer/Tools/ConfigTable/protobuf-net.Core.dll create mode 100644 GameServer/Tools/ConfigTable/protobuf-net.dll create mode 100644 GameServer/Tools/ConfigTable/runtimes/win/lib/net7.0/Microsoft.Win32.SystemEvents.dll create mode 100644 GameServer/Tools/ConfigTable/runtimes/win/lib/net7.0/System.Drawing.Common.dll create mode 100644 GameServer/Tools/ConfigTable/runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll create mode 100644 GameServer/Tools/NetworkProtocol/CommandLine.dll create mode 100644 GameServer/Tools/NetworkProtocol/ExporterSettings.json create mode 100644 GameServer/Tools/NetworkProtocol/Fantasy.Tools.NetworkProtocol create mode 100644 GameServer/Tools/NetworkProtocol/Fantasy.Tools.NetworkProtocol.deps.json create mode 100644 GameServer/Tools/NetworkProtocol/Fantasy.Tools.NetworkProtocol.dll create mode 100644 GameServer/Tools/NetworkProtocol/Fantasy.Tools.NetworkProtocol.pdb create mode 100644 GameServer/Tools/NetworkProtocol/Fantasy.Tools.NetworkProtocol.runtimeconfig.json create mode 100644 GameServer/Tools/NetworkProtocol/Microsoft.Extensions.Configuration.Abstractions.dll create mode 100644 GameServer/Tools/NetworkProtocol/Microsoft.Extensions.Configuration.FileExtensions.dll create mode 100644 GameServer/Tools/NetworkProtocol/Microsoft.Extensions.Configuration.Json.dll create mode 100644 GameServer/Tools/NetworkProtocol/Microsoft.Extensions.Configuration.dll create mode 100644 GameServer/Tools/NetworkProtocol/Microsoft.Extensions.FileProviders.Abstractions.dll create mode 100644 GameServer/Tools/NetworkProtocol/Microsoft.Extensions.FileProviders.Physical.dll create mode 100644 GameServer/Tools/NetworkProtocol/Microsoft.Extensions.FileSystemGlobbing.dll create mode 100644 GameServer/Tools/NetworkProtocol/Microsoft.Extensions.Primitives.dll create mode 100644 GameServer/Tools/NetworkProtocol/Newtonsoft.Json.dll create mode 100644 GameServer/Tools/NetworkProtocol/Run.bat create mode 100644 GameServer/Tools/NetworkProtocol/Run.sh create mode 100644 Tools/FileServer/.gitignore create mode 100644 Tools/FileServer/README.md create mode 100644 Tools/FileServer/bin/app.js create mode 100644 Tools/FileServer/index.js create mode 100644 Tools/FileServer/instal.bat create mode 100644 Tools/FileServer/instal.sh create mode 100644 Tools/FileServer/package.json create mode 100644 Tools/FileServer/src/mime.js create mode 100644 Tools/FileServer/src/static-server.js create mode 100644 Tools/FileServer/src/templates/404.js create mode 100644 Tools/FileServer/src/templates/default.js create mode 100644 Tools/FileServer/src/templates/images/404.png create mode 100644 Tools/FileServer/src/templates/index.js create mode 100644 Tools/FileServer/start.bat create mode 100644 Tools/FileServer/start.sh create mode 100644 Tools/Luban/CommandLine.dll create mode 100644 Tools/Luban/ExcelDataReader.dll create mode 100644 Tools/Luban/Google.Protobuf.dll create mode 100644 Tools/Luban/Luban.Bson.deps.json create mode 100644 Tools/Luban/Luban.Bson.dll create mode 100644 Tools/Luban/Luban.Bson.pdb create mode 100644 Tools/Luban/Luban.CSharp.deps.json create mode 100644 Tools/Luban/Luban.CSharp.dll create mode 100644 Tools/Luban/Luban.CSharp.pdb create mode 100644 Tools/Luban/Luban.Core.deps.json create mode 100644 Tools/Luban/Luban.Core.dll create mode 100644 Tools/Luban/Luban.Core.pdb create mode 100644 Tools/Luban/Luban.Cpp.deps.json create mode 100644 Tools/Luban/Luban.Cpp.dll create mode 100644 Tools/Luban/Luban.Cpp.pdb create mode 100644 Tools/Luban/Luban.DataLoader.Builtin.deps.json create mode 100644 Tools/Luban/Luban.DataLoader.Builtin.dll create mode 100644 Tools/Luban/Luban.DataLoader.Builtin.pdb create mode 100644 Tools/Luban/Luban.DataTarget.Builtin.deps.json create mode 100644 Tools/Luban/Luban.DataTarget.Builtin.dll create mode 100644 Tools/Luban/Luban.DataTarget.Builtin.pdb create mode 100644 Tools/Luban/Luban.DataValidator.Builtin.deps.json create mode 100644 Tools/Luban/Luban.DataValidator.Builtin.dll create mode 100644 Tools/Luban/Luban.DataValidator.Builtin.pdb create mode 100644 Tools/Luban/Luban.FlatBuffers.deps.json create mode 100644 Tools/Luban/Luban.FlatBuffers.dll create mode 100644 Tools/Luban/Luban.FlatBuffers.pdb create mode 100644 Tools/Luban/Luban.Gdscript.deps.json create mode 100644 Tools/Luban/Luban.Gdscript.dll create mode 100644 Tools/Luban/Luban.Gdscript.pdb create mode 100644 Tools/Luban/Luban.Golang.deps.json create mode 100644 Tools/Luban/Luban.Golang.dll create mode 100644 Tools/Luban/Luban.Golang.pdb create mode 100644 Tools/Luban/Luban.Java.deps.json create mode 100644 Tools/Luban/Luban.Java.dll create mode 100644 Tools/Luban/Luban.Java.pdb create mode 100644 Tools/Luban/Luban.L10N.deps.json create mode 100644 Tools/Luban/Luban.L10N.dll create mode 100644 Tools/Luban/Luban.L10N.pdb create mode 100644 Tools/Luban/Luban.Lua.deps.json create mode 100644 Tools/Luban/Luban.Lua.dll create mode 100644 Tools/Luban/Luban.Lua.pdb create mode 100644 Tools/Luban/Luban.MsgPack.deps.json create mode 100644 Tools/Luban/Luban.MsgPack.dll create mode 100644 Tools/Luban/Luban.MsgPack.pdb create mode 100644 Tools/Luban/Luban.PHP.deps.json create mode 100644 Tools/Luban/Luban.PHP.dll create mode 100644 Tools/Luban/Luban.PHP.pdb create mode 100644 Tools/Luban/Luban.Protobuf.deps.json create mode 100644 Tools/Luban/Luban.Protobuf.dll create mode 100644 Tools/Luban/Luban.Protobuf.pdb create mode 100644 Tools/Luban/Luban.Python.deps.json create mode 100644 Tools/Luban/Luban.Python.dll create mode 100644 Tools/Luban/Luban.Python.pdb create mode 100644 Tools/Luban/Luban.Rust.deps.json create mode 100644 Tools/Luban/Luban.Rust.dll create mode 100644 Tools/Luban/Luban.Rust.pdb create mode 100644 Tools/Luban/Luban.Schema.Builtin.deps.json create mode 100644 Tools/Luban/Luban.Schema.Builtin.dll create mode 100644 Tools/Luban/Luban.Schema.Builtin.pdb create mode 100644 Tools/Luban/Luban.Schema.Builtin.runtimeconfig.json create mode 100644 Tools/Luban/Luban.Typescript.deps.json create mode 100644 Tools/Luban/Luban.Typescript.dll create mode 100644 Tools/Luban/Luban.Typescript.pdb create mode 100644 Tools/Luban/Luban.deps.json create mode 100644 Tools/Luban/Luban.dll create mode 100644 Tools/Luban/Luban.exe create mode 100644 Tools/Luban/Luban.pdb create mode 100644 Tools/Luban/Luban.runtimeconfig.json create mode 100644 Tools/Luban/MessagePack.Annotations.dll create mode 100644 Tools/Luban/MessagePack.dll create mode 100644 Tools/Luban/Microsoft.NET.StringTools.dll create mode 100644 Tools/Luban/NLog.dll create mode 100644 Tools/Luban/Neo.Lua.dll create mode 100644 Tools/Luban/Newtonsoft.Json.Bson.dll create mode 100644 Tools/Luban/Newtonsoft.Json.dll create mode 100644 Tools/Luban/Scriban.dll create mode 100644 Tools/Luban/Templates/common/cpp/enum.sbn create mode 100644 Tools/Luban/Templates/common/cs/enum.sbn create mode 100644 Tools/Luban/Templates/common/go/enum.sbn create mode 100644 Tools/Luban/Templates/common/java/enum.sbn create mode 100644 Tools/Luban/Templates/common/php/enum.sbn create mode 100644 Tools/Luban/Templates/common/rs/macros/Cargo.toml.sbn create mode 100644 Tools/Luban/Templates/common/rs/macros/src/lib.rs.sbn create mode 100644 Tools/Luban/Templates/common/ts/enum.sbn create mode 100644 Tools/Luban/Templates/cpp-rawptr-bin/bean.sbn create mode 100644 Tools/Luban/Templates/cpp-rawptr-bin/schema_cpp.sbn create mode 100644 Tools/Luban/Templates/cpp-rawptr-bin/schema_h.sbn create mode 100644 Tools/Luban/Templates/cpp-rawptr-bin/table.sbn create mode 100644 Tools/Luban/Templates/cpp-rawptr-bin/tables.sbn create mode 100644 Tools/Luban/Templates/cpp-sharedptr-bin/bean.sbn create mode 100644 Tools/Luban/Templates/cpp-sharedptr-bin/schema_cpp.sbn create mode 100644 Tools/Luban/Templates/cpp-sharedptr-bin/schema_h.sbn create mode 100644 Tools/Luban/Templates/cpp-sharedptr-bin/table.sbn create mode 100644 Tools/Luban/Templates/cpp-sharedptr-bin/tables.sbn create mode 100644 Tools/Luban/Templates/cs-bin/bean.sbn create mode 100644 Tools/Luban/Templates/cs-bin/table.sbn create mode 100644 Tools/Luban/Templates/cs-bin/tables.sbn create mode 100644 Tools/Luban/Templates/cs-dotnet-json/bean.sbn create mode 100644 Tools/Luban/Templates/cs-dotnet-json/table.sbn create mode 100644 Tools/Luban/Templates/cs-dotnet-json/tables.sbn create mode 100644 Tools/Luban/Templates/cs-editor-json/bean.sbn create mode 100644 Tools/Luban/Templates/cs-editor-json/enum.sbn create mode 100644 Tools/Luban/Templates/cs-newtonsoft-json/bean.sbn create mode 100644 Tools/Luban/Templates/cs-newtonsoft-json/table.sbn create mode 100644 Tools/Luban/Templates/cs-newtonsoft-json/tables.sbn create mode 100644 Tools/Luban/Templates/cs-simple-json/bean.sbn create mode 100644 Tools/Luban/Templates/cs-simple-json/table.sbn create mode 100644 Tools/Luban/Templates/cs-simple-json/tables.sbn create mode 100644 Tools/Luban/Templates/cs_pb/tables.sbn create mode 100644 Tools/Luban/Templates/flatbuffers/schema.sbn create mode 100644 Tools/Luban/Templates/gdscript-json/schema.sbn create mode 100644 Tools/Luban/Templates/go-bin/bean.sbn create mode 100644 Tools/Luban/Templates/go-bin/table.sbn create mode 100644 Tools/Luban/Templates/go-bin/tables.sbn create mode 100644 Tools/Luban/Templates/go-json/bean.sbn create mode 100644 Tools/Luban/Templates/go-json/table.sbn create mode 100644 Tools/Luban/Templates/go-json/tables.sbn create mode 100644 Tools/Luban/Templates/java-bin/bean.sbn create mode 100644 Tools/Luban/Templates/java-bin/table.sbn create mode 100644 Tools/Luban/Templates/java-bin/tables.sbn create mode 100644 Tools/Luban/Templates/java-json/bean.sbn create mode 100644 Tools/Luban/Templates/java-json/table.sbn create mode 100644 Tools/Luban/Templates/java-json/tables.sbn create mode 100644 Tools/Luban/Templates/lua-bin/schema.sbn create mode 100644 Tools/Luban/Templates/lua-lua/schema.sbn create mode 100644 Tools/Luban/Templates/pb/schema.sbn create mode 100644 Tools/Luban/Templates/php-json/schema.sbn create mode 100644 Tools/Luban/Templates/python-json/schema.sbn create mode 100644 Tools/Luban/Templates/rust-bin/lib.sbn create mode 100644 Tools/Luban/Templates/rust-bin/mod.sbn create mode 100644 Tools/Luban/Templates/rust-bin/toml.sbn create mode 100644 Tools/Luban/Templates/rust-json/lib.sbn create mode 100644 Tools/Luban/Templates/rust-json/mod.sbn create mode 100644 Tools/Luban/Templates/rust-json/toml.sbn create mode 100644 Tools/Luban/Templates/typescript-bin/schema.sbn create mode 100644 Tools/Luban/Templates/typescript-json/schema.sbn create mode 100644 Tools/Luban/Templates/typescript-protobuf/schema.sbn create mode 100644 Tools/Luban/Ude.NetStandard.dll create mode 100644 Tools/Luban/YamlDotNet.NetCore.dll create mode 100644 Tools/Luban/de/Neo.Lua.resources.dll create mode 100644 Tools/Luban/nlog.xml create mode 100644 Tools/build-luban.bat create mode 100644 Tools/build-luban.sh create mode 100644 luban/.editorconfig create mode 100644 luban/.gitattributes create mode 100644 luban/.github/FUNDING.yml create mode 100644 luban/.github/workflows/sync_gitee.yml create mode 100644 luban/.gitignore create mode 100644 luban/.travis.yml create mode 100644 luban/LICENSE create mode 100644 luban/README.md create mode 100644 luban/README_EN.md create mode 100644 luban/docs/_config.yml create mode 100644 luban/docs/images/Client_Server.png create mode 100644 luban/docs/images/adv/def_01.png create mode 100644 luban/docs/images/adv/def_02.png create mode 100644 luban/docs/images/adv/def_03.png create mode 100644 luban/docs/images/adv/def_04.png create mode 100644 luban/docs/images/adv/def_05.png create mode 100644 luban/docs/images/adv/def_06.png create mode 100644 luban/docs/images/adv/def_07.png create mode 100644 luban/docs/images/adv/def_08.png create mode 100644 luban/docs/images/adv/def_09.png create mode 100644 luban/docs/images/adv/def_10.png create mode 100644 luban/docs/images/adv/def_11.png create mode 100644 luban/docs/images/adv/def_12.png create mode 100644 luban/docs/images/adv/def_13.png create mode 100644 luban/docs/images/adv/def_14.png create mode 100644 luban/docs/images/adv/def_15.png create mode 100644 luban/docs/images/adv/def_16.png create mode 100644 luban/docs/images/adv/def_17.png create mode 100644 luban/docs/images/adv/def_18.png create mode 100644 luban/docs/images/adv/def_19.png create mode 100644 luban/docs/images/adv/def_20.png create mode 100644 luban/docs/images/adv/def_21.png create mode 100644 luban/docs/images/adv/def_22.png create mode 100644 luban/docs/images/adv/def_23.png create mode 100644 luban/docs/images/adv/def_24.png create mode 100644 luban/docs/images/adv/def_25.png create mode 100644 luban/docs/images/adv/def_26.png create mode 100644 luban/docs/images/adv/def_27.png create mode 100644 luban/docs/images/adv/def_28.png create mode 100644 luban/docs/images/adv/def_29.png create mode 100644 luban/docs/images/adv/def_30.png create mode 100644 luban/docs/images/adv/def_31.png create mode 100644 luban/docs/images/adv/def_32.png create mode 100644 luban/docs/images/adv/def_33.png create mode 100644 luban/docs/images/adv/def_34.png create mode 100644 luban/docs/images/adv/def_35.png create mode 100644 luban/docs/images/adv/def_36.png create mode 100644 luban/docs/images/adv/def_37.png create mode 100644 luban/docs/images/adv/def_38.png create mode 100644 luban/docs/images/adv/def_39.png create mode 100644 luban/docs/images/adv/def_40.png create mode 100644 luban/docs/images/adv/def_41.png create mode 100644 luban/docs/images/adv/def_42.png create mode 100644 luban/docs/images/adv/def_43.png create mode 100644 luban/docs/images/adv/def_44.png create mode 100644 luban/docs/images/adv/def_45.png create mode 100644 luban/docs/images/adv/def_46.png create mode 100644 luban/docs/images/adv/def_47.png create mode 100644 luban/docs/images/adv/def_48.png create mode 100644 luban/docs/images/adv/def_49.png create mode 100644 luban/docs/images/adv/def_50.png create mode 100644 luban/docs/images/cases/bean.jpg create mode 100644 luban/docs/images/cases/bean2.jpg create mode 100644 luban/docs/images/cases/collection.jpg create mode 100644 luban/docs/images/cases/enum.jpg create mode 100644 luban/docs/images/cases/ignorefield.jpg create mode 100644 luban/docs/images/cases/l10n_text.jpg create mode 100644 luban/docs/images/cases/multileveltitle.jpg create mode 100644 luban/docs/images/cases/multiline.jpg create mode 100644 luban/docs/images/cases/nullable.jpg create mode 100644 luban/docs/images/cases/primitive_type.jpg create mode 100644 luban/docs/images/cases/quickstart_reward.jpg create mode 100644 luban/docs/images/cases/quickstart_table.jpg create mode 100644 luban/docs/images/cases/sep_bean.jpg create mode 100644 luban/docs/images/cases/sep_container1.jpg create mode 100644 luban/docs/images/cases/sep_container2.jpg create mode 100644 luban/docs/images/cases/simple1.jpg create mode 100644 luban/docs/images/cases/singleton.jpg create mode 100644 luban/docs/images/cases/singleton2.jpg create mode 100644 luban/docs/images/cases/stream.jpg create mode 100644 luban/docs/images/cases/table_list_indep_key.jpg create mode 100644 luban/docs/images/cases/table_list_not_key.jpg create mode 100644 luban/docs/images/cases/table_list_union_key.jpg create mode 100644 luban/docs/images/cases/tag.jpg create mode 100644 luban/docs/images/cases/tag2.jpg create mode 100644 luban/docs/images/cases/title_dynamic_bean.jpg create mode 100644 luban/docs/images/cases/title_enum.jpg create mode 100644 luban/docs/images/cases/title_map.jpg create mode 100644 luban/docs/images/cases/titlelimit.jpg create mode 100644 luban/docs/images/docusaurus-social-card.jpg create mode 100644 luban/docs/images/docusaurus.png create mode 100644 luban/docs/images/dots_release.png create mode 100644 luban/docs/images/easy.svg create mode 100644 luban/docs/images/efficient.svg create mode 100644 luban/docs/images/excel_bean.jpg create mode 100644 luban/docs/images/excel_enum.jpg create mode 100644 luban/docs/images/excel_table.jpg create mode 100644 luban/docs/images/favicon.ico create mode 100644 luban/docs/images/favicon.png create mode 100644 luban/docs/images/flying-seagull.jpg create mode 100644 luban/docs/images/icon.png create mode 100644 luban/docs/images/install/install_01.png create mode 100644 luban/docs/images/install/install_02.png create mode 100644 luban/docs/images/install/install_03.png create mode 100644 luban/docs/images/install/install_04.png create mode 100644 luban/docs/images/install/install_05.png create mode 100644 luban/docs/images/install/install_06.png create mode 100644 luban/docs/images/install/install_07.png create mode 100644 luban/docs/images/install/install_08.png create mode 100644 luban/docs/images/install/install_09.png create mode 100644 luban/docs/images/install/install_10.png create mode 100644 luban/docs/images/logo.png create mode 100644 luban/docs/images/logo.svg create mode 100644 luban/docs/images/luban_edit_tool.png create mode 100644 luban/docs/images/more.png create mode 100644 luban/docs/images/other.png create mode 100644 luban/docs/images/panda-waving.png create mode 100644 luban/docs/images/pipeline.jpg create mode 100644 luban/docs/images/process.jpg create mode 100644 luban/docs/images/python.png create mode 100644 luban/docs/images/reliable-dark.svg create mode 100644 luban/docs/images/reliable.svg create mode 100644 luban/docs/images/ui.png create mode 100644 luban/docs/images/undraw_docusaurus_mountain.svg create mode 100644 luban/docs/images/undraw_docusaurus_react.svg create mode 100644 luban/docs/images/undraw_docusaurus_tree.svg create mode 100644 luban/docs/images/web.png create mode 100644 luban/docs/images/weixin.jpg create mode 100644 luban/docs/images/zhifubao.jpg create mode 100644 luban/docs/sponsor/weixin.JPG create mode 100644 luban/docs/sponsor/zhifubao.JPG create mode 100644 luban/scripts/format.bat create mode 100644 luban/scripts/format.sh create mode 100644 luban/src/.dockerignore create mode 100644 luban/src/.editorconfig create mode 100644 luban/src/Luban.Bson/AssemblyInfo.cs create mode 100644 luban/src/Luban.Bson/BsonDataTarget.cs create mode 100644 luban/src/Luban.Bson/BsonDataVisitor.cs create mode 100644 luban/src/Luban.Bson/Luban.Bson.csproj create mode 100644 luban/src/Luban.CSharp/AssemblyInfo.cs create mode 100644 luban/src/Luban.CSharp/CodeTarget/CsharpBinCodeTarget.cs create mode 100644 luban/src/Luban.CSharp/CodeTarget/CsharpCodeTargetBase.cs create mode 100644 luban/src/Luban.CSharp/CodeTarget/CsharpDotnetJsonCodeTarget.cs create mode 100644 luban/src/Luban.CSharp/CodeTarget/CsharpEditorJsonCodeTarget.cs create mode 100644 luban/src/Luban.CSharp/CodeTarget/CsharpNewtonSoftJsonCodeTarget.cs create mode 100644 luban/src/Luban.CSharp/CodeTarget/CsharpSimpleJsonCodeTarget.cs create mode 100644 luban/src/Luban.CSharp/ConstStrings.cs create mode 100644 luban/src/Luban.CSharp/Luban.CSharp.csproj create mode 100644 luban/src/Luban.CSharp/TemplateExtensions/CsharpBinTemplateExtension.cs create mode 100644 luban/src/Luban.CSharp/TemplateExtensions/CsharpDotNetJsonTemplateExtension.cs create mode 100644 luban/src/Luban.CSharp/TemplateExtensions/CsharpEditorJsonTemplateExtension.cs create mode 100644 luban/src/Luban.CSharp/TemplateExtensions/CsharpNewtonSoftJsonTemplateExtension.cs create mode 100644 luban/src/Luban.CSharp/TemplateExtensions/CsharpSimpleJsonTemplateExtension.cs create mode 100644 luban/src/Luban.CSharp/TemplateExtensions/CsharpTemplateExtension.cs create mode 100644 luban/src/Luban.CSharp/Templates/common/cs/enum.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-bin/bean.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-bin/table.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-bin/tables.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-dotnet-json/bean.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-dotnet-json/table.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-dotnet-json/tables.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-editor-json/bean.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-editor-json/enum.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-newtonsoft-json/bean.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-newtonsoft-json/table.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-newtonsoft-json/tables.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-simple-json/bean.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-simple-json/table.sbn create mode 100644 luban/src/Luban.CSharp/Templates/cs-simple-json/tables.sbn create mode 100644 luban/src/Luban.CSharp/TypeVisitors/BinaryDeserializeVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/BinaryUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/ConstValueVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/CtorDefaultValueVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/DataToStringVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/DeclaringCollectionRefNameVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/DeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/DotNetJsonDeserializeVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/EditorDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/EditorInitValueVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/EditorIsRawNullableTypeVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/EditorJsonLoad.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/EditorJsonSave.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/EditorJsonSaveUnderlying.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/EditorJsonSaveUnderlying2.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/EditorNeedInitVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/EditorUnderlyingTypeNameVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/IsRawNullableTypeVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/NeedInitFieldVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/NewtonSoftJsonDeserializeVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/RecursiveResolveVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/SimpleJsonDeserializeVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/StringDeserializeVisitor.cs create mode 100644 luban/src/Luban.CSharp/TypeVisitors/UnderlyingDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Core/AssemblyInfo.cs create mode 100644 luban/src/Luban.Core/BuiltinOptionNames.cs create mode 100644 luban/src/Luban.Core/CodeFormat/CodeFormatManager.cs create mode 100644 luban/src/Luban.Core/CodeFormat/CodeStyleAttribute.cs create mode 100644 luban/src/Luban.Core/CodeFormat/CodeStyles/CodeStyleBase.cs create mode 100644 luban/src/Luban.Core/CodeFormat/CodeStyles/ConfigurableCodeStyle.cs create mode 100644 luban/src/Luban.Core/CodeFormat/CodeStyles/OverlayCodeStyle.cs create mode 100644 luban/src/Luban.Core/CodeFormat/ICodeStyle.cs create mode 100644 luban/src/Luban.Core/CodeFormat/INamingConventionFormatter.cs create mode 100644 luban/src/Luban.Core/CodeFormat/NamingConventionAttribute.cs create mode 100644 luban/src/Luban.Core/CodeFormat/NamingConventionFormatters/CamelCaseFormatter.cs create mode 100644 luban/src/Luban.Core/CodeFormat/NamingConventionFormatters/NoneFormatter.cs create mode 100644 luban/src/Luban.Core/CodeFormat/NamingConventionFormatters/PascalCaseFormatter.cs create mode 100644 luban/src/Luban.Core/CodeFormat/NamingConventionFormatters/SnakeCaseFormatter.cs create mode 100644 luban/src/Luban.Core/CodeFormat/NamingConventionFormatters/UpperCaseFormatter.cs create mode 100644 luban/src/Luban.Core/CodeTarget/AllInOneTemplateCodeTargetBase.cs create mode 100644 luban/src/Luban.Core/CodeTarget/CodeTargetAttribute.cs create mode 100644 luban/src/Luban.Core/CodeTarget/CodeTargetBase.cs create mode 100644 luban/src/Luban.Core/CodeTarget/CodeTargetManager.cs create mode 100644 luban/src/Luban.Core/CodeTarget/CodeWriter.cs create mode 100644 luban/src/Luban.Core/CodeTarget/CommonFileHeaders.cs create mode 100644 luban/src/Luban.Core/CodeTarget/ICodeTarget.cs create mode 100644 luban/src/Luban.Core/CodeTarget/NameLocation.cs create mode 100644 luban/src/Luban.Core/CodeTarget/TemplateCodeTargetBase.cs create mode 100644 luban/src/Luban.Core/CustomBehaviour/BehaviourBaseAttribute.cs create mode 100644 luban/src/Luban.Core/CustomBehaviour/CustomBehaviourManager.cs create mode 100644 luban/src/Luban.Core/CustomBehaviour/ICustomBehaviour.cs create mode 100644 luban/src/Luban.Core/CustomBehaviour/IPriorityBehaviour.cs create mode 100644 luban/src/Luban.Core/DataLoader/DataCreateException.cs create mode 100644 luban/src/Luban.Core/DataLoader/DataLoaderAttribute.cs create mode 100644 luban/src/Luban.Core/DataLoader/DataLoaderBase.cs create mode 100644 luban/src/Luban.Core/DataLoader/DataLoaderManager.cs create mode 100644 luban/src/Luban.Core/DataLoader/FieldNames.cs create mode 100644 luban/src/Luban.Core/DataLoader/IDataLoader.cs create mode 100644 luban/src/Luban.Core/DataTarget/DataExporterAttribute.cs create mode 100644 luban/src/Luban.Core/DataTarget/DataExporterBase.cs create mode 100644 luban/src/Luban.Core/DataTarget/DataTargetAttribute.cs create mode 100644 luban/src/Luban.Core/DataTarget/DataTargetBase.cs create mode 100644 luban/src/Luban.Core/DataTarget/DataTargetManager.cs create mode 100644 luban/src/Luban.Core/DataTarget/IDataExporter.cs create mode 100644 luban/src/Luban.Core/DataTarget/IDataTarget.cs create mode 100644 luban/src/Luban.Core/DataTransformer/DataTransfomerBase.cs create mode 100644 luban/src/Luban.Core/DataTransformer/DataTransformerAttribute.cs create mode 100644 luban/src/Luban.Core/DataTransformer/IDataTransformer.cs create mode 100644 luban/src/Luban.Core/DataVisitors/DataActionHelpVisitor.cs create mode 100644 luban/src/Luban.Core/DataVisitors/DataActionHelpVisitor2.cs create mode 100644 luban/src/Luban.Core/DataVisitors/IDataActionVisitor.cs create mode 100644 luban/src/Luban.Core/DataVisitors/IDataActionVisitor2.cs create mode 100644 luban/src/Luban.Core/DataVisitors/IDataFuncVisitor.cs create mode 100644 luban/src/Luban.Core/DataVisitors/IDataFuncVisitor2.cs create mode 100644 luban/src/Luban.Core/DataVisitors/IsDefaultValueVisitor.cs create mode 100644 luban/src/Luban.Core/DataVisitors/IsSimpleLiteralDataVisitor.cs create mode 100644 luban/src/Luban.Core/DataVisitors/TableVisitor.cs create mode 100644 luban/src/Luban.Core/DataVisitors/ToLiteralVisitorBase.cs create mode 100644 luban/src/Luban.Core/DataVisitors/ToStringVisitor.cs create mode 100644 luban/src/Luban.Core/DataVisitors/ToStringVisitor2.cs create mode 100644 luban/src/Luban.Core/Datas/DArray.cs create mode 100644 luban/src/Luban.Core/Datas/DBean.cs create mode 100644 luban/src/Luban.Core/Datas/DBool.cs create mode 100644 luban/src/Luban.Core/Datas/DByte.cs create mode 100644 luban/src/Luban.Core/Datas/DDateTime.cs create mode 100644 luban/src/Luban.Core/Datas/DDouble.cs create mode 100644 luban/src/Luban.Core/Datas/DEnum.cs create mode 100644 luban/src/Luban.Core/Datas/DFloat.cs create mode 100644 luban/src/Luban.Core/Datas/DInt.cs create mode 100644 luban/src/Luban.Core/Datas/DList.cs create mode 100644 luban/src/Luban.Core/Datas/DLong.cs create mode 100644 luban/src/Luban.Core/Datas/DMap.cs create mode 100644 luban/src/Luban.Core/Datas/DSet.cs create mode 100644 luban/src/Luban.Core/Datas/DShort.cs create mode 100644 luban/src/Luban.Core/Datas/DString.cs create mode 100644 luban/src/Luban.Core/Datas/DType.cs create mode 100644 luban/src/Luban.Core/Defs/DefAssembly.cs create mode 100644 luban/src/Luban.Core/Defs/DefBean.cs create mode 100644 luban/src/Luban.Core/Defs/DefEnum.cs create mode 100644 luban/src/Luban.Core/Defs/DefField.cs create mode 100644 luban/src/Luban.Core/Defs/DefRefGroup.cs create mode 100644 luban/src/Luban.Core/Defs/DefTable.cs create mode 100644 luban/src/Luban.Core/Defs/DefTypeBase.cs create mode 100644 luban/src/Luban.Core/Defs/LoadDefException.cs create mode 100644 luban/src/Luban.Core/Defs/Record.cs create mode 100644 luban/src/Luban.Core/Defs/TableDataInfo.cs create mode 100644 luban/src/Luban.Core/Defs/TableMode.cs create mode 100644 luban/src/Luban.Core/EnvManager.cs create mode 100644 luban/src/Luban.Core/GenerationContext.cs create mode 100644 luban/src/Luban.Core/GlobalConfigLoader.cs create mode 100644 luban/src/Luban.Core/IGenerationContext.cs create mode 100644 luban/src/Luban.Core/L10N/ITextProvider.cs create mode 100644 luban/src/Luban.Core/L10N/L10NManager.cs create mode 100644 luban/src/Luban.Core/L10N/TextProviderAttribute.cs create mode 100644 luban/src/Luban.Core/Luban.Core.csproj create mode 100644 luban/src/Luban.Core/OutputFile.cs create mode 100644 luban/src/Luban.Core/OutputFileManifest.cs create mode 100644 luban/src/Luban.Core/OutputSaver/IOutputSaver.cs create mode 100644 luban/src/Luban.Core/OutputSaver/LocalFileSaver.cs create mode 100644 luban/src/Luban.Core/OutputSaver/NullSaver.cs create mode 100644 luban/src/Luban.Core/OutputSaver/OutputSaverAttribute.cs create mode 100644 luban/src/Luban.Core/OutputSaver/OutputSaverBase.cs create mode 100644 luban/src/Luban.Core/OutputSaver/OutputSaverManager.cs create mode 100644 luban/src/Luban.Core/Pipeline/DefaultPipeline.cs create mode 100644 luban/src/Luban.Core/Pipeline/IPipeline.cs create mode 100644 luban/src/Luban.Core/Pipeline/PipelineArguments.cs create mode 100644 luban/src/Luban.Core/Pipeline/PipelineAttribute.cs create mode 100644 luban/src/Luban.Core/Pipeline/PipelineManager.cs create mode 100644 luban/src/Luban.Core/PostProcess/IPostProcess.cs create mode 100644 luban/src/Luban.Core/PostProcess/PostProcessAttribute.cs create mode 100644 luban/src/Luban.Core/PostProcess/PostProcessBase.cs create mode 100644 luban/src/Luban.Core/PostProcess/PostProcessManager.cs create mode 100644 luban/src/Luban.Core/RawDefs/RawAssembly.cs create mode 100644 luban/src/Luban.Core/RawDefs/RawBean.cs create mode 100644 luban/src/Luban.Core/RawDefs/RawEnum.cs create mode 100644 luban/src/Luban.Core/RawDefs/RawField.cs create mode 100644 luban/src/Luban.Core/RawDefs/RawGroup.cs create mode 100644 luban/src/Luban.Core/RawDefs/RawRefGroup.cs create mode 100644 luban/src/Luban.Core/RawDefs/RawTable.cs create mode 100644 luban/src/Luban.Core/RawDefs/RawTarget.cs create mode 100644 luban/src/Luban.Core/RawDefs/TypeMapper.cs create mode 100644 luban/src/Luban.Core/RegisterBehaviourAttribute.cs create mode 100644 luban/src/Luban.Core/Schema/BeanSchemaLoaderAttribute.cs create mode 100644 luban/src/Luban.Core/Schema/IBeanSchemaLoader.cs create mode 100644 luban/src/Luban.Core/Schema/IConfigLoader.cs create mode 100644 luban/src/Luban.Core/Schema/ISchemaCollector.cs create mode 100644 luban/src/Luban.Core/Schema/ISchemaLoader.cs create mode 100644 luban/src/Luban.Core/Schema/ITableImporter.cs create mode 100644 luban/src/Luban.Core/Schema/LubanConfig.cs create mode 100644 luban/src/Luban.Core/Schema/SchemaCollectorAttribute.cs create mode 100644 luban/src/Luban.Core/Schema/SchemaCollectorBase.cs create mode 100644 luban/src/Luban.Core/Schema/SchemaFileInfo.cs create mode 100644 luban/src/Luban.Core/Schema/SchemaLoaderAttribute.cs create mode 100644 luban/src/Luban.Core/Schema/SchemaLoaderBase.cs create mode 100644 luban/src/Luban.Core/Schema/SchemaManager.cs create mode 100644 luban/src/Luban.Core/Schema/TableImporterAttribute.cs create mode 100644 luban/src/Luban.Core/Serialization/BeanBase.cs create mode 100644 luban/src/Luban.Core/Serialization/ByteBuf.cs create mode 100644 luban/src/Luban.Core/Serialization/ByteBufPool.cs create mode 100644 luban/src/Luban.Core/Serialization/EUnmarshalError.cs create mode 100644 luban/src/Luban.Core/Serialization/FieldTag.cs create mode 100644 luban/src/Luban.Core/Serialization/ISerializable.cs create mode 100644 luban/src/Luban.Core/Serialization/ITypeId.cs create mode 100644 luban/src/Luban.Core/Serialization/SerializationException.cs create mode 100644 luban/src/Luban.Core/Serialization/ThreadLocalTemporalByteBufPool.cs create mode 100644 luban/src/Luban.Core/SimpleLauncher.cs create mode 100644 luban/src/Luban.Core/TemplateExtensions/ContextTemplateExtension.cs create mode 100644 luban/src/Luban.Core/TemplateExtensions/TypeTemplateExtension.cs create mode 100644 luban/src/Luban.Core/Tmpl/TemplateManager.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/AllFalseVisitor.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/AllTrueVisitor.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/DecoratorActionVisitor.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/DecoratorFuncVisitor.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/DeepCompareTypeDefine.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/ITypeActionVisitor.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/ITypeFuncVisitor.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/IsValidTableKeyTypeVisitor.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/RawDefineTypeNameVisitor.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/RefTypeVisitor.cs create mode 100644 luban/src/Luban.Core/TypeVisitors/TypeActionVisitorAdaptor.cs create mode 100644 luban/src/Luban.Core/Types/TArray.cs create mode 100644 luban/src/Luban.Core/Types/TBean.cs create mode 100644 luban/src/Luban.Core/Types/TBool.cs create mode 100644 luban/src/Luban.Core/Types/TByte.cs create mode 100644 luban/src/Luban.Core/Types/TDateTime.cs create mode 100644 luban/src/Luban.Core/Types/TDouble.cs create mode 100644 luban/src/Luban.Core/Types/TEnum.cs create mode 100644 luban/src/Luban.Core/Types/TFloat.cs create mode 100644 luban/src/Luban.Core/Types/TInt.cs create mode 100644 luban/src/Luban.Core/Types/TList.cs create mode 100644 luban/src/Luban.Core/Types/TLong.cs create mode 100644 luban/src/Luban.Core/Types/TMap.cs create mode 100644 luban/src/Luban.Core/Types/TSet.cs create mode 100644 luban/src/Luban.Core/Types/TShort.cs create mode 100644 luban/src/Luban.Core/Types/TString.cs create mode 100644 luban/src/Luban.Core/Types/TType.cs create mode 100644 luban/src/Luban.Core/Utils/AtomicLong.cs create mode 100644 luban/src/Luban.Core/Utils/CollectionExtensions.cs create mode 100644 luban/src/Luban.Core/Utils/DataExtensions.cs create mode 100644 luban/src/Luban.Core/Utils/DataUtil.cs create mode 100644 luban/src/Luban.Core/Utils/DefExtensions.cs create mode 100644 luban/src/Luban.Core/Utils/DefUtil.cs create mode 100644 luban/src/Luban.Core/Utils/ExceptionUtil.cs create mode 100644 luban/src/Luban.Core/Utils/ExternalTypeUtil.cs create mode 100644 luban/src/Luban.Core/Utils/FileCleaner.cs create mode 100644 luban/src/Luban.Core/Utils/FileUtil.cs create mode 100644 luban/src/Luban.Core/Utils/ListEqualityComparer.cs create mode 100644 luban/src/Luban.Core/Utils/LoadXmlException.cs create mode 100644 luban/src/Luban.Core/Utils/StringUtil.cs create mode 100644 luban/src/Luban.Core/Utils/TemplateUtil.cs create mode 100644 luban/src/Luban.Core/Utils/TimeUtil.cs create mode 100644 luban/src/Luban.Core/Utils/TimeZoneUtil.cs create mode 100644 luban/src/Luban.Core/Utils/TypeUtil.cs create mode 100644 luban/src/Luban.Core/Utils/XmlUtil.cs create mode 100644 luban/src/Luban.Core/Validator/DataValidatorBase.cs create mode 100644 luban/src/Luban.Core/Validator/DataValidatorContext.cs create mode 100644 luban/src/Luban.Core/Validator/DataValidatorVisitor.cs create mode 100644 luban/src/Luban.Core/Validator/IDataValidator.cs create mode 100644 luban/src/Luban.Core/Validator/ITableValidator.cs create mode 100644 luban/src/Luban.Core/Validator/ValidatorAttribute.cs create mode 100644 luban/src/Luban.Core/Validator/ValidatorManager.cs create mode 100644 luban/src/Luban.Core/Validator/ValidatorType.cs create mode 100644 luban/src/Luban.Cpp/AssemblyInfo.cs create mode 100644 luban/src/Luban.Cpp/CodeTarget/CppBinRawptrCodeTarget.cs create mode 100644 luban/src/Luban.Cpp/CodeTarget/CppBinSharedptrCodeTarget.cs create mode 100644 luban/src/Luban.Cpp/CodeTarget/CppCodeTargetBase.cs create mode 100644 luban/src/Luban.Cpp/Luban.Cpp.csproj create mode 100644 luban/src/Luban.Cpp/TemplateExtensions/CppRawptrBinTemplateExtension.cs create mode 100644 luban/src/Luban.Cpp/TemplateExtensions/CppSharedptrBinTemplateExtension.cs create mode 100644 luban/src/Luban.Cpp/TemplateExtensions/CppTemplateExtension.cs create mode 100644 luban/src/Luban.Cpp/Templates/common/cpp/enum.sbn create mode 100644 luban/src/Luban.Cpp/Templates/cpp-rawptr-bin/bean.sbn create mode 100644 luban/src/Luban.Cpp/Templates/cpp-rawptr-bin/schema_cpp.sbn create mode 100644 luban/src/Luban.Cpp/Templates/cpp-rawptr-bin/schema_h.sbn create mode 100644 luban/src/Luban.Cpp/Templates/cpp-rawptr-bin/table.sbn create mode 100644 luban/src/Luban.Cpp/Templates/cpp-rawptr-bin/tables.sbn create mode 100644 luban/src/Luban.Cpp/Templates/cpp-sharedptr-bin/bean.sbn create mode 100644 luban/src/Luban.Cpp/Templates/cpp-sharedptr-bin/schema_cpp.sbn create mode 100644 luban/src/Luban.Cpp/Templates/cpp-sharedptr-bin/schema_h.sbn create mode 100644 luban/src/Luban.Cpp/Templates/cpp-sharedptr-bin/table.sbn create mode 100644 luban/src/Luban.Cpp/Templates/cpp-sharedptr-bin/tables.sbn create mode 100644 luban/src/Luban.Cpp/TypeVisitors/CppRawptrDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Cpp/TypeVisitors/CppRawptrDeserializeVisitor.cs create mode 100644 luban/src/Luban.Cpp/TypeVisitors/CppRawptrUnderlyingDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Cpp/TypeVisitors/CppRawptrUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Cpp/TypeVisitors/CppSharedPtrUnderlyingDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Cpp/TypeVisitors/CppSharedptrDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Cpp/TypeVisitors/CppSharedptrDeserializeVisitor.cs create mode 100644 luban/src/Luban.Cpp/TypeVisitors/CppSharedptrUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Cpp/TypeVisitors/CppUnderlyingDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Cpp/TypeVisitors/CppUnderlyingDeserializeVisitorBase.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/AssemblyInfo.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/DataVisitors/ExcelStreamDataCreator.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/DataVisitors/InvalidExcelDataException.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/DataVisitors/JsonDataCreator.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/DataVisitors/LuaDataCreator.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/DataVisitors/SheetDataCreator.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/DataVisitors/StringDataCreator.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/DataVisitors/UnityAssetDataCreator.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/DataVisitors/XmlDataCreator.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/DataVisitors/YamlDataCreator.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Excel/Cell.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Excel/ExcelRowColumnDataSource.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Excel/ExcelStream.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Excel/RawSheet.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Excel/RawSheetTableDefInfo.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Excel/RowColumnSheet.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Excel/SheetLoadUtil.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Excel/StreamSheet.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Excel/Title.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Excel/TitleRow.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Json/JsonDataSource.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Lua/LuaDataSource.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Luban.DataLoader.Builtin.csproj create mode 100644 luban/src/Luban.DataLoader.Builtin/UnityAsset/UnityAssetDataSource.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Utils/LoadDataUtil.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Xml/XmlDataSource.cs create mode 100644 luban/src/Luban.DataLoader.Builtin/Yaml/YamlDataLoader.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/AssemblyInfo.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Binary/BinaryDataTarget.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Binary/BinaryDataVisitor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Binary/BinaryIndexExportor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Binary/BinaryRecordOffsetDataTarget.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/DefaultDataExporter.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Json/Json2DataTarget.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Json/Json2DataVisitor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Json/JsonConvertTarget.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Json/JsonConvertor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Json/JsonDataTarget.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Json/JsonDataVisitor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Json/SimpleJsonTypeVisitor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Json/ToJsonLiteralVisitor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Json/ToJsonPropertyNameVisitor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Luban.DataTarget.Builtin.csproj create mode 100644 luban/src/Luban.DataTarget.Builtin/NullDataExporter.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Res/ResDataVisitor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Res/ResourceInfo.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Xml/ToXmlLiteralVisitor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Xml/XmlDataTarget.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Xml/XmlDataVisitor.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Yaml/YamlDataTarget.cs create mode 100644 luban/src/Luban.DataTarget.Builtin/Yaml/YamlDataVisitor.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/AssemblyInfo.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Collection/IndexValidator.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Collection/SizeValidator.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Luban.DataValidator.Builtin.csproj create mode 100644 luban/src/Luban.DataValidator.Builtin/Misc/NotDefaultValueValidator.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Path/IPathPattern.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Path/PathValidator.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Path/RegexPattern.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Path/SimpleReplacePattern.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Path/Ue4ResourcePattern.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Path/UnityAddressablePattern.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Range/DoubleRange.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Range/LongRange.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Range/RangeValidator.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Ref/RefValidator.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Set/LongDataSet.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Set/SetValidator.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Set/StringDataSet.cs create mode 100644 luban/src/Luban.DataValidator.Builtin/Str/RegexValidator.cs create mode 100644 luban/src/Luban.FlatBuffers/AssemblyInfo.cs create mode 100644 luban/src/Luban.FlatBuffers/CodeTarget/FlatBuffersSchemaTarget.cs create mode 100644 luban/src/Luban.FlatBuffers/DataTarget/FlatBuffersDataTarget.cs create mode 100644 luban/src/Luban.FlatBuffers/DataVisitors/FlatBuffersJsonDataVisitor.cs create mode 100644 luban/src/Luban.FlatBuffers/Luban.FlatBuffers.csproj create mode 100644 luban/src/Luban.FlatBuffers/TemplateExtensions/FlatBuffersTemplateExtension.cs create mode 100644 luban/src/Luban.FlatBuffers/Templates/flatbuffers/schema.sbn create mode 100644 luban/src/Luban.FlatBuffers/TypeVisitors/CollectMapKeyValueEntriesVisitor.cs create mode 100644 luban/src/Luban.FlatBuffers/TypeVisitors/FlatBuffersTypeNameVisitor.cs create mode 100644 luban/src/Luban.FlatBuffers/TypeVisitors/IsFlatBuffersScalarTypeVisitor.cs create mode 100644 luban/src/Luban.Gdscript/AssemblyInfo.cs create mode 100644 luban/src/Luban.Gdscript/CodeTarget/GdscriptCodeTargetBase.cs create mode 100644 luban/src/Luban.Gdscript/CodeTarget/GdscriptJsonCodeTarget.cs create mode 100644 luban/src/Luban.Gdscript/Luban.Gdscript.csproj create mode 100644 luban/src/Luban.Gdscript/TemplateExtensions/GdscriptCommonTemplateExtension.cs create mode 100644 luban/src/Luban.Gdscript/TemplateExtensions/GdscriptJsonTemplateExtension.cs create mode 100644 luban/src/Luban.Gdscript/Templates/gdscript-json/schema.sbn create mode 100644 luban/src/Luban.Gdscript/TypeVisitors/DeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Gdscript/TypeVisitors/UnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Golang/AssemblyInfo.cs create mode 100644 luban/src/Luban.Golang/CodeTarget/GoBinCodeTarget.cs create mode 100644 luban/src/Luban.Golang/CodeTarget/GoCodeTargetBase.cs create mode 100644 luban/src/Luban.Golang/CodeTarget/GoJsonCodeTarget.cs create mode 100644 luban/src/Luban.Golang/Luban.Golang.csproj create mode 100644 luban/src/Luban.Golang/TemplateExtensions/GoBinTemplateExtension.cs create mode 100644 luban/src/Luban.Golang/TemplateExtensions/GoCommonTemplateExtension.cs create mode 100644 luban/src/Luban.Golang/TemplateExtensions/GoJsonTemplateExtension.cs create mode 100644 luban/src/Luban.Golang/Templates/common/go/enum.sbn create mode 100644 luban/src/Luban.Golang/Templates/go-bin/bean.sbn create mode 100644 luban/src/Luban.Golang/Templates/go-bin/table.sbn create mode 100644 luban/src/Luban.Golang/Templates/go-bin/tables.sbn create mode 100644 luban/src/Luban.Golang/Templates/go-json/bean.sbn create mode 100644 luban/src/Luban.Golang/Templates/go-json/table.sbn create mode 100644 luban/src/Luban.Golang/Templates/go-json/tables.sbn create mode 100644 luban/src/Luban.Golang/TypeVisitors/BinImport.cs create mode 100644 luban/src/Luban.Golang/TypeVisitors/BinUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Golang/TypeVisitors/DeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Golang/TypeVisitors/DeserializeBinVisitor.cs create mode 100644 luban/src/Luban.Golang/TypeVisitors/DeserializeJsonFieldVisitor.cs create mode 100644 luban/src/Luban.Golang/TypeVisitors/DeserializeJsonUnderingVisitor.cs create mode 100644 luban/src/Luban.Golang/TypeVisitors/DeserializeJsonVisitor.cs create mode 100644 luban/src/Luban.Golang/TypeVisitors/IsPointerTypeVisitor.cs create mode 100644 luban/src/Luban.Golang/TypeVisitors/JsonImport.cs create mode 100644 luban/src/Luban.Golang/TypeVisitors/UnderlyingDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Java/AssemblyInfo.cs create mode 100644 luban/src/Luban.Java/CodeTarget/JavaBinCodeTarget.cs create mode 100644 luban/src/Luban.Java/CodeTarget/JavaCodeTargetBase.cs create mode 100644 luban/src/Luban.Java/CodeTarget/JavaJsonCodeTarget.cs create mode 100644 luban/src/Luban.Java/Luban.Java.csproj create mode 100644 luban/src/Luban.Java/TemplateExtensions/JavaBinTemplateExtension.cs create mode 100644 luban/src/Luban.Java/TemplateExtensions/JavaCommonTemplateExtension.cs create mode 100644 luban/src/Luban.Java/TemplateExtensions/JavaJsonTemplateExtension.cs create mode 100644 luban/src/Luban.Java/Templates/common/java/enum.sbn create mode 100644 luban/src/Luban.Java/Templates/java-bin/bean.sbn create mode 100644 luban/src/Luban.Java/Templates/java-bin/table.sbn create mode 100644 luban/src/Luban.Java/Templates/java-bin/tables.sbn create mode 100644 luban/src/Luban.Java/Templates/java-json/bean.sbn create mode 100644 luban/src/Luban.Java/Templates/java-json/table.sbn create mode 100644 luban/src/Luban.Java/Templates/java-json/tables.sbn create mode 100644 luban/src/Luban.Java/TypeVisitors/JavaBinDeserializeVisitor.cs create mode 100644 luban/src/Luban.Java/TypeVisitors/JavaBinUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Java/TypeVisitors/JavaDeclaringBoxTypeNameVisitor.cs create mode 100644 luban/src/Luban.Java/TypeVisitors/JavaDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Java/TypeVisitors/JavaJsonUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.L10N/AssemblyInfo.cs create mode 100644 luban/src/Luban.L10N/DataTarget/TextKeyCollection.cs create mode 100644 luban/src/Luban.L10N/DataTarget/TextKeyListCollectorVisitor.cs create mode 100644 luban/src/Luban.L10N/DataTarget/TextKeyListDataTarget.cs create mode 100644 luban/src/Luban.L10N/DefaultTextProvider.cs create mode 100644 luban/src/Luban.L10N/Luban.L10N.csproj create mode 100644 luban/src/Luban.L10N/TextKeyToValueTransformer.cs create mode 100644 luban/src/Luban.L10N/TextValidator.cs create mode 100644 luban/src/Luban.Lua/AssemblyInfo.cs create mode 100644 luban/src/Luban.Lua/CodeTarget/LuaBinCodeTarget.cs create mode 100644 luban/src/Luban.Lua/CodeTarget/LuaCodeTargetBase.cs create mode 100644 luban/src/Luban.Lua/CodeTarget/LuaLuaCodeTarget.cs create mode 100644 luban/src/Luban.Lua/DataTarget/LuaDataTarget.cs create mode 100644 luban/src/Luban.Lua/DataVisitors/ToLuaLiteralVisitor.cs create mode 100644 luban/src/Luban.Lua/Luban.Lua.csproj create mode 100644 luban/src/Luban.Lua/TemplateExtensions/LuaBinTemplateExtension.cs create mode 100644 luban/src/Luban.Lua/TemplateExtensions/LuaCommonTemplateExtension.cs create mode 100644 luban/src/Luban.Lua/Templates/lua-bin/schema.sbn create mode 100644 luban/src/Luban.Lua/Templates/lua-lua/schema.sbn create mode 100644 luban/src/Luban.Lua/TypVisitors/LuaCommentTypeVisitor.cs create mode 100644 luban/src/Luban.Lua/TypVisitors/LuaDeserializeMethodNameVisitor.cs create mode 100644 luban/src/Luban.Lua/TypVisitors/LuaUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Lua/TypVisitors/LuaValueOrDefaultVisitor.cs create mode 100644 luban/src/Luban.MsgPack/AssemblyInfo.cs create mode 100644 luban/src/Luban.MsgPack/Luban.MsgPack.csproj create mode 100644 luban/src/Luban.MsgPack/MsgPackDataTarget.cs create mode 100644 luban/src/Luban.MsgPack/MsgPackDataVisitor.cs create mode 100644 luban/src/Luban.PHP/AssemblyInfo.cs create mode 100644 luban/src/Luban.PHP/CodeTarget/PHPCodeTargetBase.cs create mode 100644 luban/src/Luban.PHP/CodeTarget/PHPJsonCodeTarget.cs create mode 100644 luban/src/Luban.PHP/Luban.PHP.csproj create mode 100644 luban/src/Luban.PHP/TemplateExtensions/PHPCommonTemplateExtension.cs create mode 100644 luban/src/Luban.PHP/TemplateExtensions/PHPJsonTemplateExtension.cs create mode 100644 luban/src/Luban.PHP/Templates/common/php/enum.sbn create mode 100644 luban/src/Luban.PHP/Templates/php-json/schema.sbn create mode 100644 luban/src/Luban.PHP/TypeVisitors/JsonDeserializeVisitor.cs create mode 100644 luban/src/Luban.PHP/TypeVisitors/JsonUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Protobuf/AssemblyInfo.cs create mode 100644 luban/src/Luban.Protobuf/CodeTarget/CSharpProtobuf3CodeTarget.cs create mode 100644 luban/src/Luban.Protobuf/CodeTarget/Protobuf2SchemaTarget.cs create mode 100644 luban/src/Luban.Protobuf/CodeTarget/Protobuf3SchemaTarget.cs create mode 100644 luban/src/Luban.Protobuf/CodeTarget/ProtobufSchemaTargetBase.cs create mode 100644 luban/src/Luban.Protobuf/DataTarget/Protobuf2BinDataTarget.cs create mode 100644 luban/src/Luban.Protobuf/DataTarget/Protobuf2JsonDataTarget.cs create mode 100644 luban/src/Luban.Protobuf/DataTarget/Protobuf3BinDataTarget.cs create mode 100644 luban/src/Luban.Protobuf/DataTarget/Protobuf3JsonDataTarget.cs create mode 100644 luban/src/Luban.Protobuf/DataVisitors/Protobuf2JsonDataVisitor.cs create mode 100644 luban/src/Luban.Protobuf/DataVisitors/Protobuf3JsonDataVisitor.cs create mode 100644 luban/src/Luban.Protobuf/DataVisitors/ProtobufBinDataVisitor.cs create mode 100644 luban/src/Luban.Protobuf/DataVisitors/ProtobufWireTypeVisitor.cs create mode 100644 luban/src/Luban.Protobuf/Luban.Protobuf.csproj create mode 100644 luban/src/Luban.Protobuf/TemplateExtensions/CsharpProtobuf3TemplateExtension.cs create mode 100644 luban/src/Luban.Protobuf/TemplateExtensions/Protobuf2TemplateExtension.cs create mode 100644 luban/src/Luban.Protobuf/TemplateExtensions/Protobuf3TemplateExtension.cs create mode 100644 luban/src/Luban.Protobuf/TemplateExtensions/ProtobufCommonTemplateExtension.cs create mode 100644 luban/src/Luban.Protobuf/Templates/cs_pb/tables.sbn create mode 100644 luban/src/Luban.Protobuf/Templates/pb/schema.sbn create mode 100644 luban/src/Luban.Protobuf/TypeVisitors/IsProtobufPackedType.cs create mode 100644 luban/src/Luban.Protobuf/TypeVisitors/ProtobufTypeNameVisitor.cs create mode 100644 luban/src/Luban.Python/AssemblyInfo.cs create mode 100644 luban/src/Luban.Python/CodeTarget/Python2JsonCodeTarget.cs create mode 100644 luban/src/Luban.Python/CodeTarget/PythonCodeTargetBase.cs create mode 100644 luban/src/Luban.Python/DataVisitors/ToPythonLiteralVisitor.cs create mode 100644 luban/src/Luban.Python/Luban.Python.csproj create mode 100644 luban/src/Luban.Python/TemplateExtensions/PythonCommonTemplateExtension.cs create mode 100644 luban/src/Luban.Python/Templates/python-json/schema.sbn create mode 100644 luban/src/Luban.Python/TypeVisitors/DeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Python/TypeVisitors/JsonUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Rust/AssemblyInfo.cs create mode 100644 luban/src/Luban.Rust/CodeTarget/RustBinCodeTarget.cs create mode 100644 luban/src/Luban.Rust/CodeTarget/RustCodeTargetBase.cs create mode 100644 luban/src/Luban.Rust/CodeTarget/RustJsonCodeTarget.cs create mode 100644 luban/src/Luban.Rust/ConstantStrings.cs create mode 100644 luban/src/Luban.Rust/Luban.Rust.csproj create mode 100644 luban/src/Luban.Rust/TemplateExtensions/RustBinTemplateExtension.cs create mode 100644 luban/src/Luban.Rust/TemplateExtensions/RustCommonTemplateExtension.cs create mode 100644 luban/src/Luban.Rust/TemplateExtensions/RustJsonTemplateExtension.cs create mode 100644 luban/src/Luban.Rust/Templates/common/rs/macros/Cargo.toml.sbn create mode 100644 luban/src/Luban.Rust/Templates/common/rs/macros/src/lib.rs.sbn create mode 100644 luban/src/Luban.Rust/Templates/rust-bin/lib.sbn create mode 100644 luban/src/Luban.Rust/Templates/rust-bin/mod.sbn create mode 100644 luban/src/Luban.Rust/Templates/rust-bin/toml.sbn create mode 100644 luban/src/Luban.Rust/Templates/rust-json/lib.sbn create mode 100644 luban/src/Luban.Rust/Templates/rust-json/mod.sbn create mode 100644 luban/src/Luban.Rust/Templates/rust-json/toml.sbn create mode 100644 luban/src/Luban.Rust/TypeVisitors/BinaryUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Rust/TypeVisitors/RustDeclaringBoxTypeNameVisitor.cs create mode 100644 luban/src/Luban.Rust/TypeVisitors/RustDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Rust/TypeVisitors/RustJsonUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Schema.Builtin/AssemblyInfo.cs create mode 100644 luban/src/Luban.Schema.Builtin/AutoTableImporter.cs create mode 100644 luban/src/Luban.Schema.Builtin/BeanSchemaFromExcelHeaderLoader.cs create mode 100644 luban/src/Luban.Schema.Builtin/DefaultSchemaCollector.cs create mode 100644 luban/src/Luban.Schema.Builtin/DefaultTableImporter.cs create mode 100644 luban/src/Luban.Schema.Builtin/ExcelSchemaLoader.cs create mode 100644 luban/src/Luban.Schema.Builtin/Luban.Schema.Builtin.csproj create mode 100644 luban/src/Luban.Schema.Builtin/SchemaLoaderUtil.cs create mode 100644 luban/src/Luban.Schema.Builtin/XmlSchemaLoader.cs create mode 100644 luban/src/Luban.Schema.Builtin/XmlSchemaUtil.cs create mode 100644 luban/src/Luban.Typescript/AssemblyInfo.cs create mode 100644 luban/src/Luban.Typescript/CodeTarget/TypescriptBinCodeTarget.cs create mode 100644 luban/src/Luban.Typescript/CodeTarget/TypescriptCodeTargetBase.cs create mode 100644 luban/src/Luban.Typescript/CodeTarget/TypescriptJsonCodeTarget.cs create mode 100644 luban/src/Luban.Typescript/CodeTarget/TypescriptProtobufCodeTarget.cs create mode 100644 luban/src/Luban.Typescript/Luban.Typescript.csproj create mode 100644 luban/src/Luban.Typescript/TemplateExtensions/TypescriptBinTemplateExtension.cs create mode 100644 luban/src/Luban.Typescript/TemplateExtensions/TypescriptCommonTemplateExtension.cs create mode 100644 luban/src/Luban.Typescript/TemplateExtensions/TypescriptJsonTemplateExtension.cs create mode 100644 luban/src/Luban.Typescript/Templates/common/ts/enum.sbn create mode 100644 luban/src/Luban.Typescript/Templates/typescript-bin/schema.sbn create mode 100644 luban/src/Luban.Typescript/Templates/typescript-json/schema.sbn create mode 100644 luban/src/Luban.Typescript/Templates/typescript-protobuf/schema.sbn create mode 100644 luban/src/Luban.Typescript/TypeVisitors/BinDeserializeVisitor.cs create mode 100644 luban/src/Luban.Typescript/TypeVisitors/BinUnderingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Typescript/TypeVisitors/BinUnderingDeserializeVisitorBase.cs create mode 100644 luban/src/Luban.Typescript/TypeVisitors/DeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.Typescript/TypeVisitors/JsonDeserializeVisitor.cs create mode 100644 luban/src/Luban.Typescript/TypeVisitors/JsonUnderlyingDeserializeVisitor.cs create mode 100644 luban/src/Luban.Typescript/TypeVisitors/UnderlyingDeclaringTypeNameVisitor.cs create mode 100644 luban/src/Luban.sln create mode 100644 luban/src/Luban.sln.DotSettings create mode 100644 luban/src/Luban/.editorconfig create mode 100644 luban/src/Luban/Luban.csproj create mode 100644 luban/src/Luban/Program.cs create mode 100644 luban/src/Luban/Utils/ConsoleUtil.cs create mode 100644 luban/src/Luban/Utils/DirectoryWatcher.cs create mode 100644 luban/src/Luban/nlog.xml create mode 100644 luban/src/nuget.config diff --git a/BuildCLI/build_android.bat b/BuildCLI/build_android.bat new file mode 100644 index 00000000..dde33c01 --- /dev/null +++ b/BuildCLI/build_android.bat @@ -0,0 +1,9 @@ +cd /d %~dp0 + +call path_define.bat + +%UNITYEDITOR_PATH%/Unity.exe %WORKSPACE% -logFile %BUILD_LOGFILE% -executeMethod TEngine.ReleaseTools.AutomationBuildAndroid -quit -batchmode -CustomArgs:Language=en_US; %WORKSPACE% + +@REM for /f "delims=[" %%i in (%BUILD_LOGFILE%) do echo %%i + +pause \ No newline at end of file diff --git a/BuildCLI/build_android.sh b/BuildCLI/build_android.sh new file mode 100644 index 00000000..d8ba1391 --- /dev/null +++ b/BuildCLI/build_android.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +cd "$(dirname "$0")" + +source ./path_define.sh + +"${UNITYEDITOR_PATH}/Unity" "${WORKSPACE}" \ + -logFile "${BUILD_LOGFILE}" \ + -executeMethod TEngine.ReleaseTools.AutomationBuildAndroid \ + -quit -batchmode \ + -CustomArgs:Language=en_US "${WORKSPACE}" + +while IFS= read -r line; do + echo "$line" +done < "${BUILD_LOGFILE}" + +echo "按任意键继续..." +read -k1 diff --git a/BuildCLI/path_define.bat b/BuildCLI/path_define.bat new file mode 100644 index 00000000..4e20de33 --- /dev/null +++ b/BuildCLI/path_define.bat @@ -0,0 +1,6 @@ +cd /d %~dp0 + +set WORKSPACE=G:/github/TEngine/UnityProject +set UNITYEDITOR_PATH=G:/UnityEditor/2021.3.20f1c1/Editor +set BUILD_DLL_LOGFILE=./build_dll.log +set BUILD_LOGFILE=./build.log diff --git a/BuildCLI/path_define.sh b/BuildCLI/path_define.sh new file mode 100644 index 00000000..b812417b --- /dev/null +++ b/BuildCLI/path_define.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +cd "$(dirname "$0")" + +export WORKSPACE="/Users/your_user/github/TEngine/UnityProject" # 请替换为 macOS 上的实际路径 +export UNITYEDITOR_PATH="/Applications/Unity/Hub/Editor/2021.3.20f1c1/Unity.app/Contents/MacOS" # 请替换为 macOS 上的 Unity 路径 +export BUILD_DLL_LOGFILE="./build_dll.log" +export BUILD_LOGFILE="./build.log" + +echo "环境变量已设置:" +echo "WORKSPACE=${WORKSPACE}" +echo "UNITYEDITOR_PATH=${UNITYEDITOR_PATH}" +echo "BUILD_DLL_LOGFILE=${BUILD_DLL_LOGFILE}" +echo "BUILD_LOGFILE=${BUILD_LOGFILE}" diff --git a/Configs/GameConfig/CustomTemplate/ConfigSystem.cs b/Configs/GameConfig/CustomTemplate/ConfigSystem.cs new file mode 100644 index 00000000..4098e05c --- /dev/null +++ b/Configs/GameConfig/CustomTemplate/ConfigSystem.cs @@ -0,0 +1,50 @@ +using Luban; +using GameBase; +using GameConfig; +using TEngine; +using UnityEngine; + +/// +/// 配置加载器。 +/// +public class ConfigSystem : Singleton +{ + private bool _init = false; + + private Tables _tables; + + public Tables Tables + { + get + { + if (!_init) + { + Load(); + } + + return _tables; + } + } + + /// + /// 加载配置。 + /// + public void Load() + { + _tables = new Tables(LoadByteBuf); + _init = true; + } + + /// + /// 加载二进制配置。 + /// + /// FileName + /// ByteBuf + private ByteBuf LoadByteBuf(string file) + { + TextAsset textAsset = GameModule.Resource.LoadAsset(file); + byte[] bytes = textAsset.bytes; + GameModule.Resource.UnloadAsset(textAsset); + return new ByteBuf(bytes); + } +} \ No newline at end of file diff --git a/Configs/GameConfig/CustomTemplate/CustomTemplate_Client_LazyLoad/cs-bin/tables.sbn b/Configs/GameConfig/CustomTemplate/CustomTemplate_Client_LazyLoad/cs-bin/tables.sbn new file mode 100644 index 00000000..8a3718dd --- /dev/null +++ b/Configs/GameConfig/CustomTemplate/CustomTemplate_Client_LazyLoad/cs-bin/tables.sbn @@ -0,0 +1,55 @@ +using Luban; + +{{namespace_with_grace_begin __namespace}} +public partial class {{__name}} +{ + #region The Tables + + {{~for table in __tables ~}} +{{~if table.comment != '' ~}} + /// + /// {{escape_comment table.comment}} + /// +{{~end~}} + private {{table.full_name}} m_{{table.name}}; + public {{table.full_name}} {{format_property_name __code_style table.name}} + { + get + { + if (m_{{table.name}} == null) + { + m_{{table.name}} = new {{table.full_name}}(defaultLoader("{{table.output_data_file}}")); + m_{{table.name}}.ResolveRef(this); + } + return m_{{table.name}}; + } + set + { + m_{{table.name}} = value; + m_{{table.name}}.ResolveRef(this); + } + } + {{~end~}} + + #endregion + + System.Func defaultLoader; + + public {{__name}}(System.Func loader) + { + SetDefaultLoader(loader); + Init(); + } + + public void SetDefaultLoader(System.Func loader) + { + defaultLoader = null; + defaultLoader = loader; + } + + //public partial void Init(); + + public void Init(){} +} + +{{namespace_with_grace_end __namespace}} \ No newline at end of file diff --git a/Configs/GameConfig/Datas/Scene/gameScene.xlsx b/Configs/GameConfig/Datas/Scene/gameScene.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e15339b54dbdfd82cab910e6a0c7ccc1f96b55d1 GIT binary patch literal 11883 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 Mp6A>}`QrWm0YgI1R{#J2 literal 0 HcmV?d00001 diff --git a/Configs/GameConfig/Datas/UI/gameUILoad.xlsx b/Configs/GameConfig/Datas/UI/gameUILoad.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f8dd3afcd1d64b5e111dd434b21f805eb0a88b87 GIT binary patch literal 11862 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 literal 0 HcmV?d00001 diff --git a/Configs/GameConfig/Datas/UI/gameUIWindows.xlsx b/Configs/GameConfig/Datas/UI/gameUIWindows.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e56d857a11c4cf5198cd366acd4a6024746e8853 GIT binary patch literal 12027 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 GwEqwFR1F&d literal 0 HcmV?d00001 diff --git a/Configs/GameConfig/Datas/__beans__.xlsx b/Configs/GameConfig/Datas/__beans__.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9fde55879c0d9d57b4c5c1b2f59bcaea12c59223 GIT binary patch literal 10144 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 literal 0 HcmV?d00001 diff --git a/Configs/GameConfig/Datas/__tables__.xlsx b/Configs/GameConfig/Datas/__tables__.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3258c0e34e87cc21f03327779633619181a49ff0 GIT binary patch literal 9869 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 literal 0 HcmV?d00001 diff --git a/Configs/GameConfig/Datas/item.xlsx b/Configs/GameConfig/Datas/item.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c463653eb18cdc5fedf3715349e3f27a9dd094d8 GIT binary patch literal 11214 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 literal 0 HcmV?d00001 diff --git a/Configs/GameConfig/Datas/roleUnit.xlsx b/Configs/GameConfig/Datas/roleUnit.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..42e6055b45f7f3392dfe925718ac59c8e0282cfc GIT binary patch literal 11950 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 h$NCotf3@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Configs/GameConfig/gen_code_bin_to_project.bat b/Configs/GameConfig/gen_code_bin_to_project.bat new file mode 100644 index 00000000..93e4dd03 --- /dev/null +++ b/Configs/GameConfig/gen_code_bin_to_project.bat @@ -0,0 +1,20 @@ +Cd /d %~dp0 +echo %CD% + +set WORKSPACE=../.. +set LUBAN_DLL=%WORKSPACE%\Tools\Luban\Luban.dll +set CONF_ROOT=. +set DATA_OUTPATH=%WORKSPACE%/EintooAR/Assets/AssetRaw/Configs/bytes/ +set CODE_OUTPATH=%WORKSPACE%/EintooAR/Assets/GameScripts/HotFix/GameProto/GameConfig/ + +xcopy /s /e /i /y "%CONF_ROOT%\CustomTemplate\ConfigSystem.cs" "%WORKSPACE%\EintooAR\Assets\GameScripts\HotFix\GameProto\ConfigSystem.cs" + +dotnet %LUBAN_DLL% ^ + -t client ^ + -c cs-bin ^ + -d bin^ + --conf %CONF_ROOT%\luban.conf ^ + -x outputCodeDir=%CODE_OUTPATH% ^ + -x outputDataDir=%DATA_OUTPATH% +pause + diff --git a/Configs/GameConfig/gen_code_bin_to_project.sh b/Configs/GameConfig/gen_code_bin_to_project.sh new file mode 100644 index 00000000..88f683c2 --- /dev/null +++ b/Configs/GameConfig/gen_code_bin_to_project.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +cd "$(dirname "$0")" +echo "当前目录: $(pwd)" + +export WORKSPACE="$(realpath ../../)" +export LUBAN_DLL="${WORKSPACE}/Tools/Luban/Luban.dll" +export CONF_ROOT="$(pwd)" +export DATA_OUTPATH="${WORKSPACE}/EintooAR/Assets/AssetRaw/Configs/bytes/" +export CODE_OUTPATH="${WORKSPACE}/EintooAR/Assets/GameScripts/HotFix/GameProto/GameConfig/" + +cp -R "${CONF_ROOT}/CustomTemplate/ConfigSystem.cs" \ + "${WORKSPACE}/EintooAR/Assets/GameScripts/HotFix/GameProto/ConfigSystem.cs" + +dotnet "${LUBAN_DLL}" \ + -t client \ + -c cs-bin \ + -d bin \ + --conf "${CONF_ROOT}/luban.conf" \ + -x outputCodeDir="${CODE_OUTPATH}" \ + -x outputDataDir="${DATA_OUTPATH}" + +echo "操作完成,按任意键退出..." +read -k1 diff --git a/Configs/GameConfig/gen_code_bin_to_project_lazyload.bat b/Configs/GameConfig/gen_code_bin_to_project_lazyload.bat new file mode 100644 index 00000000..0940c9f8 --- /dev/null +++ b/Configs/GameConfig/gen_code_bin_to_project_lazyload.bat @@ -0,0 +1,21 @@ +Cd /d %~dp0 +echo %CD% + +set WORKSPACE=../.. +set LUBAN_DLL=%WORKSPACE%\Tools\Luban\Luban.dll +set CONF_ROOT=. +set DATA_OUTPATH=%WORKSPACE%/EintooAR/Assets/AssetRaw/Configs/bytes/ +set CODE_OUTPATH=%WORKSPACE%/EintooAR/Assets/GameScripts/HotFix/GameProto/GameConfig/ + +xcopy /s /e /i /y "%CONF_ROOT%\CustomTemplate\ConfigSystem.cs" "%WORKSPACE%\EintooAR\Assets\GameScripts\HotFix\GameProto\ConfigSystem.cs" + +dotnet %LUBAN_DLL% ^ + -t client ^ + -c cs-bin ^ + -d bin^ + --conf %CONF_ROOT%\luban.conf ^ + --customTemplateDir %CONF_ROOT%\CustomTemplate\CustomTemplate_Client_LazyLoad ^ + -x outputCodeDir=%CODE_OUTPATH% ^ + -x outputDataDir=%DATA_OUTPATH% +pause + diff --git a/Configs/GameConfig/gen_code_bin_to_project_lazyload.sh b/Configs/GameConfig/gen_code_bin_to_project_lazyload.sh new file mode 100644 index 00000000..7324d765 --- /dev/null +++ b/Configs/GameConfig/gen_code_bin_to_project_lazyload.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +cd "$(dirname "$0")" +echo "当前目录: $(pwd)" + +export WORKSPACE="$(realpath ../../)" +export LUBAN_DLL="${WORKSPACE}/Tools/Luban/Luban.dll" +export CONF_ROOT="$(pwd)" +export DATA_OUTPATH="${WORKSPACE}/UnityProject/Assets/AssetRaw/Configs/bytes/" +export CODE_OUTPATH="${WORKSPACE}/UnityProject/Assets/GameScripts/HotFix/GameProto/GameConfig/" + +cp -R "${CONF_ROOT}/CustomTemplate/ConfigSystem.cs" \ + "${WORKSPACE}/UnityProject/Assets/GameScripts/HotFix/GameProto/ConfigSystem.cs" + +dotnet "${LUBAN_DLL}" \ + -t client \ + -c cs-bin \ + -d bin \ + --conf "${CONF_ROOT}/luban.conf" \ + --customTemplateDir "${CONF_ROOT}/CustomTemplate/CustomTemplate_Client_LazyLoad" \ + -x outputCodeDir="${CODE_OUTPATH}" \ + -x outputDataDir="${DATA_OUTPATH}" + +echo "操作完成,按任意键退出..." +read -k1 diff --git a/Configs/GameConfig/gen_code_bin_to_server.bat b/Configs/GameConfig/gen_code_bin_to_server.bat new file mode 100644 index 00000000..697220e7 --- /dev/null +++ b/Configs/GameConfig/gen_code_bin_to_server.bat @@ -0,0 +1,18 @@ +Cd /d %~dp0 +echo %CD% + +set WORKSPACE=../../ +set LUBAN_DLL=%WORKSPACE%/Tools/Luban/Luban.dll +set CONF_ROOT=. +set DATA_OUTPATH=%WORKSPACE%/Server/GameConfig +set CODE_OUTPATH=%WORKSPACE%/Server/Hotfix/Config/GameConfig + +dotnet %LUBAN_DLL% ^ + -t server^ + -c cs-bin ^ + -d bin^ + --conf %CONF_ROOT%\luban.conf ^ + -x outputCodeDir=%CODE_OUTPATH% ^ + -x outputDataDir=%DATA_OUTPATH% +pause + diff --git a/Configs/GameConfig/gen_code_bin_to_server.sh b/Configs/GameConfig/gen_code_bin_to_server.sh new file mode 100644 index 00000000..4b257d38 --- /dev/null +++ b/Configs/GameConfig/gen_code_bin_to_server.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +cd "$(dirname "$0")" +echo "当前目录: $(pwd)" + +export WORKSPACE="$(realpath ../../)" +export LUBAN_DLL="${WORKSPACE}/Tools/Luban/Luban.dll" +export CONF_ROOT="$(pwd)" +export DATA_OUTPATH="${WORKSPACE}/Server/GameConfig" +export CODE_OUTPATH="${WORKSPACE}/Server/Hotfix/Config/GameConfig" + +dotnet "${LUBAN_DLL}" \ + -t server \ + -c cs-bin \ + -d bin \ + --conf "${CONF_ROOT}/luban.conf" \ + -x outputCodeDir="${CODE_OUTPATH}" \ + -x outputDataDir="${DATA_OUTPATH}" + +echo "操作完成,按任意键退出..." +read -k1 diff --git a/Configs/GameConfig/luban.conf b/Configs/GameConfig/luban.conf new file mode 100644 index 00000000..851dc679 --- /dev/null +++ b/Configs/GameConfig/luban.conf @@ -0,0 +1,22 @@ +{ + "groups": + [ + {"names":["c"], "default":true}, + {"names":["s"], "default":true}, + {"names":["e"], "default":true} + ], + "schemaFiles": + [ + {"fileName":"Defines", "type":""}, + {"fileName":"Datas/__tables__.xlsx", "type":"table"}, + {"fileName":"Datas/__beans__.xlsx", "type":"bean"}, + {"fileName":"Datas/__enums__.xlsx", "type":"enum"} + ], + "dataDir": "Datas", + "targets": + [ + {"name":"server", "manager":"Tables", "groups":["s"], "topModule":"GameConfig"}, + {"name":"client", "manager":"Tables", "groups":["c"], "topModule":"GameConfig"}, + {"name":"all", "manager":"Tables", "groups":["c,s,e"], "topModule":"GameConfig"} + ] +} \ No newline at end of file diff --git a/GameServer/.idea/.idea.GameServer/.idea/CopilotChatHistory.xml b/GameServer/.idea/.idea.GameServer/.idea/CopilotChatHistory.xml new file mode 100644 index 00000000..73cbf6b4 --- /dev/null +++ b/GameServer/.idea/.idea.GameServer/.idea/CopilotChatHistory.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/GameServer/.idea/.idea.GameServer/.idea/encodings.xml b/GameServer/.idea/.idea.GameServer/.idea/encodings.xml new file mode 100644 index 00000000..df87cf95 --- /dev/null +++ b/GameServer/.idea/.idea.GameServer/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/GameServer/.idea/.idea.GameServer/.idea/indexLayout.xml b/GameServer/.idea/.idea.GameServer/.idea/indexLayout.xml new file mode 100644 index 00000000..7b08163c --- /dev/null +++ b/GameServer/.idea/.idea.GameServer/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/GameServer/.idea/.idea.GameServer/.idea/projectSettingsUpdater.xml b/GameServer/.idea/.idea.GameServer/.idea/projectSettingsUpdater.xml new file mode 100644 index 00000000..4bb9f4d2 --- /dev/null +++ b/GameServer/.idea/.idea.GameServer/.idea/projectSettingsUpdater.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/GameServer/.idea/.idea.GameServer/.idea/vcs.xml b/GameServer/.idea/.idea.GameServer/.idea/vcs.xml new file mode 100644 index 00000000..6c0b8635 --- /dev/null +++ b/GameServer/.idea/.idea.GameServer/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/GameServer/.idea/.idea.GameServer/.idea/workspace.xml b/GameServer/.idea/.idea.GameServer/.idea/workspace.xml new file mode 100644 index 00000000..7f01cfb6 --- /dev/null +++ b/GameServer/.idea/.idea.GameServer/.idea/workspace.xml @@ -0,0 +1,462 @@ + + + + Main/Main.csproj + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { + "customColor": "", + "associatedIndex": 3 +} + + + + { + "keyToString": { + "RunOnceActivity.ShowReadmeOnStart": "true", + "git-widget-placeholder": "main", + "node.js.detected.package.eslint": "true", + "node.js.detected.package.tslint": "true", + "node.js.selected.package.eslint": "(autodetect)", + "node.js.selected.package.tslint": "(autodetect)", + "nodejs_package_manager_path": "npm", + "vue.rearranger.settings.migration": "true" + }, + "keyToStringList": { + "rider.external.source.directories": [ + "C:\\Users\\Administrator\\AppData\\Roaming\\JetBrains\\Rider2024.1\\resharper-host\\DecompilerCache", + "C:\\Users\\Administrator\\AppData\\Roaming\\JetBrains\\Rider2024.1\\resharper-host\\SourcesCache", + "C:\\Users\\Administrator\\AppData\\Local\\Symbols\\src" + ] + } +} + + + + + + + + + 1737038547277 + + + + + + + + + \ No newline at end of file diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Debug.log b/GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Debug.log new file mode 100644 index 00000000..bc86578b --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Debug.log @@ -0,0 +1,14 @@ +2025-03-31 17:00:46.1572 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-03-31 17:00:46.4719 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-03-31 17:00:46.8310 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-03-31 17:00:47.1807 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-03-31 17:02:09.5251 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-03-31 17:02:10.0936 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-03-31 17:02:10.1109 (GameAccountManageComponentSystem.cs:91) Gate 当前缓存中的 SessionID 2589189449237659648 +2025-03-31 17:02:10.1109 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589189449237659648 AccountId:116299279127281665 +2025-03-31 17:02:10.1260 (GateLoginHelper.cs:29) 聊天服务器登录成功 +2025-03-31 17:02:10.2692 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-03-31 17:02:15.5268 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-03-31 17:02:20.1507 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-03-31 17:02:20.2368 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-03-31 17:02:20.2368 (EntityTimeOutComponentSystem.cs:52) session : 0 Dispose diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Info.log b/GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Info.log new file mode 100644 index 00000000..61bdb424 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Info.log @@ -0,0 +1,15 @@ +2025-03-31 17:00:45.3401 初始化序列化器成功,数量为:2 +2025-03-31 17:00:45.8794 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-03-31 17:00:46.0745 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-03-31 17:00:46.1572 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-03-31 17:00:46.2787 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-03-31 17:00:46.4719 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-03-31 17:00:46.4719 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-03-31 17:00:46.6685 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-03-31 17:00:46.8310 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-03-31 17:00:47.0177 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-03-31 17:00:47.1807 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-03-31 17:00:47.3679 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-03-31 17:00:47.5466 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-03-31 17:00:47.5466 Process:1 Startup Complete SceneCount:5 +2025-03-31 17:02:10.1109 (G2Chat_LoginRequestHandler.cs:11) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589189449237659648 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Warn.log b/GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Warn.log new file mode 100644 index 00000000..1fba3469 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250331/Server..2025033117.Warn.log @@ -0,0 +1,2 @@ +2025-03-31 17:02:10.0936 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-03-31 17:02:50.2889 session timeout id:132665183960301570 timeNow:1743411770288 _session.LastReceiveTime:1743411760209 _timeOut:8000 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Debug.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Debug.log new file mode 100644 index 00000000..11b55a7b --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Debug.log @@ -0,0 +1,63 @@ +2025-04-02 13:41:56.4350 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 13:41:56.8252 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 13:41:57.2455 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 13:41:57.6834 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 13:42:30.5078 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 13:42:31.1287 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 13:42:31.1570 (GameAccountManageComponentSystem.cs:91) Gate 当前缓存中的 SessionID 2589079498074882048 +2025-04-02 13:42:31.1570 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589079498074882048 AccountId:116299279127281665 +2025-04-02 13:42:31.3458 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 13:42:36.5175 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 13:42:41.2345 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 13:42:41.3432 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 13:42:41.3432 (EntityTimeOutComponentSystem.cs:52) session : 0 Dispose +2025-04-02 13:50:13.4173 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 13:50:13.5916 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 13:50:13.6060 (GameAccountManageComponentSystem.cs:91) Gate 当前缓存中的 SessionID 2590097645842202624 +2025-04-02 13:50:13.6060 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2590097645842202624 AccountId:116299279127281665 +2025-04-02 13:50:13.7916 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 13:50:19.4316 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 13:50:23.6553 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 13:50:23.6709 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 13:50:23.6709 (EntityTimeOutComponentSystem.cs:52) session : 0 Dispose +2025-04-02 13:50:55.3332 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 13:50:55.4900 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 13:50:55.5046 (GameAccountManageComponentSystem.cs:91) Gate 当前缓存中的 SessionID 2590190004818935808 +2025-04-02 13:50:55.5046 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2590190004818935808 AccountId:116299279127281665 +2025-04-02 13:50:55.6789 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 13:51:01.3336 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 13:51:05.5539 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 13:51:05.5693 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 13:51:05.5693 (EntityTimeOutComponentSystem.cs:52) session : 0 Dispose +2025-04-02 13:54:09.9398 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 13:54:10.3365 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 13:54:10.7633 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 13:54:11.1712 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 13:54:47.4816 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 13:54:47.7243 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 13:54:47.7519 (GameAccountManageComponentSystem.cs:91) Gate 当前缓存中的 SessionID 2589086095144648704 +2025-04-02 13:54:47.7519 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589086095144648704 AccountId:116299279127281665 +2025-04-02 13:54:47.9107 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 13:54:53.4840 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 13:54:57.7908 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 13:54:57.8632 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 13:54:57.8632 (EntityTimeOutComponentSystem.cs:52) session : 0 Dispose +2025-04-02 13:56:38.1665 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 13:56:38.7117 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 13:56:39.1181 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 13:56:39.5632 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 13:56:52.6269 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 13:56:52.8846 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 13:56:52.9093 (GameAccountManageComponentSystem.cs:91) Gate 当前缓存中的 SessionID 2589035517609771008 +2025-04-02 13:56:52.9093 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589035517609771008 AccountId:116299279127281665 +2025-04-02 13:56:53.0992 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 13:56:58.6411 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 13:59:44.0458 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 13:59:44.2333 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 13:59:44.2333 (GameAccountManageComponentSystem.cs:68) Gate account already exists(账号已存在缓存中) +2025-04-02 13:59:44.2333 (GameAccountManageComponentSystem.cs:74) Gate 检测当前帐号和当前Session 不是同一个,2589035517609771008,$2589413749609725952 +2025-04-02 13:59:44.2333 (GameAccountManageComponentSystem.cs:91) Gate 当前缓存中的 SessionID 2589413749609725952 +2025-04-02 13:59:44.2333 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589413749609725952 AccountId:116299279127281665 +2025-04-02 13:59:44.2805 (GameAccountManageComponentSystem.cs:120) Gate 已经存在了销毁组件 +2025-04-02 13:59:44.4205 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 13:59:50.0590 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Error.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Error.log new file mode 100644 index 00000000..ff6d61e5 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Error.log @@ -0,0 +1,20 @@ +2025-04-02 13:42:32.9004 System.Exception: OuterMessageScheduler CustomRouteType session does not have an routeComponent component + at Fantasy.Scheduler.OuterMessageScheduler.Scheduler(Session session, APackInfo packInfo) + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Network.Session.Receive(APackInfo packInfo) +2025-04-02 13:50:18.9664 System.Exception: OuterMessageScheduler CustomRouteType session does not have an routeComponent component + at Fantasy.Scheduler.OuterMessageScheduler.Scheduler(Session session, APackInfo packInfo) + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Network.Session.Receive(APackInfo packInfo) +2025-04-02 13:55:01.7187 System.Exception: OuterMessageScheduler CustomRouteType session does not have an routeComponent component + at Fantasy.Scheduler.OuterMessageScheduler.Scheduler(Session session, APackInfo packInfo) + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Network.Session.Receive(APackInfo packInfo) +2025-04-02 13:57:01.6086 System.Exception: OuterMessageScheduler CustomRouteType session does not have an routeComponent component + at Fantasy.Scheduler.OuterMessageScheduler.Scheduler(Session session, APackInfo packInfo) + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Network.Session.Receive(APackInfo packInfo) diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Info.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Info.log new file mode 100644 index 00000000..d059e11a --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Info.log @@ -0,0 +1,48 @@ +2025-04-02 13:41:55.3716 初始化序列化器成功,数量为:2 +2025-04-02 13:41:56.0961 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-02 13:41:56.3272 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-02 13:41:56.4350 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 13:41:56.5922 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-02 13:41:56.8252 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-02 13:41:56.8252 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 13:41:57.0500 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-02 13:41:57.2455 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-02 13:41:57.4742 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-02 13:41:57.6834 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-02 13:41:57.9084 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-02 13:41:58.1278 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-02 13:41:58.1278 Process:1 Startup Complete SceneCount:5 +2025-04-02 13:42:31.1749 (G2Chat_LoginRequestHandler.cs:16) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589079498074882048 +2025-04-02 13:50:13.6216 (G2Chat_LoginRequestHandler.cs:16) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2590097645842202624 +2025-04-02 13:50:55.5211 (G2Chat_LoginRequestHandler.cs:16) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2590190004818935808 +2025-04-02 13:54:09.0954 初始化序列化器成功,数量为:2 +2025-04-02 13:54:09.7432 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-02 13:54:09.9266 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-02 13:54:09.9398 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 13:54:10.1454 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-02 13:54:10.3365 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-02 13:54:10.3365 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 13:54:10.5651 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-02 13:54:10.7633 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-02 13:54:10.9782 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-02 13:54:11.1712 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-02 13:54:11.4010 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-02 13:54:11.6146 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-02 13:54:11.6146 Process:1 Startup Complete SceneCount:5 +2025-04-02 13:54:47.7636 (G2Chat_LoginRequestHandler.cs:17) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589086095144648704 +2025-04-02 13:56:37.0646 初始化序列化器成功,数量为:2 +2025-04-02 13:56:37.8792 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-02 13:56:38.1452 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-02 13:56:38.1665 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 13:56:38.4628 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-02 13:56:38.7117 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-02 13:56:38.7117 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 13:56:38.9304 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-02 13:56:39.1181 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-02 13:56:39.3678 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-02 13:56:39.5632 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-02 13:56:39.7691 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-02 13:56:39.9746 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-02 13:56:39.9746 Process:1 Startup Complete SceneCount:5 +2025-04-02 13:56:52.9277 (G2Chat_LoginRequestHandler.cs:17) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589035517609771008 +2025-04-02 13:59:44.2479 (G2Chat_LoginRequestHandler.cs:17) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589413749609725952 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Warn.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Warn.log new file mode 100644 index 00000000..2bee5003 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040213.Warn.log @@ -0,0 +1,6 @@ +2025-04-02 13:42:31.1287 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 13:50:13.5916 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 13:50:55.4900 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 13:54:47.7243 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 13:56:52.8846 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 13:59:44.2333 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Debug.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Debug.log new file mode 100644 index 00000000..2c9bdbd9 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Debug.log @@ -0,0 +1,31 @@ +2025-04-02 14:01:52.9745 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 14:01:53.0686 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 14:01:53.0701 (EntityTimeOutComponentSystem.cs:52) session : 0 Dispose +2025-04-02 14:02:25.3077 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 14:02:25.4630 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 14:02:25.4630 (GameAccountManageComponentSystem.cs:91) Gate 当前缓存中的 SessionID 2589767792353869824 +2025-04-02 14:02:25.4630 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589767792353869824 AccountId:116299279127281665 +2025-04-02 14:02:25.6276 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 14:02:31.3079 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 14:03:53.3827 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 14:03:53.5517 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 14:03:53.5517 (GameAccountManageComponentSystem.cs:68) Gate account already exists(账号已存在缓存中) +2025-04-02 14:03:53.5517 (GameAccountManageComponentSystem.cs:74) Gate 检测当前帐号和当前Session 不是同一个,2589767792353869824,$2589961306400358400 +2025-04-02 14:03:53.5517 (GameAccountManageComponentSystem.cs:91) Gate 当前缓存中的 SessionID 2589961306400358400 +2025-04-02 14:03:53.5517 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589961306400358400 AccountId:116299279127281665 +2025-04-02 14:03:53.5986 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 14:03:59.3836 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 14:04:01.1342 (GameAccountManageComponentSystem.cs:120) Gate 已经存在了销毁组件 +2025-04-02 14:06:54.2586 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 14:06:54.6631 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 14:06:55.0707 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 14:06:55.4956 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 14:07:04.2879 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 14:07:04.5229 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 14:07:04.5478 (GameAccountManageComponentSystem.cs:91) Gate 当前缓存中的 SessionID 2589026721516748800 +2025-04-02 14:07:04.5478 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589026721516748800 AccountId:116299279127281665 +2025-04-02 14:07:04.5848 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 14:07:10.2889 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 14:12:29.5101 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 14:12:29.5875 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 14:12:29.5875 (EntityTimeOutComponentSystem.cs:52) session : 0 Dispose diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Error.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Error.log new file mode 100644 index 00000000..adeac7b8 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Error.log @@ -0,0 +1,24 @@ +2025-04-02 14:02:35.9291 System.Exception: OuterMessageScheduler CustomRouteType session does not have an routeComponent component + at Fantasy.Scheduler.OuterMessageScheduler.Scheduler(Session session, APackInfo packInfo) + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Network.Session.Receive(APackInfo packInfo) +2025-04-02 14:04:01.1342 CallInnerRoute routeId == 0 + at Fantasy.Scheduler.NetworkMessagingComponent.CallInnerRoute(Int64 routeId, Type requestType, APackInfo packInfo) + at Fantasy.Scheduler.NetworkMessagingComponent.CallInnerRoute(Int64 routeId, Type requestType, APackInfo packInfo) + at Fantasy.Scheduler.OuterMessageScheduler.Scheduler(Session session, APackInfo packInfo) + at Fantasy.Network.Session.Receive(APackInfo packInfo) + at Fantasy.Network.KCP.KCPServerNetworkChannel.Input(ReadOnlyMemory`1 buffer) + at Fantasy.Network.KCP.KCPServerNetwork.ReadPipeDataAsync() + at System.IO.Pipelines.Pipe.ExecuteWithoutExecutionContext(Object state) + at Fantasy.ThreadSynchronizationContext.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-02 14:04:01.1342 System.NullReferenceException: Object reference not set to an instance of an object. + at System.Object.GetType() + at Fantasy.Network.Session.Send(IMessage message, UInt32 rpcId, Int64 routeId) + at Fantasy.Scheduler.OuterMessageScheduler.Scheduler(Session session, APackInfo packInfo) + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Network.Session.Receive(APackInfo packInfo) diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Info.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Info.log new file mode 100644 index 00000000..bd13bdd6 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Info.log @@ -0,0 +1,18 @@ +2025-04-02 14:02:25.4630 (G2Chat_LoginRequestHandler.cs:17) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589767792353869824 +2025-04-02 14:03:53.5517 (G2Chat_LoginRequestHandler.cs:17) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589961306400358400 +2025-04-02 14:06:53.3342 初始化序列化器成功,数量为:2 +2025-04-02 14:06:54.0008 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-02 14:06:54.2429 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-02 14:06:54.2586 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 14:06:54.4624 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-02 14:06:54.6609 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-02 14:06:54.6609 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 14:06:54.8813 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-02 14:06:55.0685 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-02 14:06:55.2964 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-02 14:06:55.4956 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-02 14:06:55.7100 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-02 14:06:55.9173 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-02 14:06:55.9173 Process:1 Startup Complete SceneCount:5 +2025-04-02 14:07:04.5595 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589026721516748800 +2025-04-02 14:07:07.6648 (C2Chat_TestRequestHandler.cs:11) chatUnitSnowShow AccountId:116299279127281665 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Warn.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Warn.log new file mode 100644 index 00000000..1b21af42 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040214.Warn.log @@ -0,0 +1,5 @@ +2025-04-02 14:01:49.4619 session timeout id:135445814507208705 timeNow:1743573709461 _session.LastReceiveTime:1743573699090 _timeOut:8000 +2025-04-02 14:02:25.4630 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 14:03:53.5517 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 14:07:04.5229 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 14:07:29.4938 session timeout id:135453373649649664 timeNow:1743574049493 _session.LastReceiveTime:1743574038406 _timeOut:8000 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Debug.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Debug.log new file mode 100644 index 00000000..20989f70 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Debug.log @@ -0,0 +1,10 @@ +2025-04-02 16:59:26.8261 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 16:59:27.2194 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 16:59:27.6185 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 16:59:28.0036 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 16:59:50.0545 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 16:59:50.2974 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 16:59:50.3233 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589055308819070976 +2025-04-02 16:59:50.3233 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589055308819070976 AccountId:116299279127281665 +2025-04-02 16:59:50.3575 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 16:59:56.0574 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Error.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Error.log new file mode 100644 index 00000000..486d21d8 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Error.log @@ -0,0 +1,18 @@ +2025-04-02 16:56:15.4982 System.ArgumentException: An item with the same key has already been added. Key: Fantasy.G2Chat_LoginRequest + at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) + at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) + at Fantasy.Network.Interface.MessageDispatcherComponent.LoadInner(Int64 assemblyIdentity) + at Fantasy.Network.Interface.MessageDispatcherComponent.<>c__DisplayClass16_0.b__0() + at Fantasy.ThreadSynchronizationContext.Update() +2025-04-02 16:56:33.3541 System.ArgumentException: An item with the same key has already been added. Key: Fantasy.G2Chat_LoginRequest + at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) + at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) + at Fantasy.Network.Interface.MessageDispatcherComponent.LoadInner(Int64 assemblyIdentity) + at Fantasy.Network.Interface.MessageDispatcherComponent.<>c__DisplayClass16_0.b__0() + at Fantasy.ThreadSynchronizationContext.Update() +2025-04-02 16:57:58.0473 System.ArgumentException: An item with the same key has already been added. Key: Fantasy.G2Chat_LoginRequest + at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) + at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) + at Fantasy.Network.Interface.MessageDispatcherComponent.LoadInner(Int64 assemblyIdentity) + at Fantasy.Network.Interface.MessageDispatcherComponent.<>c__DisplayClass16_0.b__0() + at Fantasy.ThreadSynchronizationContext.Update() diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Info.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Info.log new file mode 100644 index 00000000..24f4b4a9 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Info.log @@ -0,0 +1,18 @@ +2025-04-02 16:56:15.4342 初始化序列化器成功,数量为:2 +2025-04-02 16:56:33.3030 初始化序列化器成功,数量为:2 +2025-04-02 16:57:57.9899 初始化序列化器成功,数量为:2 +2025-04-02 16:59:26.0246 初始化序列化器成功,数量为:2 +2025-04-02 16:59:26.5981 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-02 16:59:26.8136 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-02 16:59:26.8261 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 16:59:27.0291 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-02 16:59:27.2194 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-02 16:59:27.2194 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 16:59:27.4309 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-02 16:59:27.6160 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-02 16:59:27.8212 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-02 16:59:28.0036 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-02 16:59:28.2123 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-02 16:59:28.4153 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-02 16:59:28.4153 Process:1 Startup Complete SceneCount:5 +2025-04-02 16:59:50.3361 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589055308819070976 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Warn.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Warn.log new file mode 100644 index 00000000..fcd38eb2 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040216.Warn.log @@ -0,0 +1 @@ +2025-04-02 16:59:50.2974 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Debug.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Debug.log new file mode 100644 index 00000000..3426b9e0 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Debug.log @@ -0,0 +1,36 @@ +2025-04-02 17:01:45.9357 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 17:01:46.3516 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 17:01:46.7610 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 17:01:47.1682 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 17:01:53.9070 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 17:01:54.1413 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 17:01:54.1677 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589022323470237696 +2025-04-02 17:01:54.1677 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589022323470237696 AccountId:116299279127281665 +2025-04-02 17:01:54.2161 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 17:01:59.9082 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 17:07:26.4240 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 17:07:26.8215 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 17:07:27.2296 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 17:07:27.6696 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 17:08:09.7733 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 17:08:10.0083 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 17:08:10.0360 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589099289284182016 +2025-04-02 17:08:10.0360 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589099289284182016 AccountId:116299279127281665 +2025-04-02 17:08:10.0743 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 17:08:15.7752 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 17:09:14.9881 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 17:11:49.9873 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 17:11:50.4176 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-02 17:11:50.8359 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 17:11:51.2496 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-02 17:12:24.3154 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-02 17:12:24.5750 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-02 17:12:24.6011 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589079498074882048 +2025-04-02 17:12:24.6011 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589079498074882048 AccountId:116299279127281665 +2025-04-02 17:12:24.6390 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-02 17:12:30.3167 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-02 17:12:54.5523 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 17:12:54.6171 (G2Chat_OfflineRequestHandler.cs:11) chat : 聊天服务器SnowShow 下线 +2025-04-02 17:12:54.6171 (GateLoginHelper.cs:44) Gate : chat聊天服务器下线成功 +2025-04-02 17:12:54.6171 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-02 17:12:54.6171 (EntityTimeOutComponentSystem.cs:52) session : 0 Dispose diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Error.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Error.log new file mode 100644 index 00000000..8e0e9b2e --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Error.log @@ -0,0 +1,31 @@ +2025-04-02 17:09:15.0026 Fantasy.Timer.TimerComponent Update Error MongoDB.Bson.BsonSerializationException: An error occurred while serializing the Routes field of class Fantasy.GameAccount: When using DictionaryRepresentation.Document key values must serialize as strings. + ---> MongoDB.Bson.BsonSerializationException: When using DictionaryRepresentation.Document key values must serialize as strings. + at MongoDB.Bson.Serialization.Serializers.DictionarySerializerBase`3.SerializeKeyString(TKey key) + at MongoDB.Bson.Serialization.Serializers.DictionarySerializerBase`3.SerializeDocumentRepresentation(BsonSerializationContext context, TDictionary value) + at MongoDB.Bson.Serialization.Serializers.DictionarySerializerBase`3.SerializeValue(BsonSerializationContext context, BsonSerializationArgs args, TDictionary value) + at MongoDB.Bson.Serialization.Serializers.ClassSerializerBase`1.Serialize(BsonSerializationContext context, BsonSerializationArgs args, TValue value) + at MongoDB.Bson.Serialization.IBsonSerializerExtensions.Serialize(IBsonSerializer serializer, BsonSerializationContext context, Object value) + at MongoDB.Bson.Serialization.BsonClassMapSerializer`1.SerializeNormalMember(BsonSerializationContext context, Object obj, BsonMemberMap memberMap) + at MongoDB.Bson.Serialization.BsonClassMapSerializer`1.SerializeMember(BsonSerializationContext context, Object obj, BsonMemberMap memberMap) + --- End of inner exception stack trace --- + at MongoDB.Bson.Serialization.BsonClassMapSerializer`1.SerializeMember(BsonSerializationContext context, Object obj, BsonMemberMap memberMap) + at MongoDB.Bson.Serialization.BsonClassMapSerializer`1.SerializeClass(BsonSerializationContext context, BsonSerializationArgs args, TClass document) + at MongoDB.Bson.Serialization.BsonClassMapSerializer`1.Serialize(BsonSerializationContext context, BsonSerializationArgs args, TClass value) + at MongoDB.Bson.BsonExtensionMethods.ToBson(Object obj, Type nominalType, BsonBinaryWriterSettings writerSettings, IBsonSerializer serializer, Action`1 configurator, BsonSerializationArgs args, Int32 estimatedBsonSize) + at MongoDB.Bson.BsonExtensionMethods.ToBson[TNominalType](TNominalType obj, IBsonSerializer`1 serializer, BsonBinaryWriterSettings writerSettings, Action`1 configurator, BsonSerializationArgs args, Int32 estimatedBsonSize) + at Fantasy.Serialize.BsonPackHelper.Serialize[T](T object) + at Fantasy.Serialize.BsonPackHelper.Clone[T](T t) + at Fantasy.DataBase.MongoDataBase.Save[T](T entity, String collection) + at Hotfix.GameAccountSystem.SaveToDatabase(GameAccount self, Scene scene) in D:\UnityProject\EintooAR\GameServer\Server\Hotfix\Outter\Gate\GameAccount\GameAccountSystem.cs:line 12 + at Hotfix.GameAccountSystem.DisConnect(GameAccount self) in D:\UnityProject\EintooAR\GameServer\Server\Hotfix\Outter\Gate\GameAccount\GameAccountSystem.cs:line 30 + at Hotfix.EntityTimeOutComponentSystem.Handler(EntityTimeOutComponent self, Int64 parentRunTimeId, Func`1 callback) in D:\UnityProject\EintooAR\GameServer\Server\Hotfix\Outter\Entity\EntityTimeOutComponentSystem.cs:line 48 + at Fantasy.Async.FTask.InnerCoroutine() + at Fantasy.Async.FTask.InnerCoroutine() + at Hotfix.EntityTimeOutComponentSystem.<>c__DisplayClass2_0.b__0() in D:\UnityProject\EintooAR\GameServer\Server\Hotfix\Outter\Entity\EntityTimeOutComponentSystem.cs:line 35 + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Info.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Info.log new file mode 100644 index 00000000..393f1984 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Info.log @@ -0,0 +1,45 @@ +2025-04-02 17:01:45.0878 初始化序列化器成功,数量为:2 +2025-04-02 17:01:45.7153 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-02 17:01:45.9191 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-02 17:01:45.9357 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 17:01:46.1523 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-02 17:01:46.3495 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-02 17:01:46.3516 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 17:01:46.5734 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-02 17:01:46.7610 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-02 17:01:46.9788 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-02 17:01:47.1682 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-02 17:01:47.3781 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-02 17:01:47.5875 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-02 17:01:47.5875 Process:1 Startup Complete SceneCount:5 +2025-04-02 17:01:54.1801 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589022323470237696 +2025-04-02 17:07:25.4986 初始化序列化器成功,数量为:2 +2025-04-02 17:07:26.1987 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-02 17:07:26.4064 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-02 17:07:26.4240 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 17:07:26.6285 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-02 17:07:26.8215 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-02 17:07:26.8215 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 17:07:27.0385 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-02 17:07:27.2296 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-02 17:07:27.4622 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-02 17:07:27.6696 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-02 17:07:27.8931 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-02 17:07:28.1026 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-02 17:07:28.1026 Process:1 Startup Complete SceneCount:5 +2025-04-02 17:08:10.0492 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589099289284182016 +2025-04-02 17:11:49.1038 初始化序列化器成功,数量为:2 +2025-04-02 17:11:49.7598 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-02 17:11:49.9717 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-02 17:11:49.9873 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 17:11:50.2054 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-02 17:11:50.4176 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-02 17:11:50.4176 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-02 17:11:50.6331 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-02 17:11:50.8359 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-02 17:11:51.0480 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-02 17:11:51.2496 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-02 17:11:51.4815 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-02 17:11:51.7176 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-02 17:11:51.7176 Process:1 Startup Complete SceneCount:5 +2025-04-02 17:12:24.6011 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589079498074882048 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Warn.log b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Warn.log new file mode 100644 index 00000000..dff68457 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250402/Server..2025040217.Warn.log @@ -0,0 +1,5 @@ +2025-04-02 17:01:54.1413 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 17:08:10.0083 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 17:09:04.9839 session timeout id:135640032928333824 timeNow:1743584944983 _session.LastReceiveTime:1743584933918 _timeOut:8000 +2025-04-02 17:12:24.5750 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-02 17:12:44.5477 session timeout id:135644413794975744 timeNow:1743585164547 _session.LastReceiveTime:1743585152426 _timeOut:8000 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Debug.log b/GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Debug.log new file mode 100644 index 00000000..10f680b7 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Debug.log @@ -0,0 +1,10 @@ +2025-04-10 18:02:13.2823 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-10 18:02:13.6510 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-10 18:02:14.1352 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-10 18:02:14.5962 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-10 18:03:13.9299 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-10 18:03:14.6191 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-10 18:03:14.6570 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589138871702781952 +2025-04-10 18:03:14.6570 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589138871702781952 AccountId:116299279127281665 +2025-04-10 18:03:14.7414 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-10 18:03:19.9373 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Info.log b/GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Info.log new file mode 100644 index 00000000..e6ca2795 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Info.log @@ -0,0 +1,15 @@ +2025-04-10 18:02:12.0106 初始化序列化器成功,数量为:2 +2025-04-10 18:02:12.9102 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-10 18:02:13.1372 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-10 18:02:13.2823 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-10 18:02:13.4138 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-10 18:02:13.6510 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-10 18:02:13.6510 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-10 18:02:13.9110 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-10 18:02:14.1352 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-10 18:02:14.3893 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-10 18:02:14.5962 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-10 18:02:14.8369 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-10 18:02:15.0847 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-10 18:02:15.0847 Process:1 Startup Complete SceneCount:5 +2025-04-10 18:03:14.6920 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589138871702781952 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Warn.log b/GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Warn.log new file mode 100644 index 00000000..838eabf1 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250410/Server..2025041018.Warn.log @@ -0,0 +1,7 @@ +2025-04-10 18:03:14.6191 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-10 18:03:19.3288 Scene:738459648 Found Unhandled RouteMessage: Fantasy.C2Chat_BoardMessageRequest +2025-04-10 18:03:33.2455 Scene:738459648 Found Unhandled RouteMessage: Fantasy.C2Chat_BoardMessageRequest +2025-04-10 18:03:34.3330 Scene:738459648 Found Unhandled RouteMessage: Fantasy.C2Chat_BoardMessageRequest +2025-04-10 18:03:35.5108 Scene:738459648 Found Unhandled RouteMessage: Fantasy.C2Chat_BoardMessageRequest +2025-04-10 18:03:35.6998 Scene:738459648 Found Unhandled RouteMessage: Fantasy.C2Chat_BoardMessageRequest +2025-04-10 18:03:35.9334 Scene:738459648 Found Unhandled RouteMessage: Fantasy.C2Chat_BoardMessageRequest diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Debug.log b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Debug.log new file mode 100644 index 00000000..65a05a6c --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Debug.log @@ -0,0 +1,106 @@ +2025-04-11 15:33:27.7754 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:33:28.3052 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:33:28.8746 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:33:29.4622 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:33:50.2754 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 15:33:50.8787 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 15:33:50.8978 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589053109795815424 +2025-04-11 15:33:50.8991 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589053109795815424 AccountId:116299279127281665 +2025-04-11 15:33:50.9430 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 15:33:56.2772 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 15:34:40.8522 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-11 15:35:15.5785 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:35:15.9484 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:35:16.3260 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:35:16.7161 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:36:05.9189 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 15:36:06.2176 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 15:36:06.2564 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589114682446970880 +2025-04-11 15:36:06.2581 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589114682446970880 AccountId:116299279127281665 +2025-04-11 15:36:06.3355 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 15:36:11.9240 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 15:36:26.1967 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-11 15:36:26.2659 (G2Chat_OfflineRequestHandler.cs:11) chat : 聊天服务器SnowShow 下线 +2025-04-11 15:36:26.2659 (GateLoginHelper.cs:44) Gate : chat聊天服务器下线成功 +2025-04-11 15:36:26.2659 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-11 15:36:26.2659 (EntityTimeOutComponentSystem.cs:52) session : 0 Dispose +2025-04-11 15:37:54.5531 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 15:37:54.7182 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 15:37:54.7264 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589354375981826048 +2025-04-11 15:37:54.7264 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589354375981826048 AccountId:116299279127281665 +2025-04-11 15:37:54.7724 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 15:38:00.5543 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 15:39:33.1843 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:39:33.5875 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:39:33.9826 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:39:34.3674 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:40:09.8010 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 15:40:10.0575 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 15:40:10.0885 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589086095144648704 +2025-04-11 15:40:10.0885 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589086095144648704 AccountId:116299279127281665 +2025-04-11 15:40:10.1505 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 15:40:13.1258 (C2Chat_BoardRequestMessageHandler.cs:12) Love +2025-04-11 15:40:15.8053 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 15:41:41.4501 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:41:41.8365 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:41:42.2302 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:41:42.6253 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:41:49.7037 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 15:41:49.9609 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 15:41:49.9914 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589022323470237696 +2025-04-11 15:41:49.9914 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589022323470237696 AccountId:116299279127281665 +2025-04-11 15:41:50.0552 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 15:41:53.7608 (C2Chat_BoardRequestMessageHandler.cs:12) Love +2025-04-11 15:41:53.7608 (ChatHelper.cs:21) 85932900352 +2025-04-11 15:41:53.7608 (ChatHelper.cs:21) 94522834944 +2025-04-11 15:41:55.7135 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 15:45:17.4931 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:45:17.8754 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:45:18.2764 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:45:18.6637 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:46:29.4587 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 15:46:29.7089 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 15:46:29.7327 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589163060958593024 +2025-04-11 15:46:29.7327 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589163060958593024 AccountId:116299279127281665 +2025-04-11 15:46:29.7742 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 15:46:33.0385 (C2Chat_BoardRequestMessageHandler.cs:12) Love +2025-04-11 15:46:33.0385 (ChatHelper.cs:21) 85932900352 +2025-04-11 15:46:33.0385 (Chat2G_BoardMessageHandler.cs:19) GateLove +2025-04-11 15:46:35.4618 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 15:49:20.7250 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:49:21.1064 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:49:21.5042 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:49:21.8951 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:49:56.2043 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 15:49:56.4790 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 15:49:56.5206 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589081697098137600 +2025-04-11 15:49:56.5206 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589081697098137600 AccountId:116299279127281665 +2025-04-11 15:49:56.5844 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 15:49:59.1360 (C2Chat_BoardRequestMessageHandler.cs:12) Love +2025-04-11 15:49:59.1360 (ChatHelper.cs:21) 85932900352 +2025-04-11 15:49:59.1528 (Chat2G_BoardMessageHandler.cs:19) Love +2025-04-11 15:50:02.2075 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 15:53:23.1796 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:53:23.6034 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:53:24.0237 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:53:24.4187 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:53:35.0454 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 15:53:35.3006 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 15:53:35.3419 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589031119563259904 +2025-04-11 15:53:35.3419 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589031119563259904 AccountId:116299279127281665 +2025-04-11 15:53:35.4077 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 15:53:38.0390 (C2Chat_BoardRequestMessageHandler.cs:12) Love +2025-04-11 15:53:38.0390 (ChatHelper.cs:21) 85932900352 +2025-04-11 15:53:38.0547 (Chat2G_BoardMessageHandler.cs:19) 0 +2025-04-11 15:53:41.0609 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 15:59:02.1323 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:59:02.4884 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 15:59:02.8598 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:59:03.2376 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 15:59:40.2166 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 15:59:40.4833 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 15:59:40.5250 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589088294167904256 +2025-04-11 15:59:40.5250 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589088294167904256 AccountId:116299279127281665 +2025-04-11 15:59:40.5628 (GateLoginHelper.cs:32) OLine Gate1 +2025-04-11 15:59:40.5892 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 15:59:46.2307 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Error.log b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Error.log new file mode 100644 index 00000000..ff8e00cd --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Error.log @@ -0,0 +1,762 @@ +2025-04-11 15:34:28.2433 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:30.6502 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:31.3106 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:31.5817 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:31.7644 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:31.9531 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:32.1336 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:38.6398 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:38.8670 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:38.8670 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:2 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:39.0708 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:39.2857 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:39.9822 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:40.5772 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:41.1027 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:41.6802 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:42.1975 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:42.7772 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:43.2472 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:43.7720 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:44.1722 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:44.3467 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:44.5410 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:47.3929 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:48.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:3 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:48.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:4 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:48.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:5 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:48.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:6 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:48.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:7 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:48.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:8 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:48.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:9 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:48.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:10 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:49.4911 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:49.7158 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:49.9205 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:50.1102 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:50.3128 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:50.5103 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:50.6892 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:50.8485 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:51.0574 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:51.2710 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:51.4735 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:51.6747 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:51.9875 coroutine lock timeout CoroutineLockQueueType:140718960075648 Key:2589053238644834304 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:11 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:12 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:13 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:14 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:15 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:16 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:17 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:18 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:19 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:20 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:21 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:22 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:23 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:34:58.8810 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:24 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:38:28.7675 coroutine lock timeout CoroutineLockQueueType:140718960002680 Key:2589354504830844928 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:38:46.3961 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:4 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:38:58.9700 coroutine lock timeout CoroutineLockQueueType:140718960002680 Key:2589354504830844928 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:47:03.0395 coroutine lock timeout CoroutineLockQueueType:140718960002680 Key:2589163189807611904 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:47:18.2844 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:2 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:50:29.1380 coroutine lock timeout CoroutineLockQueueType:140718959871608 Key:2589081825947156480 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:54:08.0398 coroutine lock timeout CoroutineLockQueueType:140718960133752 Key:2589029049389023232 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 15:54:24.0541 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:2 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Info.log b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Info.log new file mode 100644 index 00000000..82abddbc --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Info.log @@ -0,0 +1,121 @@ +2025-04-11 15:33:26.5739 初始化序列化器成功,数量为:2 +2025-04-11 15:33:27.3874 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 15:33:27.6503 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 15:33:27.7754 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:33:27.9906 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 15:33:28.3029 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 15:33:28.3052 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:33:28.6006 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 15:33:28.8746 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 15:33:29.1824 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 15:33:29.4622 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 15:33:29.7341 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 15:33:29.9710 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 15:33:29.9710 Process:1 Startup Complete SceneCount:5 +2025-04-11 15:33:50.8991 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589053109795815424 +2025-04-11 15:35:14.7202 初始化序列化器成功,数量为:2 +2025-04-11 15:35:15.3431 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 15:35:15.5644 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 15:35:15.5785 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:35:15.7682 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 15:35:15.9484 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 15:35:15.9484 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:35:16.1532 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 15:35:16.3260 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 15:35:16.5374 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 15:35:16.7161 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 15:35:16.9317 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 15:35:17.1325 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 15:35:17.1325 Process:1 Startup Complete SceneCount:5 +2025-04-11 15:36:06.2898 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589114682446970880 +2025-04-11 15:37:54.7417 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589354375981826048 +2025-04-11 15:39:32.3087 初始化序列化器成功,数量为:2 +2025-04-11 15:39:32.9543 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 15:39:33.1675 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 15:39:33.1843 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:39:33.4019 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 15:39:33.5875 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 15:39:33.5875 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:39:33.7925 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 15:39:33.9826 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 15:39:34.1892 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 15:39:34.3674 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 15:39:34.5846 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 15:39:34.7982 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 15:39:34.7982 Process:1 Startup Complete SceneCount:5 +2025-04-11 15:40:10.1055 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589086095144648704 +2025-04-11 15:41:40.5770 初始化序列化器成功,数量为:2 +2025-04-11 15:41:41.2305 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 15:41:41.4336 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 15:41:41.4501 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:41:41.6505 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 15:41:41.8346 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 15:41:41.8365 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:41:42.0469 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 15:41:42.2302 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 15:41:42.4428 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 15:41:42.6253 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 15:41:42.8275 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 15:41:43.0321 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 15:41:43.0321 Process:1 Startup Complete SceneCount:5 +2025-04-11 15:41:50.0085 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589022323470237696 +2025-04-11 15:45:16.5837 初始化序列化器成功,数量为:2 +2025-04-11 15:45:17.2601 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 15:45:17.4770 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 15:45:17.4931 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:45:17.6924 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 15:45:17.8754 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 15:45:17.8754 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:45:18.0926 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 15:45:18.2764 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 15:45:18.4812 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 15:45:18.6637 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 15:45:18.8768 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 15:45:19.0974 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 15:45:19.0974 Process:1 Startup Complete SceneCount:5 +2025-04-11 15:46:29.7475 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589163060958593024 +2025-04-11 15:49:19.8428 初始化序列化器成功,数量为:2 +2025-04-11 15:49:20.5011 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 15:49:20.7102 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 15:49:20.7250 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:49:20.9195 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 15:49:21.1064 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 15:49:21.1064 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:49:21.3101 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 15:49:21.5042 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 15:49:21.7144 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 15:49:21.8951 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 15:49:22.1004 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 15:49:22.3014 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 15:49:22.3014 Process:1 Startup Complete SceneCount:5 +2025-04-11 15:49:56.5378 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589081697098137600 +2025-04-11 15:53:22.2766 初始化序列化器成功,数量为:2 +2025-04-11 15:53:22.9245 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 15:53:23.1581 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 15:53:23.1796 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:53:23.4150 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 15:53:23.6034 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 15:53:23.6034 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:53:23.8366 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 15:53:24.0237 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 15:53:24.2349 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 15:53:24.4187 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 15:53:24.6313 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 15:53:24.8391 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 15:53:24.8391 Process:1 Startup Complete SceneCount:5 +2025-04-11 15:53:35.3603 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589031119563259904 +2025-04-11 15:59:01.3151 初始化序列化器成功,数量为:2 +2025-04-11 15:59:01.9274 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 15:59:02.1165 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 15:59:02.1313 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:59:02.3145 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 15:59:02.4884 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 15:59:02.4884 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 15:59:02.6804 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 15:59:02.8598 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 15:59:03.0545 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 15:59:03.2376 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 15:59:03.4464 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 15:59:03.6500 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 15:59:03.6500 Process:1 Startup Complete SceneCount:5 +2025-04-11 15:59:40.5431 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589088294167904256 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Warn.log b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Warn.log new file mode 100644 index 00000000..efda794c --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041115.Warn.log @@ -0,0 +1,11 @@ +2025-04-11 15:33:50.8787 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 15:34:30.8472 session timeout id:148901878326099968 timeNow:1744356870847 _session.LastReceiveTime:1744356862804 _timeOut:8000 +2025-04-11 15:36:06.2176 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 15:36:16.1918 session timeout id:148904214788308992 timeNow:1744356976191 _session.LastReceiveTime:1744356968184 _timeOut:8000 +2025-04-11 15:37:54.7182 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 15:40:10.0575 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 15:41:49.9609 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 15:46:29.7089 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 15:49:56.4790 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 15:53:35.3006 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 15:59:40.4833 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Debug.log b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Debug.log new file mode 100644 index 00000000..9d2a9a19 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Debug.log @@ -0,0 +1,63 @@ +2025-04-11 16:02:41.0670 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 16:02:41.4687 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 16:02:41.8843 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 16:02:42.2825 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 16:02:47.1598 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 16:02:47.4039 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 16:02:47.4331 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589017925423726592 +2025-04-11 16:02:47.4331 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589017925423726592 AccountId:116299279127281665 +2025-04-11 16:02:47.4481 (GateLoginHelper.cs:32) OLine Gate1 +2025-04-11 16:02:47.4741 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 16:02:49.1849 (C2Chat_BoardRequestMessageHandler.cs:12) Love +2025-04-11 16:02:49.1849 (ChatHelper.cs:21) 85932900352 +2025-04-11 16:02:53.1615 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 16:06:55.1604 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 16:06:55.5580 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 16:06:55.9862 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 16:06:56.3952 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 16:07:05.2280 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 16:07:05.4977 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 16:07:05.5249 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589026721516748800 +2025-04-11 16:07:05.5249 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589026721516748800 AccountId:116299279127281665 +2025-04-11 16:07:05.5626 (GateLoginHelper.cs:32) OLine Gate1 +2025-04-11 16:07:05.6048 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 16:07:11.2339 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 16:07:12.0761 (C2Chat_BoardRequestMessageHandler.cs:12) Love +2025-04-11 16:07:12.0761 (ChatHelper.cs:21) 85932900352 +2025-04-11 16:07:12.0761 (ChatHelper.cs:21) 94522834944 +2025-04-11 16:10:44.9181 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 16:10:45.3008 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 16:10:45.6843 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 16:10:46.0383 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 16:11:13.0428 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 16:11:13.3245 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 16:11:13.3523 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589066303935348736 +2025-04-11 16:11:13.3523 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589066303935348736 AccountId:116299279127281665 +2025-04-11 16:11:13.3879 (GateLoginHelper.cs:32) OLine Gate1 +2025-04-11 16:11:13.4158 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 16:11:17.5050 (C2Chat_BoardRequestMessageHandler.cs:12) Love +2025-04-11 16:11:17.5050 (ChatHelper.cs:21) 85932900352 +2025-04-11 16:11:17.5050 (ChatHelper.cs:21) 94522834944 +2025-04-11 16:11:19.0489 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 16:11:57.2160 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 16:11:57.6031 (OnCreateScene_InitEvent.cs:16) 初始化鉴权服务器组件 +2025-04-11 16:11:57.9995 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 16:11:58.4045 (OnCreateScene_InitEvent.cs:21) 初始网关(Gate)服务器组件 +2025-04-11 16:12:04.1304 (AuthenticationComponentSystem.cs:130) Authentication: Login Success(登录成功),username:wangwei,password:123,source:客户端,Position:1001 +2025-04-11 16:12:04.3868 (C2G_LoginRequestHandler.cs:31) Gate校验登录成功用户116299279127281665 +2025-04-11 16:12:04.4148 (GameAccountManageComponentSystem.cs:102) Gate 当前缓存中的 SessionID 2589020124446982144 +2025-04-11 16:12:04.4148 (C2G_LoginRequestHandler.cs:43) Gate : Login 登录成功GameAccount:session2589020124446982144 AccountId:116299279127281665 +2025-04-11 16:12:04.4510 (GateLoginHelper.cs:32) OLine Gate1 +2025-04-11 16:12:04.4775 (G2C_GetGameAccountInfoHandler.cs:37) Gate: 获取账号信息 AccountId SnowShow +2025-04-11 16:12:06.6886 (C2Chat_BoardRequestMessageHandler.cs:12) Love +2025-04-11 16:12:06.6886 (ChatHelper.cs:21) 85932900352 +2025-04-11 16:12:06.6886 (ChatHelper.cs:21) 94522834944 +2025-04-11 16:12:06.7062 (Chat2G_BoardMessageHandler.cs:19) 0 +2025-04-11 16:12:06.7062 (Chat2G_BoardMessageHandler.cs:19) 1 +2025-04-11 16:12:06.7062 (Chat2G_BoardMessageHandler.cs:23) 2589020124446982144 +2025-04-11 16:12:10.1328 (AuthenticationComponentSystem.cs:150) Authentication:Login:username:wangwei 用户移除成功 从缓存中 +2025-04-11 16:12:49.3738 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-11 16:12:49.4467 (G2Chat_OfflineRequestHandler.cs:11) chat : 聊天服务器SnowShow 下线 +2025-04-11 16:12:49.4467 (GateLoginHelper.cs:45) Gate : chat聊天服务器下线成功 +2025-04-11 16:12:49.4467 (GameAccountSystem.cs:29) Gate gameAccount 下线前 保存数据到 数据库中 +2025-04-11 16:12:49.4467 (EntityTimeOutComponentSystem.cs:52) session : 0 Dispose diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Error.log b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Error.log new file mode 100644 index 00000000..439d3350 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Error.log @@ -0,0 +1,23 @@ +2025-04-11 16:03:19.1870 coroutine lock timeout CoroutineLockQueueType:140718960002680 Key:2589018054272745472 Tag: + at Fantasy.Async.OnCoroutineLockTimeout.Handler(CoroutineLockTimeout self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass18_0`1.g__OnceTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + +2025-04-11 16:03:31.8883 Unsupported protocol type:Fantasy.C2Chat_BoardMessageRequest rpcId:2 + at Fantasy.Scheduler.NetworkMessagingComponent.ReturnMessageSender(UInt32 rpcId, MessageSender messageSender) + at Fantasy.Scheduler.OnNetworkMessageUpdateCheckTimeout.Handler(NetworkMessageUpdate self) + at Fantasy.Event.EventSystem`1.Invoke(Object self) + at Fantasy.Event.EventComponent.Publish[TEventData](TEventData eventData) + at Fantasy.Timer.TimerSchedulerNet.<>c__DisplayClass22_0`1.g__RepeatedTimerVoid|0() + at Fantasy.Timer.TimerSchedulerNet.Update() + at Fantasy.Entitas.EntityComponent.Update() + at Fantasy.Scene.Update() + at Fantasy.MultiThreadScheduler.Loop(Scene scene, CancellationToken cancellationToken) + at Fantasy.MultiThreadScheduler.<>c__DisplayClass5_0.b__0() + diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Info.log b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Info.log new file mode 100644 index 00000000..f8d612c2 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Info.log @@ -0,0 +1,60 @@ +2025-04-11 16:02:40.1433 初始化序列化器成功,数量为:2 +2025-04-11 16:02:40.8448 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 16:02:41.0507 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 16:02:41.0670 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 16:02:41.2757 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 16:02:41.4687 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 16:02:41.4687 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 16:02:41.6862 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 16:02:41.8815 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 16:02:42.1015 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 16:02:42.2825 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 16:02:42.4984 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 16:02:42.6990 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 16:02:42.6990 Process:1 Startup Complete SceneCount:5 +2025-04-11 16:02:47.4481 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589017925423726592 +2025-04-11 16:06:54.2808 初始化序列化器成功,数量为:2 +2025-04-11 16:06:54.9424 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 16:06:55.1438 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 16:06:55.1604 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 16:06:55.3643 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 16:06:55.5580 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 16:06:55.5580 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 16:06:55.7960 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 16:06:55.9862 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 16:06:56.2088 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 16:06:56.3952 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 16:06:56.6150 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 16:06:56.8238 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 16:06:56.8238 Process:1 Startup Complete SceneCount:5 +2025-04-11 16:07:05.5436 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589026721516748800 +2025-04-11 16:10:44.1046 初始化序列化器成功,数量为:2 +2025-04-11 16:10:44.7048 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 16:10:44.9032 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 16:10:44.9181 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 16:10:45.1210 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 16:10:45.3008 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 16:10:45.3008 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 16:10:45.5018 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 16:10:45.6843 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 16:10:45.8691 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 16:10:46.0377 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 16:10:46.2357 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 16:10:46.4180 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 16:10:46.4180 Process:1 Startup Complete SceneCount:5 +2025-04-11 16:11:13.3704 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589066303935348736 +2025-04-11 16:11:56.3548 初始化序列化器成功,数量为:2 +2025-04-11 16:11:56.9930 SceneConfigId = 1001 networkTarget = Inner TCPServer Listen 127.0.0.1:11001 +2025-04-11 16:11:57.1998 SceneConfigId = 1001 networkTarget = Outer KCPServer Listen 127.0.0.1:21001 +2025-04-11 16:11:57.2160 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 16:11:57.4152 SceneConfigId = 1002 networkTarget = Inner TCPServer Listen 127.0.0.1:11002 +2025-04-11 16:11:57.6011 SceneConfigId = 1002 networkTarget = Outer KCPServer Listen 127.0.0.1:21002 +2025-04-11 16:11:57.6031 (AuthenticationJWTComponentSystem.cs:44) RSA密钥导入成功 +2025-04-11 16:11:57.8165 SceneConfigId = 1010 networkTarget = Inner TCPServer Listen 127.0.0.1:11010 +2025-04-11 16:11:57.9995 SceneConfigId = 1010 networkTarget = Outer KCPServer Listen 127.0.0.1:21010 +2025-04-11 16:11:58.2086 SceneConfigId = 1011 networkTarget = Inner TCPServer Listen 127.0.0.1:11011 +2025-04-11 16:11:58.4045 SceneConfigId = 1011 networkTarget = Outer KCPServer Listen 127.0.0.1:21011 +2025-04-11 16:11:58.6185 SceneConfigId = 1026 networkTarget = Inner TCPServer Listen 127.0.0.1:11026 +2025-04-11 16:11:58.8222 SceneConfigId = 1026 networkTarget = Outer TCPServer Listen 127.0.0.1:21016 +2025-04-11 16:11:58.8222 Process:1 Startup Complete SceneCount:5 +2025-04-11 16:12:04.4311 (G2Chat_LoginRequestHandler.cs:19) 登录聊天服务器成功 SnowShow AccountId 116299279127281665 GateRoutedId 2589020124446982144 diff --git a/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Warn.log b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Warn.log new file mode 100644 index 00000000..bcbd5eb3 --- /dev/null +++ b/GameServer/Bin/Debug/Logs/Server/Server20250411/Server..2025041116.Warn.log @@ -0,0 +1,5 @@ +2025-04-11 16:02:47.4039 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 16:07:05.4977 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 16:11:13.3245 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 16:12:04.3868 (GateJWTComponentSystem.cs:47) Gate:Token签名校验成功 +2025-04-11 16:12:39.3690 session timeout id:148941288946008064 timeNow:1744359159368 _session.LastReceiveTime:1744359146383 _timeOut:8000 diff --git a/GameServer/Bin/Debug/net9.0/APlugins.dll b/GameServer/Bin/Debug/net9.0/APlugins.dll new file mode 100644 index 0000000000000000000000000000000000000000..ed581911098523d483a0b82f6a998b359376877e GIT binary patch literal 3584 zcmeHJTWl0n82*P|D8*J9D#2iIuq9~FVYk!U7LabcZK?LMc9)7~4V~RRyB(aJ+04uW zC0?qD(H9cqtHz)v#>5BlmJly7_~Z*Q8hI5XJP;rB)hH3a|IBQ6+aeDpCOr6W&wtK; zIsf&{Ih}s;RcaujMvNObh|XhX7?$|fXc^-6dp~QZPc~iLbzYgexGTMAdTQBqimp*o zbB1j@zM2)PTd`HsRui)+wdCZ5*4EbA9hy##5ltx#bYS$C@2cK@qWjd%N`$Bx93Ft5 zcLS*y!x%(cl^@c%$J*>IH za-hhu(gFtCk_6@uhKWY1>*{=g>k8o5Hc%5KRidNtp)m7bz)0$m5hdKs?oae;5lxTi z(HI+RA`7?|#=D*)I*a)WUZ;H5w2K~VWY7anvFk{R7O>{lbxj!|01kBa~Tb%JGT7=~eV79iXw9*5>TPP}VOyao2lM+8B@e>kjw3&92 zMq6nQ@D3UW?!vj$XfK@s*6DTN{q!#ID18k4sN|=B8<(q5ARGzj5R|M(NZ%!^5E2Kb zoqWX-4^wK%^F>LUtJuC-5|j|xO0j5UEfM$8j%>vj6!$z)%34cl)30Zz4Yw%#aeU+A zq~kulUVq%Q#Jq4l)3MhJC+&jcmJA<4!}>?9QO7Qr#fmHSYDPw#QrWa5b52;sDY^1$ z@@m9M7g^@~^#V3v*h@7*n7`!vX4bS!zfQWkNLm;!4lBizR;6g#o|d<)m0F5|C32h@ zX*u6JPVA>pQkd&0~KFYE(6pidyHZo=--=~Uoe0b*4 zpF7^T=PEU-iqg`clG21lM+cMbE$0p$d%ojR>rjgl-W5Cfgr+xad)zh3GmbrWDksVu zXL`|fPI?OTHp-KHP@(PG%vgHVaYejbelSe<;E9+Pfr0kUm98gDuWT7hGdKh-yhDXX z8{E|bZdIsBo+?~Kuph-mfFF^rkS2+}k%-YR^!~iw*Vm)x2V%xxOpiozh5lSDIuO-+ zMImZL^}=A7{N=f(S4f#o;+v=A7}vWo!uNqyID@SidoT*P*9sf4r~~;7)X{UPMCzj} zFF*6^H*Ze7_TvXM_5RN5Y$Gw0Ib!1&;1C^0J2PXZ?K@6phMBdgueT{Vid5WAw7gm&xY5zOb$r(2x8vwA zQ77)_Ds(pVVmVJKItDyOb68E{Mw?_J$oMoAo zWTZt}ghi64azy%=4f&iW`>5u}R8Wmu`3mZogbfD~R8SAUE=r=cdpW)rX&>TSy=QGj zYW3JFduLET^3j3wz?>epNU8u`hC$hn pIC|hgUc#xcP$3m3a&>2Fad3ZbQ&59{6R-B&rt$qB)_+=ozX8mE{0RU6 literal 0 HcmV?d00001 diff --git a/GameServer/Bin/Debug/net9.0/APlugins.pdb b/GameServer/Bin/Debug/net9.0/APlugins.pdb new file mode 100644 index 0000000000000000000000000000000000000000..7e866004538a3a5bc63e99b9c40560fa1faaff38 GIT binary patch literal 20704 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

xr*G@?Z--Mdw5U z;vI(kqGn02GtIZsx3JDknlPltu)dMRtFXaR{jP*WadXQ3GC2o2jE=-ih)mKfL4#aW z$iYyd>k7P~do9mw1}b0P6d;*z7wvot|H^Ids-Bv3^vRfm)HKsLv=F2+(621hh$8dtLS#zBQER9|&NNrL5wgrJp(>qAV z7KJDJIZQ=!4x(9bf{R+`@^y~`r7i2ltEBm!Ao>T5jV_)x!+%sEa2)hd?_GH?5-aVZ z`DVZF3dWy)=zCS&HQ~^xaNeZ(WpJkr+9?k8LO)!8JT4{q&3M^G$~``M_mMNy0Y5oo zia)Ym97-|*!smY{6#jHMz@cvDj@rB#Tt;TeL4$!`mF>+y0b`53=N#V`qvzN0sHC61 z8;#*a>u=cHd#rsHv3!ut+amRCw)*~Efx73)mvcrH#8zEN3kN6T>5kw}FbLvg%Ma-v zfkewgl#?9smBfIsehjO2>%q~v1Q&iLoM}P|vHai0Eb(4sMm(7^?vdOIA9P6zI>Z|V ztCb%TKx1~Bb_YaVjMfkMxM}In<)J=98-shyq|)64RY)Cv0f?7=eEq^JtDdhlNRxQ% zU$pvg)yO#b_|t*qiCV|zLk}MVli_^$vCgrAX@n%tn6ugIi_wD*ft1J_8XTVw47z-w zTptj5eNV9Nyr351c^$Ii1SVBCfBGKfU0KBX7FwbYS42{|Nm zA{-ApJo_Oo(_cKwBPA}Iuc5(U-e8=S`S&Jh&lo>vq1@-YMa@H+HhC z(5)W92^nko1hY0!J(a^Llcds{bLGdfHGd34inyTV#E3&m$PEvOy<9-7zD`J|!wC>D5Ej0puNLtG2msSgC-8t}KM_d)r zB+bf0s=G1&&2Tg_KKzd6q*fva9u1r8p02Fgg9}QiRF+oSfO?5S9Ys(=g-AY4w#cd7 z`sZfvK4KNf}hRF!e?J_8GR$!K1|B{3@Y$hAF?&W(sD@kD*cyi70?ZtA?lD9mka9eJ$6l1@hX9*4|GV$g#@X))v9@w9 z&T|XUe1|oK;ZC!1cN5gO-Sz)j2P8Y~T6cdZJ<8Beiy0BuWuD1zXJCb5D%Pfg2QMp0 zTV1vNWmKg;-n&&dd7IFKpl*hDlLAdTc=w)bML@=t$@)rWxSR?9^)S7^7^0v-=D3#W zh@3edgYe!u1(M`w1&xE#clmYmA0F_Ml2i1N!JBwmrLT=}#i-KJ=j}fZpHWuupiqLe zuNy8gf(0+p57~8OI!*7a>9aDA`*bxST3%>3DAwB2AbA@6iMiBv^;4VImK&7LeKkMK zTM9ix1Z@mYGSJBLxj;W<5%+T{#dMVTjmtOUj&-9S2`W2?uLtYYw_4va)i%& z&!^9N(eqHG73A@ueWLf@L3F-be%y)vdTV{Z6{XK*d-99;`!6U#;Lq0yr#}0FCWxUv zfuUbE5UW;OSz+HVAZ_7r9fYsg+^MX(1+K&0SzOL6d!)(GHf}sBamX!Eu literal 0 HcmV?d00001 diff --git a/GameServer/Bin/Debug/net9.0/CommandLine.dll b/GameServer/Bin/Debug/net9.0/CommandLine.dll new file mode 100644 index 0000000000000000000000000000000000000000..3eab2be274359223f5640b0af04b2af375cce752 GIT binary patch literal 225280 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