Conversation
…gistered multiple times and injected by key
# Conflicts: # src/Core/Core/Networking/ServerBase.cs # src/Core/Extensions/ServiceExtensions.cs # src/Executables/Auth/AuthServer.cs # src/Executables/Auth/Extensions/ServiceExtensions.cs # src/Executables/Auth/appsettings.json # src/Executables/Game/Extensions/ServiceExtensions.cs # src/Executables/Game/Game.csproj # src/Executables/Game/GameConnection.cs # src/Executables/Game/GameServer.cs # src/Executables/Game/appsettings.json # src/QuantumCore.sln
Executables are now just a tiny wrapper around the library to make QuantumCore.Single not depend on executables (causes many issues with build output)
Additionally removed the proto loaders and merged them with their respective manager
# Conflicts: # src/Libraries/Game.Server/AnimationManager.cs # src/Libraries/Game.Server/GameServer.cs # src/Libraries/Game.Server/ItemManager.cs # src/Libraries/Game.Server/MonsterManager.cs # src/Libraries/Game.Server/PlayerUtils/ExperienceManager.cs # src/Libraries/Game.Server/Services/DropProvider.cs # src/Libraries/Game.Server/Services/IDropProvider.cs # src/Libraries/Game.Server/Services/ParserService.cs # src/Libraries/Game.Server/Services/SpawnGroupProvider.cs # src/Libraries/Game.Server/SkillManager.cs # src/Libraries/Game.Server/Types/ItemProtoLoader.cs # src/Libraries/Game.Server/Types/MobProtoLoader.cs # src/Libraries/Game.Server/Types/StructuredFile.cs
Bumped FluentAssertions to 7.0.0-alpha.5 for fluentassertions/fluentassertions#2565
# Conflicts: # src/Core.Networking/PacketReader.cs # src/Executables/Game/Game.csproj # src/Executables/Game/MonsterManager.cs # src/Executables/Game/Packets/Character.cs # src/Executables/Game/Packets/CharacterDetails.cs # src/Executables/Game/Packets/CharacterInfo.cs # src/Executables/Game/Packets/CreateCharacter.cs # src/Libraries/Game.Server/Extensions/GameExtensions.cs # src/Libraries/Game.Server/Extensions/GuildExtensions.cs # src/Libraries/Game.Server/Extensions/GuildPacketExtensions.cs # src/Libraries/Game.Server/GameServer.cs # src/Libraries/Game.Server/ItemManager.cs # src/Libraries/Game.Server/PacketHandlers/TokenLoginHandler.cs # src/Libraries/Game.Server/Packets/ItemOwnership.cs # src/Libraries/Game.Server/PlayerUtils/ExperienceManager.cs # src/Libraries/Game.Server/PlayerUtils/GuildExperienceManager.cs # src/Libraries/Game.Server/Services/DropProvider.cs # src/Libraries/Game.Server/Services/ParserService.cs # src/Libraries/Game.Server/Services/SpawnGroupProvider.cs # src/Libraries/Game.Server/SkillManager.cs # src/Tests/Core.Tests/NetworkingTests.cs # src/Tests/Game.Tests/Game.Tests.csproj
# Conflicts: # src/Libraries/Game.Server/GameConnection.cs # src/Libraries/Game.Server/PacketHandlers/PongHandler.cs # src/Libraries/Game.Server/Packets/Ping.cs # src/Libraries/Game.Server/Packets/Pong.cs
uutkukorkmaz
approved these changes
Nov 15, 2024
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Implemented a single binary to be executed which includes all dependencies required to run QCX (no external dependencies).
Goal
Top notch user experience by having them just run simple binary to startup a server. This is not recommended for production usage but is valid for testing or developing purposes. This greatly reduces setup required to run QCX as developer or as a user.
The only thing required for now is the atlasinfo.txt in the data/ dir
Dependencies
The following dependencies have been mocked / replaced inside the "Single" binary:
InMemoryRedisStoreHow does it work?
IHostedServicewhich are handled byMicrosoft.Extensions.Hostingas with theAuthandGameexecutables themselves.HostingOptions. These where converted to NamedOptions to allow multiple configurations in one service collection.Executables/GameandExectuables/Authto separate projects because referencing a executable project from another executable project can cause a lot of issues. ThusGame.ServerandAuth.Serverare now the place for their respective code andGameandAuthare just wrappers setting up everything required for the executable only.Points of Interest
ServiceExtensionsbecause many services have to be adjusted for this change. Since named options are scoped some services had to be made scoped too.IpUtilsfor now. Converting IPAddress to int is too easy (BitConverter.ToInt32(host.Ip.GetAddressBytes())). May be reintroduced by feature: listen on multiple addresses #200Worldhas itsLoadsplit intoLoadAsyncandInitAsyncdue to a dependency loop issue when loading in parallel to other servicesInMemoryRedisListWrapperInMemoryRedisSubscriberInMemoryRedisStore- may have race condition issues? Not sure - needs to be tested - good enough for nowOther notes
.editorconfig...TODOs