} // 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, }); }
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) }); }
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, } }); }
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(); }
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(); }
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); }