From 94a4a086d5575699b4d900ed2477a3fa895ab3d5 Mon Sep 17 00:00:00 2001 From: rcelyte Date: Tue, 7 May 2024 05:37:25 +0000 Subject: [PATCH] 1.36.2 fixes --- BeatUpClient/BeatUpClient.csproj | 2 +- BeatUpClient/MakeThingsPublic.cs | 13 ++- BeatUpClient/cs/Migration.cs | 2 +- BeatUpClient/cs/Patches/1_MainSystemInit.cs | 25 ++++-- BeatUpClient/cs/Patches/9_Gameplay.cs | 84 ++++++++++--------- BeatUpClient/cs/Selector/0_Selector.cs | 4 +- BeatUpClient/cs/Selector/Dropdown.cs | 4 +- .../cs/Selector/EditServerViewController.cs | 4 +- BeatUpClient/cs/Selector/NetworkConfig.cs | 2 +- BeatUpClient/cs/Sharing/Tracker.cs | 6 +- BeatUpClient/cs/UI.cs | 1 - BeatUpClient/cs/globals.cs | 2 +- BeatUpClient/makefile | 4 +- BeatUpClient/qpm.json | 2 +- README.md | 2 +- common/packets.txt | 2 + src/packets.gen.h | 4 + src/status/head.html | 3 +- src/status/internal.c | 6 +- 19 files changed, 98 insertions(+), 74 deletions(-) diff --git a/BeatUpClient/BeatUpClient.csproj b/BeatUpClient/BeatUpClient.csproj index 8bb78c9..5225a44 100644 --- a/BeatUpClient/BeatUpClient.csproj +++ b/BeatUpClient/BeatUpClient.csproj @@ -10,7 +10,7 @@ ..\Refs $(LocalRefsDir) full - 0.9.0 + 0.10.0 diff --git a/BeatUpClient/MakeThingsPublic.cs b/BeatUpClient/MakeThingsPublic.cs index 4c0570e..3327e21 100644 --- a/BeatUpClient/MakeThingsPublic.cs +++ b/BeatUpClient/MakeThingsPublic.cs @@ -86,6 +86,7 @@ "DropdownSettingsController::_idx", "EditColorSchemeController::_closeButton", "EnterPlayerGuestNameViewController::_nameInputFieldView", + "GameplayCoreSceneSetupData::_performancePreset", "GameplayCoreSceneSetupData::gameplayModifiers", "GameServerPlayerTableCell::_localPlayerBackgroundImage", "GameSongController::_beatmapCallbacksController", @@ -95,17 +96,19 @@ "MainFlowCoordinator::HandleMainMenuViewControllerDidFinish", "MainFlowCoordinator::HandleMultiplayerModeSelectionFlowCoordinatorDidFinish", "MainFlowCoordinator::PresentMultiplayerModeSelectionFlowCoordinatorWithDisclaimerAndAvatarCreator", + "MainSettingsAsyncLoader::_mainSettingsHandler", + "MainSettingsAsyncLoader::_networkConfig", "MainSystemInit::_mainSettingsModel", - "MainSystemInit::_networkConfig", "MenuTransitionsHelper::_gameScenesManager", "MenuTransitionsHelper::_multiplayerLevelScenesTransitionSetupData", + "MultiplayerConnectedPlayerInstaller::_connectedPlayer", + "MultiplayerConnectedPlayerInstaller::_sceneSetupData", "MultiplayerController::_playersManager", "MultiplayerController::_songStartSyncController", "MultiplayerController::GetCurrentSongTime", "MultiplayerController::GetSongStartSyncTime", "MultiplayerLevelLoader::_getBeatmapCancellationTokenSource", "MultiplayerLevelLoader::_loaderState", - // "MultiplayerLevelLoader/MultiplayerBeatmapLoaderState", "MultiplayerLocalActivePlayerFacade::_gameSongController", "MultiplayerLocalActivePlayerInGameMenuViewController::_levelBar", "MultiplayerLocalActivePlayerInGameMenuViewController::_localPlayerInGameMenuInitData", @@ -157,11 +160,14 @@ ("Libs", "System.IO.Compression.dll", null), ("Plugins", "SongCore.dll", null), (managed, "BeatmapCore.dll", null), + (managed, "BeatSaber.GameSettings.dll", null), (managed, "BeatSaber.Init.dll", null), + (managed, "BeatSaber.PerformancePresets.dll", null), (managed, "BGLib.AppFlow.dll", new[] { "SceneInfo::_sceneName", }), (managed, "BGLib.DotnetExtension.dll", null), + (managed, "BGLib.SaveDataCore.dll", null), (managed, "BGLib.UnityExtension.dll", null), (managed, "Colors.dll", null), (managed, "GameplayCore.dll", null), @@ -213,7 +219,8 @@ (managed, "MediaLoader.dll", null), (managed, "DataModels.dll", new[] { "BeatmapKey::beatmapCharacteristic", - "BeatmapLevelsModel::_loadedBeatmapLevels", + "BeatmapLevelsModel::_allLoadedBeatmapLevelsRepository", + "BeatmapLevelsRepository::_idToBeatmapLevel", "FileDifficultyBeatmap::_beatmapPath", "FileDifficultyBeatmap::_lightshowPath", "FileSystemBeatmapLevelData::_audioDataPath", diff --git a/BeatUpClient/cs/Migration.cs b/BeatUpClient/cs/Migration.cs index cae95bb..d3da419 100644 --- a/BeatUpClient/cs/Migration.cs +++ b/BeatUpClient/cs/Migration.cs @@ -15,7 +15,7 @@ static class BeatUpClient_Migration { continue; BeatUpClient_Config.Instance.Servers.TryAdd(graphUrl, statusUrl); BeatUpClient_Config.Instance.Servers.Remove(hostname); - if(hostname == BeatUpClient.customServerHostName.value) + if(hostname == BeatUpClient.customServerSettings.customServerHostName) newHostname = (graphUrl, statusUrl); } BeatUpClient_Config.Instance.Changed(); diff --git a/BeatUpClient/cs/Patches/1_MainSystemInit.cs b/BeatUpClient/cs/Patches/1_MainSystemInit.cs index 66a27d4..a1420b1 100644 --- a/BeatUpClient/cs/Patches/1_MainSystemInit.cs +++ b/BeatUpClient/cs/Patches/1_MainSystemInit.cs @@ -2,25 +2,32 @@ static partial class BeatUpClient { [Detour(typeof(MainSystemInit), nameof(MainSystemInit.InstallBindings))] static void MainSystemInit_InstallBindings(MainSystemInit self, Zenject.DiContainer container, bool isRunningFromTests) { Base(self, container, isRunningFromTests); - customServerHostName = self._mainSettingsModel.customServerHostName; - string hostname = customServerHostName.value.ToLower(); + + MultiplayerSessionManager? multiplayerSessionManager = Injected.Resolve(container); + IMenuRpcManager menuRpcManager = Injected.Resolve(container)!; + Injected.Resolve(container); + Injected.Resolve(container); + multiplayerSessionManager?.SetLocalPlayerState("modded", true); + Net.Setup(menuRpcManager, multiplayerSessionManager); + } + + [Detour(typeof(MainSettingsAsyncLoader), nameof(MainSettingsAsyncLoader.InstallBindings))] + static void MainSettingsAsyncLoader_InstallBindings(MainSettingsAsyncLoader self) { + Base(self); + + customServerSettings = self._mainSettingsHandler.instance.customServerSettings; + string hostname = customServerSettings.customServerHostName.ToLower(); int port = self._networkConfig.masterServerEndPoint.port; if(hostname.Contains(":")) { int.TryParse(hostname.Split(':')[1], out port); hostname = hostname.Split(':')[0]; } + Zenject.DiContainer container = self.Container; container.Rebind().FromInstance(new CustomNetworkConfig(self._networkConfig, hostname, port, true)).AsSingle(); - NetworkConfigSetup(self._networkConfig); Injected.Resolve(container); Injected.Resolve(container); Injected.Resolve(container); - MultiplayerSessionManager? multiplayerSessionManager = Injected.Resolve(container); - IMenuRpcManager menuRpcManager = Injected.Resolve(container)!; - Injected.Resolve(container); - Injected.Resolve(container); - multiplayerSessionManager?.SetLocalPlayerState("modded", true); - Net.Setup(menuRpcManager, multiplayerSessionManager); } [Detour(typeof(BeatmapCharacteristicInstaller), nameof(BeatmapCharacteristicInstaller.InstallBindings))] diff --git a/BeatUpClient/cs/Patches/9_Gameplay.cs b/BeatUpClient/cs/Patches/9_Gameplay.cs index d23c5c3..df993db 100644 --- a/BeatUpClient/cs/Patches/9_Gameplay.cs +++ b/BeatUpClient/cs/Patches/9_Gameplay.cs @@ -2,55 +2,57 @@ static partial class BeatUpClient { [Patch(PatchType.Postfix, typeof(MultiplayerLocalActivePlayerInGameMenuViewController), nameof(MultiplayerLocalActivePlayerInGameMenuViewController.Start))] public static void MultiplayerLocalActivePlayerInGameMenuViewController_Start(MultiplayerLocalActivePlayerInGameMenuViewController __instance) { MultiplayerPlayersManager multiplayerPlayersManager = UnityEngine.Resources.FindObjectsOfTypeAll()[0]; - if(connectInfo.perPlayerDifficulty && multiplayerPlayersManager.localPlayerStartSeekSongController is MultiplayerLocalActivePlayerFacade) { - MenuTransitionsHelper menuTransitionsHelper = UnityEngine.Resources.FindObjectsOfTypeAll()[0]; - MultiplayerConnectedPlayerSongTimeSyncController audioTimeSyncController = UnityEngine.Resources.FindObjectsOfTypeAll()[0]; - BeatmapKey selectedKey = new(__instance._localPlayerInGameMenuInitData.beatmapLevel.levelID, __instance._localPlayerInGameMenuInitData.beatmapCharacteristic, __instance._localPlayerInGameMenuInitData.beatmapDifficulty); - UnityEngine.RectTransform switchButton = UI.CreateButtonFrom(__instance._resumeButton.gameObject, __instance._resumeButton.transform.parent, "SwitchDifficulty", () => { - MultiplayerLevelScenesTransitionSetupDataSO setupData = menuTransitionsHelper._multiplayerLevelScenesTransitionSetupData; - setupData.Init(setupData.gameMode, in selectedKey, setupData.beatmapLevel, setupData.beatmapLevelData, - setupData.colorScheme, setupData.gameplayCoreSceneSetupData.gameplayModifiers, - setupData.gameplayCoreSceneSetupData.playerSpecificSettings, setupData.gameplayCoreSceneSetupData.practiceSettings, - Resolve(), Resolve(), - setupData.gameplayCoreSceneSetupData.useTestNoteCutSoundEffects); - menuTransitionsHelper._gameScenesManager.ReplaceScenes(menuTransitionsHelper._multiplayerLevelScenesTransitionSetupData, null, - .35f, null, (Zenject.DiContainer container) => { - MultiplayerController multiplayerController = container.Resolve(); + if(!(connectInfo.perPlayerDifficulty && multiplayerPlayersManager.localPlayerStartSeekSongController is MultiplayerLocalActivePlayerFacade)) + return; + MenuTransitionsHelper menuTransitionsHelper = UnityEngine.Resources.FindObjectsOfTypeAll()[0]; + BeatmapLevel beatmapLevel = menuTransitionsHelper._multiplayerLevelScenesTransitionSetupData.beatmapLevel; + MultiplayerConnectedPlayerSongTimeSyncController audioTimeSyncController = UnityEngine.Resources.FindObjectsOfTypeAll()[0]; + BeatmapKey selectedKey = __instance._localPlayerInGameMenuInitData.beatmapKey; + UnityEngine.RectTransform switchButton = UI.CreateButtonFrom(__instance._resumeButton.gameObject, __instance._resumeButton.transform.parent, "SwitchDifficulty", () => { + MultiplayerLevelScenesTransitionSetupDataSO setupData = menuTransitionsHelper._multiplayerLevelScenesTransitionSetupData; + setupData.Init(setupData.gameMode, in selectedKey, beatmapLevel, setupData.beatmapLevelData, + setupData.colorScheme, setupData.gameplayCoreSceneSetupData.gameplayModifiers, + setupData.gameplayCoreSceneSetupData.playerSpecificSettings, setupData.gameplayCoreSceneSetupData.practiceSettings, + Resolve(), setupData.gameplayCoreSceneSetupData._performancePreset, Resolve(), + setupData.gameplayCoreSceneSetupData.useTestNoteCutSoundEffects); + menuTransitionsHelper._gameScenesManager.ReplaceScenes(menuTransitionsHelper._multiplayerLevelScenesTransitionSetupData, null, + .35f, null, (Zenject.DiContainer container) => { + MultiplayerController multiplayerController = container.Resolve(); + multiplayerController._songStartSyncController.syncStartSuccessEvent -= OnSongStart; + multiplayerController._songStartSyncController.syncStartSuccessEvent += OnSongStart; + void OnSongStart(long introAnimationStartSyncTime) { multiplayerController._songStartSyncController.syncStartSuccessEvent -= OnSongStart; - multiplayerController._songStartSyncController.syncStartSuccessEvent += OnSongStart; - void OnSongStart(long introAnimationStartSyncTime) { - multiplayerController._songStartSyncController.syncStartSuccessEvent -= OnSongStart; - multiplayerController._playersManager.activeLocalPlayerFacade._gameSongController._beatmapCallbacksController._startFilterTime = multiplayerController.GetCurrentSongTime(multiplayerController.GetSongStartSyncTime(introAnimationStartSyncTime)) * menuTransitionsHelper._multiplayerLevelScenesTransitionSetupData.gameplayCoreSceneSetupData.gameplayModifiers.songSpeedMul + 1; - } - }); + multiplayerController._playersManager.activeLocalPlayerFacade._gameSongController._beatmapCallbacksController._startFilterTime = multiplayerController.GetCurrentSongTime(multiplayerController.GetSongStartSyncTime(introAnimationStartSyncTime)) * menuTransitionsHelper._multiplayerLevelScenesTransitionSetupData.gameplayCoreSceneSetupData.gameplayModifiers.songSpeedMul + 1; + } }); - switchButton.GetComponentInChildren().Key = "BEATUP_SWITCH"; - switchButton.gameObject.SetActive(false); - DifficultyPanel panel = new DifficultyPanel(__instance._mainBar.transform, 1, -2, __instance._levelBar.transform.Find("BG").GetComponent(), true); - __instance._levelBar.transform.localPosition = new UnityEngine.Vector3(0, 13.25f, 0); - panel.beatmapCharacteristic.localPosition = new UnityEngine.Vector3(-1, -1.5f, 0); - panel.beatmapDifficulty.localPosition = new UnityEngine.Vector3(-1, -8.25f, 0); - void OnSelect(BeatmapCharacteristicSO newCharacteristic, BeatmapDifficulty newDifficulty) { - selectedKey = new(selectedKey.levelId, newCharacteristic, newDifficulty); - bool original = (newDifficulty == selectedKey.difficulty && - newCharacteristic.SerializedName() == selectedKey.beatmapCharacteristic.SerializedName()); - __instance._resumeButton.gameObject.SetActive(original); - switchButton.gameObject.SetActive(!original); - panel.Update(__instance._localPlayerInGameMenuInitData.beatmapLevel, selectedKey.beatmapCharacteristic, selectedKey.difficulty, OnSelect); - } - panel.Update(__instance._localPlayerInGameMenuInitData.beatmapLevel, selectedKey.beatmapCharacteristic, selectedKey.difficulty, OnSelect); + }); + switchButton.GetComponentInChildren().Key = "BEATUP_SWITCH"; + switchButton.gameObject.SetActive(false); + DifficultyPanel panel = new DifficultyPanel(__instance._mainBar.transform, 1, -2, __instance._levelBar.transform.Find("BG").GetComponent(), true); + __instance._levelBar.transform.localPosition = new UnityEngine.Vector3(0, 13.25f, 0); + panel.beatmapCharacteristic.localPosition = new UnityEngine.Vector3(-1, -1.5f, 0); + panel.beatmapDifficulty.localPosition = new UnityEngine.Vector3(-1, -8.25f, 0); + void OnSelect(BeatmapCharacteristicSO newCharacteristic, BeatmapDifficulty newDifficulty) { + selectedKey = new(selectedKey.levelId, newCharacteristic, newDifficulty); + bool original = (newDifficulty == selectedKey.difficulty && + newCharacteristic.SerializedName() == selectedKey.beatmapCharacteristic.SerializedName()); + __instance._resumeButton.gameObject.SetActive(original); + switchButton.gameObject.SetActive(!original); + panel.Update(beatmapLevel, selectedKey.beatmapCharacteristic, selectedKey.difficulty, OnSelect); } + panel.Update(beatmapLevel, selectedKey.beatmapCharacteristic, selectedKey.difficulty, OnSelect); } - [Patch(PatchType.Prefix, typeof(MultiplayerConnectedPlayerInstaller), nameof(MultiplayerConnectedPlayerInstaller.InstallBindings))] - public static void MultiplayerConnectedPlayerInstaller_InstallBindings(GameplayCoreSceneSetupData ____sceneSetupData, IConnectedPlayer ____connectedPlayer) { - bool zenMode = ____sceneSetupData.gameplayModifiers.zenMode || (BeatUpClient_Config.Instance.HideOtherLevels && !haveMpEx); + [Detour(typeof(MultiplayerConnectedPlayerInstaller), nameof(MultiplayerConnectedPlayerInstaller.InstallBindings))] + static void MultiplayerConnectedPlayerInstaller_InstallBindings(MultiplayerConnectedPlayerInstaller self) { + bool zenMode = self._sceneSetupData.gameplayModifiers.zenMode || (BeatUpClient_Config.Instance.HideOtherLevels && !haveMpEx); if(connectInfo.perPlayerModifiers) { - PlayerData.ModifiersWeCareAbout mods = playerData.lockedModifiers[PlayerIndex(____connectedPlayer)]; - ____sceneSetupData.gameplayModifiers = ____sceneSetupData.gameplayModifiers.CopyWith(disappearingArrows: mods.disappearingArrows, ghostNotes: mods.ghostNotes, zenMode: zenMode, smallCubes: mods.smallCubes); + PlayerData.ModifiersWeCareAbout mods = playerData.lockedModifiers[PlayerIndex(self._connectedPlayer)]; + self._sceneSetupData.gameplayModifiers = self._sceneSetupData.gameplayModifiers.CopyWith(disappearingArrows: mods.disappearingArrows, ghostNotes: mods.ghostNotes, zenMode: zenMode, smallCubes: mods.smallCubes); } else { - ____sceneSetupData.gameplayModifiers = ____sceneSetupData.gameplayModifiers.CopyWith(zenMode: zenMode); + self._sceneSetupData.gameplayModifiers = self._sceneSetupData.gameplayModifiers.CopyWith(zenMode: zenMode); } + Base(self); } // Hopefully we can get these patches into MultiplayerCore soon for large (~16 or more player) lobbies diff --git a/BeatUpClient/cs/Selector/0_Selector.cs b/BeatUpClient/cs/Selector/0_Selector.cs index 26ed013..70cb92f 100644 --- a/BeatUpClient/cs/Selector/0_Selector.cs +++ b/BeatUpClient/cs/Selector/0_Selector.cs @@ -48,7 +48,7 @@ static partial class BeatUpClient { foreach(UnityEngine.Transform tr in serverDropdown) tr.localPosition = new UnityEngine.Vector3(0, 0, 0); - BeatUpClient_Config.Instance.Servers.TryGetValue(customServerHostName.value, out string? statusUrl); - UpdateNetworkConfig(customServerHostName, statusUrl ?? string.Empty); + BeatUpClient_Config.Instance.Servers.TryGetValue(customServerSettings.customServerHostName, out string? statusUrl); + UpdateNetworkConfig(customServerSettings.customServerHostName, statusUrl ?? string.Empty); } } diff --git a/BeatUpClient/cs/Selector/Dropdown.cs b/BeatUpClient/cs/Selector/Dropdown.cs index 4570dd0..23c596b 100644 --- a/BeatUpClient/cs/Selector/Dropdown.cs +++ b/BeatUpClient/cs/Selector/Dropdown.cs @@ -20,7 +20,7 @@ class ServerDropdown : DropdownSettingsController { _dropdown = GetComponent(); _dropdown._modalView._dismissPanelAnimation._duration = 0; // Animations will break the UI if the player clicks too fast flowCoordinator = UnityEngine.Resources.FindObjectsOfTypeAll()[0]; - ephemeralEntry = new Entry(customServerHostName.value, ""); + ephemeralEntry = new Entry(customServerSettings.customServerHostName, ""); UnityEngine.GameObject colorSchemeButton = UnityEngine.Resources.FindObjectsOfTypeAll()[0]._editColorSchemeButton.gameObject; UnityEngine.GameObject okButton = UnityEngine.Resources.FindObjectsOfTypeAll()[0]._closeButton.gameObject; @@ -73,7 +73,7 @@ class ServerDropdown : DropdownSettingsController { idx = 0; for(int i = 0, count = options.Length; i < count; ++i) { - if(options[i].name != customServerHostName.value) + if(options[i].name != customServerSettings.customServerHostName) continue; idx = i; break; diff --git a/BeatUpClient/cs/Selector/EditServerViewController.cs b/BeatUpClient/cs/Selector/EditServerViewController.cs index 4f36ad1..2bf8e2e 100644 --- a/BeatUpClient/cs/Selector/EditServerViewController.cs +++ b/BeatUpClient/cs/Selector/EditServerViewController.cs @@ -92,8 +92,8 @@ public class EditServerViewController : HMUI.ViewController { if(firstActivation) base.buttonBinder.AddBinding(cancelButton, () => Dismiss()); string? status = null; - if(edit && BeatUpClient_Config.Instance.Servers.TryGetValue(customServerHostName, out status)) - activeKey = customServerHostName; + if(edit && BeatUpClient_Config.Instance.Servers.TryGetValue(customServerSettings.customServerHostName, out status)) + activeKey = customServerSettings.customServerHostName; else activeKey = null; editHostnameTextbox.SetText(activeKey ?? string.Empty); diff --git a/BeatUpClient/cs/Selector/NetworkConfig.cs b/BeatUpClient/cs/Selector/NetworkConfig.cs index db10172..8daea8d 100644 --- a/BeatUpClient/cs/Selector/NetworkConfig.cs +++ b/BeatUpClient/cs/Selector/NetworkConfig.cs @@ -24,7 +24,7 @@ struct VanillaConfig : INetworkConfig { } static bool SetNetworkConfig(string hostname, string statusUrl) { - customServerHostName.value = hostname; + customServerSettings.customServerHostName = hostname; CustomNetworkConfig? customNetworkConfig = Resolve(); if(customNetworkConfig == null) return false; diff --git a/BeatUpClient/cs/Sharing/Tracker.cs b/BeatUpClient/cs/Sharing/Tracker.cs index dab4f9b..110f5f1 100644 --- a/BeatUpClient/cs/Sharing/Tracker.cs +++ b/BeatUpClient/cs/Sharing/Tracker.cs @@ -20,7 +20,7 @@ public class DownloadPreview : BeatmapLevel { trackedLevels.RemoveAll(level => { level.variants.RemoveAll(filter); if(level.variants.Count == 0) - Resolve()!._loadedBeatmapLevels.Remove(level.levelID); + Resolve()!._allLoadedBeatmapLevelsRepository._idToBeatmapLevel.Remove(level.levelID); return level.variants.Count == 0; }); } @@ -38,7 +38,7 @@ public class DownloadPreview : BeatmapLevel { } if(info.id.usage != ShareableType.BeatmapSet || info.id.mimeType != "application/json" || info.meta.byteLength < 1) return false; - if(Resolve()!._loadedBeatmapLevels.TryGetValue(info.id.name, out BeatmapLevel preview)) { + if(Resolve()!._allLoadedBeatmapLevelsRepository._idToBeatmapLevel.TryGetValue(info.id.name, out BeatmapLevel preview)) { DownloadPreview? share = preview as DownloadPreview; if(share == null) return false; @@ -49,7 +49,7 @@ public class DownloadPreview : BeatmapLevel { source.Add(connectedPlayer, info.offset); } else { DownloadPreview share = new DownloadPreview(info, connectedPlayer); - Resolve()!._loadedBeatmapLevels[info.id.name] = share; + Resolve()!._allLoadedBeatmapLevelsRepository._idToBeatmapLevel[info.id.name] = share; trackedLevels.Add(share); } return true; diff --git a/BeatUpClient/cs/UI.cs b/BeatUpClient/cs/UI.cs index f54a5fa..c6a43f2 100644 --- a/BeatUpClient/cs/UI.cs +++ b/BeatUpClient/cs/UI.cs @@ -50,7 +50,6 @@ public class ValuePickerSetting : ListSettingsController { public static UnityEngine.RectTransform CreateToggle(UnityEngine.Transform parent, string name, string headerKey, IValue value) { UnityEngine.GameObject toggleTemplate = UnityEngine.Resources.FindObjectsOfTypeAll().Select(x => x.transform.parent.gameObject).First(p => p.name == "Fullscreen"); UnityEngine.GameObject gameObject = CreateElementWithText(toggleTemplate, parent, name, headerKey); - UnityEngine.Object.Destroy(gameObject.GetComponent()); ToggleSetting toggleSetting = gameObject.AddComponent(); toggleSetting.setting = value; gameObject.SetActive(true); diff --git a/BeatUpClient/cs/globals.cs b/BeatUpClient/cs/globals.cs index 45f1744..d290674 100644 --- a/BeatUpClient/cs/globals.cs +++ b/BeatUpClient/cs/globals.cs @@ -15,7 +15,7 @@ static partial class BeatUpClient { static UnityEngine.Sprite defaultPackCover = null!; static UnityEngine.GameObject? infoText = null; - internal static StringSO customServerHostName = null!; + internal static BeatSaber.GameSettings.CustomServer customServerSettings = null!; static DifficultyPanel lobbyDifficultyPanel = null!; internal static PlayerData playerData = new PlayerData(0); diff --git a/BeatUpClient/makefile b/BeatUpClient/makefile index da9b4ec..8d90153 100644 --- a/BeatUpClient/makefile +++ b/BeatUpClient/makefile @@ -1,5 +1,5 @@ #!/bin/make -VERSION := 0.9.0-r1 +VERSION := 0.10.0 .SILENT: @@ -91,7 +91,7 @@ BeatUpClient.dll: $(CSFILES) .obj/MakeThingsPublic.exe thirdparty/ILRepack.exe t \"\$$schema\": \"https://raw.githubusercontent.com/bsmg/BSIPA-MetadataFileSchema/master/Schema.json\",\n\ \"author\": \"rcelyte\",\n\ \"description\": \"Tweaks and enhancements for enabling modded multiplayer\",\n\ - \"gameVersion\": \"1.36.0_8486341502\",\n\ + \"gameVersion\": \"1.36.2_8847700518\",\n\ \"dependsOn\": {\"BSIPA\": \"^4.3.0\"},\n\ \"conflictsWith\": {\"BeatTogether\": \"*\"},\n\ \"loadBefore\": [\"MultiplayerCore\"],\n\ diff --git a/BeatUpClient/qpm.json b/BeatUpClient/qpm.json index fb0ae89..4fe6727 100644 --- a/BeatUpClient/qpm.json +++ b/BeatUpClient/qpm.json @@ -4,7 +4,7 @@ "info": { "name": "BeatUpClient", "id": "BeatUpClient", - "version": "0.9.0", + "version": "0.10.0", "url": null, "additionalData": {} }, diff --git a/README.md b/README.md index 8cd6ffb..7f5abbe 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ============ *"beat saber gettin violent these days" -some Discord user* -A lightweight server to enable modded multiplayer in Beat Saber 1.19.0 and newer (Cross-version lobbies supported for 1.20.0<->1.31.1 or 1.32.0<->1.36.0). +A lightweight server to enable modded multiplayer in Beat Saber 1.19.0 and newer (Cross-version lobbies supported for 1.20.0<->1.31.1 or 1.32.0<->1.36.2). Ways to Join ------------ diff --git a/common/packets.txt b/common/packets.txt index c6ec8f5..94297e1 100644 --- a/common/packets.txt +++ b/common/packets.txt @@ -30,6 +30,8 @@ u8 GameVersion 1_34_6 1_35_0 1_36_0 + 1_36_1 + 1_36_2 n PacketContext u8 netVersion u8 protocolVersion diff --git a/src/packets.gen.h b/src/packets.gen.h index 6a8e1ae..2102e5f 100644 --- a/src/packets.gen.h +++ b/src/packets.gen.h @@ -35,6 +35,8 @@ enum { GameVersion_1_34_6, GameVersion_1_35_0, GameVersion_1_36_0, + GameVersion_1_36_1, + GameVersion_1_36_2, }; [[maybe_unused]] static const char *_reflect_GameVersion(GameVersion value) { switch(value) { @@ -69,6 +71,8 @@ enum { case GameVersion_1_34_6: return "1_34_6"; case GameVersion_1_35_0: return "1_35_0"; case GameVersion_1_36_0: return "1_36_0"; + case GameVersion_1_36_1: return "1_36_1"; + case GameVersion_1_36_2: return "1_36_2"; default: return "???"; } } diff --git a/src/status/head.html b/src/status/head.html index 7785583..416cd1d 100644 --- a/src/status/head.html +++ b/src/status/head.html @@ -1,4 +1,5 @@ + Server Status @@ -160,7 +161,7 @@ --> back - + logo
BeatUpServer Instance Beta