private void OnConnectionFailed(object sender, ConnectionFailedMessage args)
        {
            MessageBox.Show("Connection to Discord has failed. Check if your Discord client is running.", "Connection Error", MessageBoxButton.OK, MessageBoxImage.Warning);

            UpdateMainWindowViewModel.UpdateDiscordRPCConnectionStatus((string)Application.Current.FindResource("mw_status_on_connection_failed"));
            UpdateMainWindowViewModel.UpdateUserStatus((string)Application.Current.FindResource("mw_label_status_placeholder_waiting"));
        }
        public void ShutdownPresence()
        {
            UpdateMainWindowViewModel.UpdateDiscordRPCConnectionStatus(string.Empty);
            UpdateMainWindowViewModel.UpdateUsernameData(string.Empty);
            UpdateMainWindowViewModel.UpdateUserAvatarData(string.Empty);
            UpdateMainWindowViewModel.UpdateUserStatus((string)Application.Current.FindResource("mw_label_status_placeholder"));

            client.Dispose();
            discordPresenceDetail = string.Empty;
            discordPresenceState  = string.Empty;
            discordLargeImageKey  = string.Empty;
            discordLargeImageText = string.Empty;
            discordSmallImageKey  = string.Empty;
            discordSmallImageText = string.Empty;
        }
        private void updatePresence()
        {
#if DEBUG
            Debug.WriteLine(TAG + "Details: " + TextBox_details.Text);
            Debug.WriteLine(TAG + "State: " + TextBox_state.Text);
            Debug.WriteLine(TAG + "LargeImageKey: " + TextBox_largeImageKey.Text);
            Debug.WriteLine(TAG + "LargeImageText: " + TextBox_largeImageText.Text);
            Debug.WriteLine(TAG + "SmallImageKey: " + TextBox_smallImageKey.Text);
            Debug.WriteLine(TAG + "SmallImageText: " + TextBox_smallImageText.Text);
            Debug.WriteLine(TAG + "Updated presence and settings");
#endif

            UpdateMainWindowViewModel.UpdateUserStatus((string)Application.Current.FindResource("mw_label_status_placeholder_online"));

            // Show MessageBox to notify user Spotify client is running
            if (getSpotifyProcess.IsSpotifyOpened)
            {
                MessageBox.Show((string)Application.Current.FindResource("app_info_spotify_process_detected"),
                                Assembly.GetExecutingAssembly().GetCustomAttribute <AssemblyTitleAttribute>().Title,
                                MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }

            if (!isTimeStampEnabled)
            {
                presenceManager.useTimeStamp          = isTimeStampEnabled;
                presenceManager.discordPresenceDetail = this.TextBox_details.Text;
                presenceManager.discordPresenceState  = this.TextBox_state.Text;
                presenceManager.discordLargeImageKey  = this.TextBox_largeImageKey.Text;
                presenceManager.discordLargeImageText = this.TextBox_largeImageText.Text;
                presenceManager.discordSmallImageKey  = this.TextBox_smallImageKey.Text;
                presenceManager.discordSmallImageText = this.TextBox_smallImageText.Text;
                presenceManager.UpdatePresence();
            }
            else
            {
                presenceManager.useTimeStamp          = isTimeStampEnabled;
                presenceManager.discordPresenceDetail = this.TextBox_details.Text;
                presenceManager.discordPresenceState  = this.TextBox_state.Text;
                presenceManager.discordLargeImageKey  = this.TextBox_largeImageKey.Text;
                presenceManager.discordLargeImageText = this.TextBox_largeImageText.Text;
                presenceManager.discordSmallImageKey  = this.TextBox_smallImageKey.Text;
                presenceManager.discordSmallImageText = this.TextBox_smallImageText.Text;
                presenceManager.UpdatePresence();
            }

            SaveUserStatePresence();
        }
        public void InitializeDiscordRPC(string ClientID)
        {
#if DEBUG
            Debug.WriteLine(TAG + "Starting Discord Presence");
#else
#endif

            UpdateMainWindowViewModel.UpdateDiscordRPCConnectionStatus((string)Application.Current.FindResource("mw_status_start"));
            UpdateMainWindowViewModel.UpdateUserStatus((string)Application.Current.FindResource("mw_label_status_placeholder_waiting"));

            StartTimeOutTimer();
            client = new DiscordRpcClient(ClientID);
            client.Initialize();
            client.OnReady += OnClientReady;

            client.OnConnectionEstablished += OnConnectionEstablished;
        }
        private void OnClientReady(object sender, ReadyMessage args)
        {
            TimeOutTimer.Stop();
            TimeOutTimer.Dispose();
#if DEBUG
            Debug.WriteLine("Received Ready from user {0}", args.User);
#else
#endif
            JsonConfig.settings.discordUsername     = args.User.ToString();
            JsonConfig.settings.discordAvatarSmall  = args.User.GetAvatarURL(User.AvatarFormat.PNG, User.AvatarSize.x128);
            JsonConfig.settings.discordAvatarMedium = args.User.GetAvatarURL(User.AvatarFormat.PNG, User.AvatarSize.x512);
            JsonConfig.settings.discordAvatarLarge  = args.User.GetAvatarURL(User.AvatarFormat.PNG, User.AvatarSize.x1024);
            JsonConfig.SaveJson();

            UpdateMainWindowViewModel.UpdateDiscordRPCConnectionStatus((string)Application.Current.FindResource("mw_status_online"));
            UpdateMainWindowViewModel.UpdateUserAvatarData(args.User.GetAvatarURL(User.AvatarFormat.PNG, User.AvatarSize.x128));
            UpdateMainWindowViewModel.UpdateUsernameData(args.User.ToString());
            UpdateMainWindowViewModel.UpdateUserStatus((string)Application.Current.FindResource("mw_label_status_placeholder_online"));
        }
Пример #6
0
        private void StartAFK()
        {
            PresenceManager presenceManager = new PresenceManager();

            presenceManager.useTimeStamp          = true;
            presenceManager.discordPresenceDetail = JsonConfig.settings.discordUsername;
            presenceManager.discordPresenceState  = (string)Application.Current.FindResource("discord_status_afk");
            presenceManager.discordLargeImageKey  = JsonConfig.settings.discordLargeImageKey;
            presenceManager.discordLargeImageText = JsonConfig.settings.discordLargeImageText;
            presenceManager.discordSmallImageKey  = JsonConfig.settings.discordSmallImageText;
            presenceManager.discordSmallImageText = JsonConfig.settings.discordSmallImageText;
            presenceManager.UpdatePresence();

            UpdateMainWindowViewModel.UpdateUserStatus("AFK (" + (string)Application.Current.FindResource("mw_label_status_placeholder_afk") + " " + DateTime.Now + ")");
            Process.Start(@"C:\WINDOWS\system32\rundll32.exe", "user32.dll,LockWorkStation");
            this.Dispatcher.Invoke((Action)(() =>
            {
                this.Close();
            }));
        }