예제 #1
0
        private void Set(bool isPaused = false)
        {
            if (isPaused)
            {
                if (!pauseActivity.HasValue)
                {
                    pauseActivity = RebuildActivity(true);
                }

                presenceController.SetActivity(pauseActivity.Value);
            }
            else
            {
                if (!gameActivity.HasValue)
                {
                    gameActivity = RebuildActivity(false);
                }

                if (pluginConfig.InGameCountDown)
                {
                    Activity           activity   = gameActivity.Value;
                    ActivityTimestamps timestamps = gameActivity.Value.Timestamps;
                    timestamps.End      = DateTimeOffset.UtcNow.AddSeconds(audioTimeSyncController.songLength - audioTimeSyncController.songTime).ToUnixTimeMilliseconds();
                    activity.Timestamps = timestamps;
                    gameActivity        = activity;
                }
                presenceController.SetActivity(gameActivity.Value);
            }
        }
예제 #2
0
        public void OnTriggerEnter(Collider c)
        {
            ActivityTimestamps?ts;

            if (triggerEnterUseTimestamp)
            {
                ts = new ActivityTimestamps
                {
                    Start = ((DateTimeOffset)DateTime.Now).ToUnixTimeSeconds()
                }
            }
            ;
            else
            {
                ts = null;
            }
            mrp.UpdatePresence(new Activity {
                State   = triggerEnterState,
                Details = triggerEnterDetail,
                Assets  = new ActivityAssets
                {
                    LargeImage = triggerEnterLargeImage,
                    LargeText  = triggerEnterLargeText,
                    SmallImage = triggerEnterSmallImage,
                    SmallText  = triggerEnterSmallText
                },
                Timestamps = (ActivityTimestamps)ts,
            });
        }
예제 #3
0
        public void OnCollisionStay(Collision c)
        {
            ActivityTimestamps?ts;

            if (collisionStayUseTimestamp)
            {
                ts = new ActivityTimestamps {
                    Start = ((DateTimeOffset)DateTime.Now).ToUnixTimeSeconds()
                }
            }
            ;
            else
            {
                ts = null;
            }
            mrp.UpdatePresence(new Activity
            {
                State   = collisionStayState,
                Details = collisionStayDetail,
                Assets  = new ActivityAssets
                {
                    LargeImage = collisionStayLargeImage,
                    LargeText  = collisionStayLargeText,
                    SmallImage = collisionStaySmallImage,
                    SmallText  = collisionStaySmallText
                },
                Timestamps = (ActivityTimestamps)ts
            });
        }
예제 #4
0
        private void Set()
        {
            if (!_menuActivity.HasValue)
            {
                _menuActivity = RebuildActivity();
            }
            Activity           activity   = _menuActivity.Value;
            ActivityTimestamps timestamps = _menuActivity.Value.Timestamps;

            timestamps.Start    = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
            activity.Timestamps = timestamps;
            _menuActivity       = activity;
            _presenceController.SetActivity(_menuActivity.Value);
        }
예제 #5
0
        private void Set()
        {
            Debug.Log("BeatSaberPresence set menu presence");
            if (!menuActivity.HasValue)
            {
                menuActivity = RebuildActivity();
            }
            Activity           activity   = menuActivity.Value;
            ActivityTimestamps timestamps = menuActivity.Value.Timestamps;

            timestamps.Start    = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
            activity.Timestamps = timestamps;
            menuActivity        = activity;
            presenceController.SetActivity(menuActivity.Value);
        }
예제 #6
0
		public static ActivityTimestamps AddEnd(this ActivityTimestamps timestamps, long end)
		{
			timestamps.End = end;
			return timestamps;
		}
예제 #7
0
		public static ActivityTimestamps AddStart(this ActivityTimestamps timestamps, long start)
		{
			timestamps.Start = start;
			return timestamps;
		}
예제 #8
0
		public static Activity AddTimestamps(this Activity activity, ActivityTimestamps value)
		{
			activity.Timestamps = value;
			return activity;
		}