Пример #1
0
 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);
 }
Пример #2
0
 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);
     }
 }
Пример #5
0
        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);
 }
Пример #8
0
 static void Postfix(MultiplayerLobbyController __instance)
 {
     MPEvents.RaiseLobbyEnvironmentLoaded(__instance);
 }