}                               // If this is true, time elapsed will be sent from when it first turned true

    // Converts this status into what is used by the Discord rich presence library
    public RichPresence ConvertToDiscord(DateTime elapsedStartTime)
    {
        Timestamps timestamps = null;

        if (remaining > 0)
        {
            timestamps = Timestamps.FromTimeSpan(remaining);
        }
        if (elapsed)
        {
            timestamps       = new Timestamps();
            timestamps.Start = elapsedStartTime;
        }

        return(new RichPresence()
        {
            Details = details,
            State = state,
            Assets = new Assets()
            {
                LargeImageKey = largeImageKey,
                LargeImageText = largeImageText,
                SmallImageKey = smallImageKey,
                SmallImageText = smallImageText
            },

            Timestamps = timestamps,
        });
    }
Beispiel #2
0
        private void BasicClient()
        {
            //Create a new client
            var client = new DiscordRpcClient("560482798364917789");

            //Create some events so we know things are happening
            //Create a timer that will regularly call invoke
            var timer = new System.Timers.Timer(150);

            timer.Elapsed += (sender, evt) => { client.Invoke(); };
            timer.Start();

            //Connect
            client.Initialize();

            //Send a presence. Do this as many times as you want
            client.SetPresence(new RichPresence()
            {
                Details = "Gamemode: Valid Hunt Racing",
                State   = "/vg/station",
                Assets  = new Assets()
                {
                    LargeImageKey  = "vgstation-logo2",
                    LargeImageText = "Meta Station",
                    SmallImageKey  = "logo",
                },
                Timestamps = Timestamps.FromTimeSpan(10)
            });
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            if (!Api.Initialize())
            {
                int last = Marshal.GetLastWin32Error();
                Console.WriteLine("ERROR: " + last);
                return;
            }

            using var client = new DiscordRpcClient("784746309226594305");
            client.Initialize();

            Console.WriteLine("Ready!");
            iTunesInfo data = default;

            while (true)
            {
                if (Console.KeyAvailable && Console.ReadKey(false).Key == ConsoleKey.Escape)
                {
                    break;
                }
                if (!iTunesInfo.PullData(out var fresh))
                {
                    break;
                }

                if (fresh.Equals(data))
                {
                    continue;
                }

                data = fresh;

                var presence = new RichPresence
                {
                    State      = data.Author,
                    Details    = data.Name,
                    Timestamps = Timestamps.FromTimeSpan(data.TimeLeft),
                    Assets     = new Assets
                    {
                        LargeImageText = data.Album,
                        LargeImageKey  = "download"
                    }
                };

                client.SetPresence(presence);

                Thread.Sleep(1000);
            }

            Api.UnInitialize();
        }
 /// <summary>
 /// Updates discord presence based on the currently playing song
 /// </summary>
 private void UpdateDiscordPresence()
 {
     _discordRpcClient.SetPresence(new RichPresence()
     {
         Details    = "Listening to: " + _currentSong.Title,
         State      = "By: " + _currentSong.ArtistName,
         Timestamps = Timestamps.FromTimeSpan(_currentSong.Duration - _currentSong.PlayedDuration),
         Assets     = new Assets()
         {
             LargeImageKey = "large_logo"
         }
     });
 }
 public static void setPresence(string a, string b, double c, string d, string e, string f)
 {
     client.SetPresence(new RichPresence()
     {
         Details    = a,
         State      = "By: " + b,
         Timestamps = Timestamps.FromTimeSpan(c / 1000),
         Assets     = new Assets()
         {
             LargeImageKey  = d,
             LargeImageText = e,
             SmallImageKey  = f,
         }
     });
 }
Beispiel #6
0
        static void BasicExample()
        {
            // == Create the client
            var client = new DiscordRpcClient("424087019149328395", pipe: discordPipe)
            {
                Logger = new Logging.ConsoleLogger(logLevel, true)
            };

            // == Subscribe to some events
            client.OnReady += (sender, msg) =>
            {
                //Create some events so we know things are happening
                Console.WriteLine("Connected to discord with user {0}", msg.User.Username);
            };

            client.OnPresenceUpdate += (sender, msg) =>
            {
                //The presence has updated
                Console.WriteLine("Presence has been updated! ");
            };

            // == Initialize
            client.Initialize();

            // == Set the presence
            client.SetPresence(new RichPresence()
            {
                Details    = "A Basic Example",
                State      = "In Game",
                Timestamps = Timestamps.FromTimeSpan(10),
                Buttons    = new Button[]
                {
                    new Button()
                    {
                        Label = "Fish", Url = "https://lachee.dev/"
                    }
                }
            });

            // == Do the rest of your program.
            //Simulated by a Console.ReadKey
            // etc...
            Console.ReadKey();

            // == At the very end we need to dispose of it
            client.Dispose();
        }
        static void Issue104()
        {
            // == Create the client
            var client = new DiscordRpcClient("424087019149328395", pipe: discordPipe)
            {
                Logger = new Logging.ConsoleLogger(logLevel, true)
            };

            // == Subscribe to some events
            client.OnReady += (sender, msg) =>
            {
                //Create some events so we know things are happening
                Console.WriteLine("Connected to discord with user {0}", msg.User.Username);
            };

            client.OnPresenceUpdate += (sender, msg) =>
            {
                //The presence has updated
                Console.WriteLine("Presence has been updated! ");
            };

            // == Initialize
            client.Initialize();

            // Set the first presence
            Console.WriteLine("=================== SET 1 ===================");
            client.SetPresence(new RichPresence()
            {
                Details    = "A Basic Example",
                State      = "In Game",
                Timestamps = Timestamps.FromTimeSpan(10)
            });


            // Wait arbitary amount of time
            Thread.Sleep(3000);

            //Set the presence again, but with UpdateState
            Console.WriteLine("=================== SET 2 ===================");
            client.UpdateState("Another Status");

            // == At the very end we need to dispose of it
            Console.ReadKey();
            client.Dispose();
        }
