From 19fe842be980579957d6dc5b32114726ff49bced Mon Sep 17 00:00:00 2001 From: EnderdracheLP Date: Sat, 20 Dec 2025 22:54:01 +0100 Subject: [PATCH] Initial working update for 1.42.0 --- MultiplayerCore/Installers/MpAppInstaller.cs | 9 +- MultiplayerCore/Installers/MpMenuInstaller.cs | 17 ++- MultiplayerCore/MultiplayerCore.csproj | 21 ++- .../Networking/MpPacketSerializer.cs | 20 +-- .../Objects/CustomPlayerSessionProvider.cs | 135 ++++++++++++++++++ .../Objects/MpEntitlementChecker.cs | 4 +- MultiplayerCore/Objects/MpLevelLoader.cs | 8 +- .../Patchers/NetworkConfigPatcher.cs | 57 ++++++-- .../Patches/GraphAPIClientPatch.cs | 16 ++- MultiplayerCore/Patches/LoggingPatch.cs | 2 +- .../Patches/MainSystemBinderPatch.cs | 46 +++++- .../Patches/NoLevelSpectatorPatch.cs | 2 +- ...latformAuthenticationTokenProviderPatch.cs | 2 +- MultiplayerCore/Players/MpPlayerManager.cs | 52 +++++-- MultiplayerCore/UI/MpLoadingIndicator.cs | 4 +- MultiplayerCore/UI/MpPerPlayerUI.cs | 4 +- MultiplayerCore/manifest.json | 2 +- 17 files changed, 341 insertions(+), 60 deletions(-) create mode 100644 MultiplayerCore/Objects/CustomPlayerSessionProvider.cs diff --git a/MultiplayerCore/Installers/MpAppInstaller.cs b/MultiplayerCore/Installers/MpAppInstaller.cs index 1176b6b..2bc9046 100644 --- a/MultiplayerCore/Installers/MpAppInstaller.cs +++ b/MultiplayerCore/Installers/MpAppInstaller.cs @@ -1,4 +1,5 @@ using BeatSaverSharp; +using BGNet.Core.GameLift; using MultiplayerCore.Beatmaps.Providers; using MultiplayerCore.Networking; using MultiplayerCore.NodePoseSyncState; @@ -7,6 +8,7 @@ using MultiplayerCore.Players; using MultiplayerCore.Repositories; using SiraUtil.Zenject; +using System; using Zenject; namespace MultiplayerCore.Installers @@ -31,11 +33,16 @@ public override void InstallBindings() Container.Bind().ToSelf().AsSingle(); Container.Bind().ToSelf().AsSingle(); Container.BindInterfacesAndSelfTo().AsSingle(); - Container.BindInterfacesAndSelfTo().AsSingle(); + Container.BindInterfacesAndSelfTo().AsSingle(); Container.BindInterfacesAndSelfTo().AsSingle(); Container.BindInterfacesAndSelfTo().AsSingle(); Container.Bind().ToSelf().AsSingle(); Container.BindInterfacesAndSelfTo().AsSingle(); + + if (Container.HasBinding()) + { + Plugin.Logger.Trace("IGameLiftPlayerSessionProvider found in AppInstaller"); + } } } } diff --git a/MultiplayerCore/Installers/MpMenuInstaller.cs b/MultiplayerCore/Installers/MpMenuInstaller.cs index 833502a..62fccdb 100644 --- a/MultiplayerCore/Installers/MpMenuInstaller.cs +++ b/MultiplayerCore/Installers/MpMenuInstaller.cs @@ -1,4 +1,6 @@ -using MultiplayerCore.Patchers; +using BGNet.Core.GameLift; +using MultiplayerCore.Objects; +using MultiplayerCore.Patchers; using MultiplayerCore.UI; using Zenject; @@ -15,8 +17,17 @@ public override void InstallBindings() Container.BindInterfacesAndSelfTo().AsSingle(); Container.BindInterfacesAndSelfTo().AsSingle(); - // Inject sira stuff that didn't get injected on appinit - Container.Inject(Container.Resolve()); + if (Container.HasBinding()) + { + Plugin.Logger.Trace("IGameLiftPlayerSessionProvider found in MenuInstaller"); + } + + //Container.Rebind() + // .To() + // .AsSingle(); + + // Inject sira stuff that didn't get injected on appinit + Container.Inject(Container.Resolve()); } } diff --git a/MultiplayerCore/MultiplayerCore.csproj b/MultiplayerCore/MultiplayerCore.csproj index ccafce3..9e99cba 100644 --- a/MultiplayerCore/MultiplayerCore.csproj +++ b/MultiplayerCore/MultiplayerCore.csproj @@ -46,7 +46,17 @@ - + + $(BeatSaberDir)\Beat Saber_Data\Managed\BeatSaber.Multiplayer.Core.dll + False + False + + + $(BeatSaberDir)\Beat Saber_Data\Managed\BGLib.AppFlow.dll + False + False + + + + $(BeatSaberDir)\Beat Saber_Data\Managed\OculusStudios.Platform.Core.dll + False + False +