コード例 #1
0
        public void FormatAndUpdate(PresenceState state)
        {
            var formatter = Provider.App.GetFormatter();

            var info        = formatter.StateToInfo(state);
            var rpcPresence = info.ToRpc();

            DiscordRpc.UpdatePresence(ref rpcPresence);
        }
コード例 #2
0
        /// <summary>
        /// Converts <see cref="PresenceState"/> to a <see cref="PresenceInfo"/> based on the user's
        /// customization configuration.
        /// </summary>
        public PresenceInfo StateToInfo(PresenceState state)
        {
            var info = new PresenceInfo();

            var preferences = App.CachedPreferences;

            if (state.OverrideText != null)
            {
                (info.Detail, info.State) = state.OverrideText.Value;
            }
            else
            {
                (info.Detail, info.State) = preferences.FillFieldsByFunction(key => state.FieldValues[key]);
                (info.SmallImageKey, info.SmallImageText) = state.IconValues[preferences.Icon];
            }
            (info.LargeImageKey, info.LargeImageText) = state.ImageValue;

            return(info);
        }
コード例 #3
0
 /// <summary>
 /// Emits a new state.
 /// </summary>
 public void PushState(PresenceState presenceState) =>
 StateReady?.Invoke(this, presenceState);