internal static void Postfix(NetworkConfigSO __instance, ref MasterServerEndPoint __result) { if (MPState.CurrentMasterServer.Equals(__result)) { return; } MPState.CurrentMasterServer = new MasterServerInfo(__result.hostName, __result.port, __instance.masterServerStatusUrl); MPEvents.RaiseMasterServerChanged(__instance, MPState.CurrentMasterServer); }
internal static void Postfix(MultiplayerSettingsPanelController __instance, string code) { if (code == MPState.LastRoomCode) { return; } MPState.LastRoomCode = code; MPEvents.RaiseRoomCodeChanged(__instance, code); }
public static void Postfix(HostLobbySetupViewController __instance, string code) { if (code == MPState.LastRoomCode) { return; } MPState.LastRoomCode = code; MPEvents.RaiseRoomCodeChanged(__instance, code); }
internal static void Postfix(NetworkConfigSO __instance, ref MasterServerEndPoint __result) { if (__result != null) { MasterServerInfo info = new MasterServerInfo(__result); if (MPState.CurrentMasterServer.Equals(info)) { return; } MPState.CurrentMasterServer = info; MPEvents.RaiseMasterServerChanged(__instance, info); } }
private void HandlePlayerStateChanged(IConnectedPlayer player) { if (player.isConnectionOwner) { if (MPState.CustomSongsEnabled != player.HasState("customsongs")) { MPState.CustomSongsEnabled = player.HasState("customsongs"); MPEvents.RaiseCustomSongsChanged(this, player.HasState("customsongs")); } if (MPState.FreeModEnabled != player.HasState("freemod")) { MPState.FreeModEnabled = player.HasState("freemod"); MPEvents.RaiseCustomSongsChanged(this, player.HasState("freemod")); } } }
/// <summary> /// Used to raise the <see cref="MultiplayerExtensions.MPEvents.BeatmapSelected"/> event. /// </summary> private void OnSelectedBeatmap(string userId, BeatmapIdentifierNetSerializable?beatmapId) { SelectedBeatmapEventArgs args; UserType userType = UserType.None; IConnectedPlayer?player = _multiplayerSessionManager.GetPlayerByUserId(userId); if (player != null) { if (player.isMe) { userType |= UserType.Local; } if (player.isConnectionOwner) { userType |= UserType.Host; } } else { Plugin.Log.Warn($"OnSelectedBeatmap raised by an unknown player: {userId}. Selected '{beatmapId?.levelID ?? "<NULL>"}'"); } if (beatmapId == null || string.IsNullOrEmpty(beatmapId.levelID)) { args = new SelectedBeatmapEventArgs(userId, userType); } else { BeatmapCharacteristicSO?characteristic = _beatmapCharacteristicCollection.GetBeatmapCharacteristicBySerializedName(beatmapId.beatmapCharacteristicSerializedName); if (characteristic == null) { Plugin.Log?.Warn($"Unknown characteristic: '{beatmapId.beatmapCharacteristicSerializedName}'"); } args = new SelectedBeatmapEventArgs(userId, userType, beatmapId.levelID, beatmapId.difficulty, characteristic); } MPEvents.RaiseBeatmapSelected(this, args); }
public new void HandleGameStateDidChange(MultiplayerGameState newGameState) { base.HandleGameStateDidChange(newGameState); MPState.CurrentGameState = newGameState; MPEvents.RaiseGameStateChanged(_lobbyGameState, newGameState); }
static void Postfix(MultiplayerLobbyController __instance) { MPEvents.RaiseLobbyEnvironmentLoaded(__instance); }