· 5 years ago · Mar 03, 2021, 03:56 PM
1using System;
2using System.Threading;
3
4class Program
5{
6 static void Main(string[] args)
7 {
8 // Provide one in code
9 long clientId = -1;
10 // ... or have it prompted.
11 if (clientId == -1)
12 {
13 Console.Write("Enter clientId: ");
14 string clientIdStr = Console.ReadLine();
15 clientId = long.Parse(clientIdStr);
16 }
17
18 Console.WriteLine("Enter 0 below if you have only one Discord client.");
19 Console.Write("DISCORD_INSTANCE_ID: ");
20 string instanceID = Console.ReadLine();
21
22 Environment.SetEnvironmentVariable("DISCORD_INSTANCE_ID", instanceID);
23
24 var discord = new Discord.Discord(clientId, (ulong)Discord.CreateFlags.Default);
25 discord.SetLogHook(Discord.LogLevel.Debug, (level, message) =>
26 {
27 Console.WriteLine("Log[{0}] {1}", level, message);
28 });
29
30 var userManager = discord.GetUserManager();
31 userManager.OnCurrentUserUpdate += () =>
32 {
33 // To show everything is working properly.
34 var currentUser = userManager.GetCurrentUser();
35 Console.WriteLine($"Current user is {currentUser.Username}.");
36 //Console.WriteLine(currentUser.Id);
37 Console.WriteLine("So the API is working fine right now.");
38 Console.WriteLine();
39 };
40
41 var overlayManager = discord.GetOverlayManager();
42
43 try
44 {
45 Console.WriteLine("Press Q to quit.");
46 Console.WriteLine();
47 Console.WriteLine("Press O to open voice settings overlay.");
48 Console.WriteLine("Keep an eye on Discord when you do so.");
49
50 while (true)
51 {
52 discord.RunCallbacks();
53 Thread.Sleep(1000 / 60);
54
55 if (Console.KeyAvailable)
56 {
57 ConsoleKeyInfo key = Console.ReadKey(true);
58 if (key.Key == ConsoleKey.Q)
59 break;
60
61 if (key.Key == ConsoleKey.O)
62 {
63 Console.WriteLine("Opening overlay...");
64 overlayManager.OpenVoiceSettings((result) =>
65 {
66 Console.WriteLine($"Result was {result}.");
67 });
68 Console.WriteLine("Signaled open overlay.");
69 }
70 }
71 }
72 }
73 catch (Exception ex)
74 {
75 Console.WriteLine($"Error: {ex}");
76 }
77 finally
78 {
79 Console.WriteLine("Closing...");
80 discord.Dispose();
81 }
82 }
83}
84