Beispiel #8
0
        static void BasicExample()
        {
            //Create a new client
            var client = new DiscordRpcClient(ClientID);

            //Create the logger
            client.Logger = new Logging.ConsoleLogger()
            {
                Level = DiscordLogLevel, Coloured = true
            };

            //Create some events so we know things are happening
            client.OnReady          += (sender, msg) => { Console.WriteLine("Connected to discord with user {0}", msg.User.Username); };
            client.OnPresenceUpdate += (sender, msg) => { Console.WriteLine("Presence has been updated!"); };

            //Create a timer that will regularly call invoke
            var timer = new System.Timers.Timer(150);

            timer.Elapsed += (sender, evt) => { client.Invoke(); };
            timer.Start();

            //Connect
            client.Initialize();

            //Send a presence. Do this as many times as you want
            client.SetPresence(new RichPresence()
            {
                Details    = "A Basic Example",
                State      = "In Game",
                Timestamps = Timestamps.FromTimeSpan(10)
            });


            //Do the rest of your program.
            //Simulated by a Console.ReadKey
            Console.ReadKey();

            //At the very end we need to dispose of it
            timer.Dispose();
            client.Dispose();
        }
        public static void ChangePresence(MainWindow window)
        {
            DateTime utcTime = DateTime.UtcNow;

            gameTime = DateTime.UtcNow.AddSeconds(Convert.ToDouble(window.EndTimeBox.Value));
            TimeSpan elapseTime = gameTime - utcTime;

            client.SetPresence(new RichPresence
            {
                Details = window.DetailsTextBox.Text,
                State   = window.StateTextBox.Text,
                Party   = new Party
                {
                    ID   = window.PartyIDTextBox.Text,
                    Max  = 21,
                    Size = 1,
                },
                Secrets = new Secrets
                {
                    JoinSecret = window.JoinSecretTextBox.Text,
                },
                Assets = new Assets
                {
                    LargeImageKey  = window.LargeImageKeyTextBox.Text,
                    LargeImageText = window.LargeImageTextBox.Text,
                    SmallImageKey  = window.SmallImageKeyTextBox.Text,
                    SmallImageText = window.SmallImageTextBox.Text,
                },
                Timestamps = window.TimeElapsedCheckBox.IsChecked.Value ? Timestamps.Now : Timestamps.FromTimeSpan(elapseTime)
            });
            client.Invoke();
        }
Beispiel #10
0
        private void ReadFields()
        {
            var details        = DetailsTextBox.Text;
            var state          = StateTextBox.Text;
            var largeImageKey  = LargeImageKeyTextBox.Text;
            var largeImageText = LargeImageTextTextBox.Text;
            var smallImageKey  = SmallImageKeyTextBox.Text;
            var timestamps     = TimeStampsTextBox.Text.Length > 0 ? Convert.ToInt32(TimeStampsTextBox.Text) : 0;
            var smallImageText = SmallImageTextTextBox.Text;
            var party          = MaxPartyTextBox.Text.Length > 0 ? Convert.ToInt32(MaxPartyTextBox.Text) : 0;
            var size           = SizePartyTextBox.Text.Length > 0 ? Convert.ToInt32(SizePartyTextBox.Text) : 0;

            if (size > 0 && party > 0)
            {
                _rpc.Client.SetPresence(new RichPresence
                {
                    Details = details,
                    State   = state,
                    Assets  = new Assets()
                    {
                        LargeImageKey  = largeImageKey,
                        LargeImageText = largeImageText,
                        SmallImageKey  = smallImageKey,
                        SmallImageText = smallImageText
                    },
                    Party = new Party {
                        ID = "Secret", Max = party, Size = size
                    }
                });
                if (timestamps > 0)
                {
                    _rpc.Client.SetPresence(new RichPresence
                    {
                        Details = details,
                        State   = state,
                        Assets  = new Assets()
                        {
                            LargeImageKey  = largeImageKey,
                            LargeImageText = largeImageText,
                            SmallImageKey  = smallImageKey,
                            SmallImageText = smallImageText
                        },
                        Timestamps = Timestamps.FromTimeSpan(timestamps),
                        Party      = new Party {
                            ID = "Secret", Max = party, Size = size
                        }
                    });
                }
            }
            else if (timestamps > 0)
            {
                _rpc.Client.SetPresence(new RichPresence
                {
                    Details = details,
                    State   = state,
                    Assets  = new Assets()
                    {
                        LargeImageKey  = largeImageKey,
                        LargeImageText = largeImageText,
                        SmallImageKey  = smallImageKey,
                        SmallImageText = smallImageText
                    },
                    Timestamps = Timestamps.FromTimeSpan(timestamps),
                });
            }
            else
            {
                _rpc.Client.SetPresence(new RichPresence
                {
                    Details = details,
                    State   = state,
                    Assets  = new Assets()
                    {
                        LargeImageKey  = largeImageKey,
                        LargeImageText = largeImageText,
                        SmallImageKey  = smallImageKey,
                        SmallImageText = smallImageText
                    },
                });
            }

            using var writer = new BinaryWriter(File.Open("Settings.ini", FileMode.Create));

            writer.Write(details);
            writer.Write(state);
            writer.Write(largeImageKey);
            writer.Write(largeImageText);
            writer.Write(smallImageKey);
            writer.Write(timestamps);
            writer.Write(smallImageText);
            writer.Write(party);
            writer.Write(size);
            writer.Write(DiscordRpcClientTextBox.Text);
        }