17 Commits
Author SHA1 Message Date
Stone-Red-Code 57215db498 #2 DiscordCLI not sending capital letters. 2021-05-27 07:53:54 +02:00
Stone_Red 76845b9ae0 Update README.md 2021-05-01 20:41:58 +02:00
Stone_Red 31b4f9cc44 Update README.md 2021-04-16 12:00:23 +02:00
Stone_Red 524ed14b1f Update README.md 2021-04-14 14:36:49 +02:00
Stone_Red 8d93a9de2c Update README.md 2021-04-14 14:36:20 +02:00
Stone_Red c6ba3a434d Merge pull request #1 from Stone-Red-Code/develop
Develop
2021-04-14 12:06:08 +02:00
Stone-Red-Code fc3d170e07 Added new releases 2021-04-14 12:03:24 +02:00
Stone-Red-Code ce4fb237b3 Update Program.cs 2021-04-14 11:54:10 +02:00
Stone-Red-Code f0fcbc03c5 Made more code async and added request cooldown 2021-04-14 11:53:53 +02:00
Stone_Red f53d614fca Added Limitations sections to README 2021-04-13 21:18:09 +02:00
Stone_Red 74f40593ba Added exclamation mark 2021-04-13 11:51:41 +02:00
Stone_Red 7521d9053d Update README.md 2021-04-13 11:48:58 +02:00
Stone_Red b38433badc Updated User Token link in README 2021-04-13 11:12:55 +02:00
Stone_Red 890625e6da Added description to README 2021-04-13 11:09:58 +02:00
Stone-Red-Code 433a71e838 Merge branch 'main' of https://github.com/Stone-Red-Code/DiscordCLI into main 2021-04-13 10:18:15 +02:00
Stone-Red-Code 1ddd35e5a4 Added DM support
- Added DM support
- Improved Token input
- Put the Commands class in its own file
2021-04-13 10:18:10 +02:00
Stone_Red 12271b760b Update README.md 2021-04-12 22:50:44 +02:00
84 changed files with 578 additions and 539 deletions
Binary file not shown.
+187
View File
@@ -0,0 +1,187 @@
using DSharpPlus.Entities;
using DSharpPlus;
using Stone_Red_Utilities.ColorConsole;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System;
using System.Threading.Tasks;
namespace DiscordCLI
{
internal class Commands
{
private readonly DiscordClient client;
private readonly OutputManager outputManager;
public Commands(DiscordClient dicordClient, OutputManager outputMan)
{
client = dicordClient;
outputManager = outputMan;
}
protected async Task ListGuilds(string args)
{
int index = 1;
foreach (DiscordGuild guild in client.Guilds.Values)
{
Console.WriteLine($"{index}. {guild.Name}");
index++;
}
await Task.CompletedTask;
}
protected async Task ListDms(string args)
{
int index = 1;
foreach (DiscordDmChannel dmChannel in client.PrivateChannels)
{
Console.WriteLine($"{index}. {string.Join(", ", dmChannel.Recipients.Select(x => x.Username))}");
index++;
}
await Task.CompletedTask;
}
protected async Task ListGuildChannels(string args)
{
IReadOnlyCollection<DiscordChannel> textChannels;
DiscordGuild guild;
if (args != null)
{
if (int.TryParse(args, out int ind))
{
guild = client.Guilds?.Values.ElementAtOrDefault(ind - 1);
}
else
{
guild = client.Guilds?.FirstOrDefault(x => x.Value.Name == args).Value;
}
GlobalInformation.currentTextChannel = null;
}
else
{
guild = GlobalInformation.currentGuild;
}
if (guild is null)
{
ConsoleExt.WriteLine("Guild not found!", ConsoleColor.Red);
GlobalInformation.currentTextChannel = null;
return;
}
GlobalInformation.currentGuild = guild;
textChannels = guild.Channels;
int index = 1;
foreach (DiscordChannel channel in textChannels)
{
switch (channel.Type)
{
case ChannelType.Category:
//Console.WriteLine($"[{channel.Name}]");
break;
case ChannelType.Text:
Console.WriteLine($" {index}. {channel.Name}");
index++;
break;
}
}
await Task.CompletedTask;
}
protected async Task EnterChannel(string args)
{
DiscordChannel textChannel;
if (GlobalInformation.currentGuild is null)
{
ConsoleExt.WriteLine("You are not in a guild!", ConsoleColor.Red);
return;
}
if (int.TryParse(args, out int ind))
{
textChannel = GlobalInformation.currentGuild?.Channels.Where(x => x.Type == ChannelType.Text).ElementAtOrDefault(ind - 1);
}
else
{
textChannel = GlobalInformation.currentGuild?.Channels.Where(x => x.Type == ChannelType.Text).FirstOrDefault(x => x.Name == args);
}
GlobalInformation.currentTextChannel = textChannel;
if (textChannel is null)
{
ConsoleExt.WriteLine("Channel not found!", ConsoleColor.Red);
return;
}
try
{
foreach (DiscordMessage message in (textChannel.GetMessagesAsync(10).Result).Reverse())
{
await outputManager.WriteMessage(message, textChannel, GlobalInformation.currentGuild, false);
}
}
catch (Exception ex)
{
ConsoleExt.WriteLine(ex.Message, ConsoleColor.Red);
GlobalInformation.currentTextChannel = null;
}
await Task.CompletedTask;
}
protected async Task EnterDmChannel(string args)
{
DiscordDmChannel dmChannel;
GlobalInformation.currentGuild = null;
if (int.TryParse(args, out int ind))
{
dmChannel = client.PrivateChannels.ElementAtOrDefault(ind - 1);
}
else
{
dmChannel = client.PrivateChannels.FirstOrDefault(x => x.Name == args);
}
GlobalInformation.currentTextChannel = dmChannel;
if (dmChannel is null)
{
ConsoleExt.WriteLine("Channel not found!", ConsoleColor.Red);
return;
}
try
{
foreach (DiscordMessage message in (await dmChannel.GetMessagesAsync(10)).Reverse())
{
await outputManager.WriteMessage(message, dmChannel, GlobalInformation.currentGuild, false);
}
}
catch (Exception ex)
{
ConsoleExt.WriteLine(ex, ConsoleColor.Red);
GlobalInformation.currentTextChannel = null;
}
}
protected async Task DeleteToken(string args)
{
File.Delete(Program.tokenPath);
Environment.Exit(0);
await Task.CompletedTask;
}
}
}
+47 -145
View File
@@ -1,11 +1,10 @@
using DSharpPlus.Entities; using DSharpPlus;
using DSharpPlus;
using Stone_Red_Utilities.ColorConsole; using Stone_Red_Utilities.ColorConsole;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq; using System.Linq;
using System; using System;
using System.Timers;
using System.Threading.Tasks;
namespace DiscordCLI namespace DiscordCLI
{ {
@@ -13,7 +12,8 @@ namespace DiscordCLI
{ {
private readonly DiscordClient client; private readonly DiscordClient client;
private readonly Dictionary<string, (string, Action<string>)> CommandsList; private readonly Dictionary<string, (string, Func<string, Task>)> CommandsList;
private int cooldown = 0;
public CommandsManager(DiscordClient dicordClient, OutputManager outputManager) : base(dicordClient, outputManager) public CommandsManager(DiscordClient dicordClient, OutputManager outputManager) : base(dicordClient, outputManager)
{ {
@@ -24,42 +24,71 @@ namespace DiscordCLI
{ "exit", ("exits application", null) }, { "exit", ("exits application", null) },
{ "logout", ("deletes auth token and exits application", DeleteToken) }, { "logout", ("deletes auth token and exits application", DeleteToken) },
{ "guilds", ("lists all guilds you are in", ListGuilds) }, { "guilds", ("lists all guilds you are in", ListGuilds) },
{ "dms", ("lists all private channels (Not implemented yet)", ListDms) }, { "dms", ("lists all private channels", ListDms) },
{ "channels", ("lists all channels of guild args:<guild name/index>", ListGuildChannels) }, { "channels", ("lists all channels of guild args:<guild name/index>", ListGuildChannels) },
{ "enterg", ("enter guild args:<guild name/index>", ListGuildChannels) }, { "enterg", ("enter guild args:<guild name/index>", ListGuildChannels) },
{ "enterc", ("enter chat args:<channel name/index>", EnterChannel) }, { "enterc", ("enter channel args:<channel name/index>", EnterChannel) },
{ "enterd", ("enter DM channel args:<channel name/index>", EnterDmChannel) },
}; };
Timer cooldownTimer = new Timer(1000);
cooldownTimer.Elapsed += CooldownTimer_Elapsed;
cooldownTimer.Start();
} }
public bool CheckCommand(string input) private void CooldownTimer_Elapsed(object sender, ElapsedEventArgs e)
{ {
input = input.Trim().ToLower().Replace('\n', '\0'); if (cooldown > 0)
cooldown--;
}
/// <summary>
/// Check the command and return true if the program should exit
/// </summary>
/// <param name="input"></param>
/// <returns>exit bool and write override bool</returns>
public async Task<(bool, bool)> CheckCommand(string rawInput)
{
cooldown++;
if (cooldown > 1)
{
Console.WriteLine();
ConsoleExt.WriteLine("You are beeing rate limited!", ConsoleColor.Yellow);
ConsoleExt.WriteLine("Wait a few seconds before making another request!", ConsoleColor.Yellow);
return (false, true);
}
string input = rawInput.Trim().ToLower().Replace('\n', '\0');
if (string.IsNullOrWhiteSpace(input)) if (string.IsNullOrWhiteSpace(input))
return false; return (false, false);
if (input.StartsWith('<')) if (input.StartsWith(InputManager.prefix))
{ {
input = input.Remove(0, 1); input = input.Remove(0, 1);
} }
else if (GlobalInformation.currentTextChannel != null) else if (GlobalInformation.currentTextChannel != null)
{ {
Console.CursorTop--; cooldown++;
Console.Write("\r" + new string(' ', Console.WindowWidth)); Console.Write("\r" + new string(' ', Console.WindowWidth));
GlobalInformation.currentTextChannel.SendMessageAsync(input); await GlobalInformation.currentTextChannel.SendMessageAsync(rawInput);
return false; return (false, false);
} }
Console.WriteLine(); Console.WriteLine();
if (input == "exit" || input is null) if (input == "exit" || input is null)
return true; return (true, false);
string args = input.Contains(" ") ? input[input.IndexOf(" ")..].Trim() : null; string args = input.Contains(" ") ? input[input.IndexOf(" ")..].Trim() : null;
input = input.Contains(" ") ? input.Substring(0, input.IndexOf(" ")) : input; input = input.Contains(" ") ? input.Substring(0, input.IndexOf(" ")) : input;
if (input == "help") if (input == "help" || input == "?")
{ {
Console.WriteLine($"Prefix: '{InputManager.prefix}' (Only required in text channels)");
Console.WriteLine();
for (int i = 0; i < CommandsList.Count; i++) for (int i = 0; i < CommandsList.Count; i++)
{ {
Console.Write($"{i + 1}. {CommandsList.Keys.ElementAt(i)}".PadRight(15)); Console.Write($"{i + 1}. {CommandsList.Keys.ElementAt(i)}".PadRight(15));
@@ -68,140 +97,13 @@ namespace DiscordCLI
} }
else if (CommandsList.ContainsKey(input)) else if (CommandsList.ContainsKey(input))
{ {
CommandsList[input].Item2(args); await CommandsList[input].Item2(args);
} }
else else
{ {
ConsoleExt.WriteLine("Command does not exist!", ConsoleColor.Red); ConsoleExt.WriteLine("Command does not exist!", ConsoleColor.Red);
} }
return false; return (false, false);
}
}
internal class Commands
{
private IReadOnlyDictionary<ulong, DiscordGuild> socketGuildsCache;
private readonly DiscordClient client;
private readonly OutputManager outputManager;
public Commands(DiscordClient dicordClient, OutputManager outputMan)
{
client = dicordClient;
outputManager = outputMan;
}
protected void ListGuilds(string args)
{
socketGuildsCache ??= client.Guilds;
int index = 1;
foreach (DiscordGuild guild in socketGuildsCache.Values)
{
Console.WriteLine($"{index}. {guild.Name}");
index++;
}
}
protected void ListDms(string args)
{
throw new NotImplementedException();
}
protected void ListGuildChannels(string args)
{
IReadOnlyCollection<DiscordChannel> textChannels;
DiscordGuild guild;
if (args != null)
{
if (int.TryParse(args, out int ind))
{
guild = socketGuildsCache?.Values.ElementAtOrDefault(ind - 1);
}
else
{
guild = socketGuildsCache?.FirstOrDefault(x => x.Value.Name == args).Value;
}
GlobalInformation.currentTextChannel = null;
}
else
{
guild = GlobalInformation.currentGuild;
}
if (guild is null)
{
ConsoleExt.WriteLine("Guild not found!", ConsoleColor.Red);
GlobalInformation.currentTextChannel = null;
return;
}
GlobalInformation.currentGuild = guild;
textChannels = guild.Channels;
int index = 1;
foreach (DiscordChannel channel in textChannels)
{
switch (channel.Type)
{
case ChannelType.Category:
//Console.WriteLine($"[{channel.Name}]");
break;
case ChannelType.Text:
Console.WriteLine($" {index}. {channel.Name}");
index++;
break;
}
}
}
protected async void EnterChannel(string args)
{
DiscordChannel textChannel;
if (GlobalInformation.currentGuild is null)
{
ConsoleExt.WriteLine("You are not in a guild!", ConsoleColor.Red);
return;
}
if (int.TryParse(args, out int ind))
{
textChannel = GlobalInformation.currentGuild?.Channels.Where(x => x.Type == ChannelType.Text).ElementAtOrDefault(ind - 1);
}
else
{
textChannel = GlobalInformation.currentGuild?.Channels.Where(x => x.Type == ChannelType.Text).FirstOrDefault(x => x.Name == args);
}
GlobalInformation.currentTextChannel = textChannel;
if (textChannel is null)
{
ConsoleExt.WriteLine("Channel not found!", ConsoleColor.Red);
return;
}
foreach (DiscordMessage message in (await textChannel.GetMessagesAsync(10)).Reverse())
{
try
{
await outputManager.WriteMessage(message, textChannel, GlobalInformation.currentGuild);
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
}
}
protected void DeleteToken(string args)
{
File.Delete(Program.tokenPath);
Environment.Exit(0);
} }
} }
} }
+1 -2
View File
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
@@ -10,5 +10,4 @@
<PackageReference Include="DSharpPlus" Version="3.2.3" /> <PackageReference Include="DSharpPlus" Version="3.2.3" />
<PackageReference Include="Stone_Red-C-Sharp-Utilities" Version="1.0.0.2" /> <PackageReference Include="Stone_Red-C-Sharp-Utilities" Version="1.0.0.2" />
</ItemGroup> </ItemGroup>
</Project> </Project>
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<_LastSelectedProfileId>C:\Users\David\Google Drive\Programmieren\DiscordCLI\DiscordCLI\Properties\PublishProfiles\Linux-x64.pubxml</_LastSelectedProfileId> <_LastSelectedProfileId>C:\Users\David\Google Drive\Programmieren\DiscordCLI\DiscordCLI\Properties\PublishProfiles\Windows.pubxml</_LastSelectedProfileId>
</PropertyGroup> </PropertyGroup>
</Project> </Project>
+16 -11
View File
@@ -1,6 +1,8 @@
using DSharpPlus; using DSharpPlus;
using System.Threading.Tasks; using System.Threading.Tasks;
using System; using System;
using DSharpPlus.Entities;
using System.Linq;
namespace DiscordCLI namespace DiscordCLI
{ {
@@ -8,7 +10,8 @@ namespace DiscordCLI
{ {
private readonly CommandsManager commandsManager; private readonly CommandsManager commandsManager;
private readonly DiscordClient client; private readonly DiscordClient client;
public string Input { get; private set; } = "<"; public const string prefix = ">";
public string Input { get; private set; } = string.Empty;
public InputManager(DiscordClient dicordClient, CommandsManager commandsMan) public InputManager(DiscordClient dicordClient, CommandsManager commandsMan)
{ {
@@ -17,17 +20,18 @@ namespace DiscordCLI
} }
public async Task ReadInput() public async Task ReadInput()
{
await Task.Run(() =>
{ {
bool exit = false; bool exit = false;
bool printOverride = false;
string lastInput = prefix;
while (!exit) while (!exit)
{ {
string infoString = $"\r[{client.CurrentUser.Username}#{client.CurrentUser.Discriminator}] [{GlobalInformation.currentGuild?.Name}/{GlobalInformation.currentTextChannel?.Name}] ==> "; DiscordDmChannel dmChannel = GlobalInformation.currentTextChannel as DiscordDmChannel;
if (Input.StartsWith('<')) string infoString = $"\r[{client.CurrentUser.Username}#{client.CurrentUser.Discriminator}] [{(dmChannel is null ? GlobalInformation.currentGuild?.Name : "DMs")}/{(dmChannel is null ? GlobalInformation.currentTextChannel?.Name : string.Join(", ", dmChannel.Recipients.Select(x => x.Username)))}] ==> ";
if (lastInput.StartsWith(prefix) || printOverride)
Console.Write(Environment.NewLine + infoString); Console.Write(Environment.NewLine + infoString);
Input = string.Empty; printOverride = false;
ConsoleKeyInfo keyInfo; ConsoleKeyInfo keyInfo;
do do
@@ -48,13 +52,14 @@ namespace DiscordCLI
Console.CursorLeft = infoString.Length + Input.Length - 1; Console.CursorLeft = infoString.Length + Input.Length - 1;
} while (keyInfo.Key != ConsoleKey.Enter); } while (keyInfo.Key != ConsoleKey.Enter);
if (GlobalInformation.currentTextChannel == null && !Input.StartsWith('<')) if (GlobalInformation.currentTextChannel == null && !Input.StartsWith(prefix))
Input = "<" + Input; Input = prefix + Input;
exit = commandsManager.CheckCommand(Input); lastInput = new string(Input);
Input = string.Empty;
(exit, printOverride) = await commandsManager.CheckCommand(lastInput);
} }
Environment.Exit(0);
});
} }
} }
} }
+23 -7
View File
@@ -21,7 +21,7 @@ namespace DiscordCLI
client = discordClient; client = discordClient;
} }
public async Task WriteMessage(DiscordMessage message, DiscordChannel channel, DiscordGuild guild) public async Task WriteMessage(DiscordMessage message, DiscordChannel channel, DiscordGuild guild, bool writeInfo = true)
{ {
try try
{ {
@@ -29,12 +29,19 @@ namespace DiscordCLI
return; return;
DiscordUser user = message.Author; DiscordUser user = message.Author;
if (GlobalInformation.currentGuild is not null)
{
DiscordMember discordMember = await guild.GetMemberAsync(user.Id); DiscordMember discordMember = await guild.GetMemberAsync(user.Id);
DiscordColor discordColor = discordMember.Color; DiscordColor discordColor = discordMember.Color;
Color color = Color.FromArgb(discordColor.R, discordColor.G, discordColor.B); Color color = Color.FromArgb(discordColor.R, discordColor.G, discordColor.B);
WriteTop($"[{discordMember.DisplayName}]", color, message, true, true, $"{discordMember.Username}#{discordMember.Discriminator} {message.Timestamp.LocalDateTime}"); WriteTop($"[{discordMember.DisplayName}]", color, message, true, true, $"{discordMember.Username}#{discordMember.Discriminator} {message.Timestamp.LocalDateTime}");
}
else
{
WriteTop($"[{user.Username}]", Color.White, message, true, true, $"{user.Username}#{user.Discriminator} {message.Timestamp.LocalDateTime}");
}
if (!string.IsNullOrWhiteSpace(message.Content)) if (!string.IsNullOrWhiteSpace(message.Content))
WriteTop(message.Content, Color.White, message); WriteTop(message.Content, Color.White, message);
@@ -57,12 +64,13 @@ namespace DiscordCLI
WriteTop(">>> ", Color.FromArgb(embed.Color.Value), message, true, false); WriteTop(">>> ", Color.FromArgb(embed.Color.Value), message, true, false);
WriteTop($"{embed.Description}", Color.White, message, false); WriteTop($"{embed.Description}", Color.White, message, false);
} }
if (embed.Fields is not null)
foreach (DiscordEmbedField field in embed.Fields) foreach (DiscordEmbedField field in embed.Fields)
{ {
WriteTop(">>> ", Color.FromArgb(embed.Color.Value), message, true, false); WriteTop(">>> ", Color.FromArgb(embed.Color.Value), message, true, false);
WriteTop($"{field.Name}{Environment.NewLine}{field.Value}", Color.White, message, false); WriteTop($"{field.Name}{Environment.NewLine}{field.Value}", Color.White, message, false);
} }
//WriteTop($"{string.Join(Environment.NewLine, embed.Fields.Select(x => $"> {x.Name}{Environment.NewLine}{x.Value}"))}", Color.White, message);
} }
} }
catch (Exception ex) catch (Exception ex)
@@ -71,9 +79,15 @@ namespace DiscordCLI
} }
WriteTop(string.Empty, Color.White, message); WriteTop(string.Empty, Color.White, message);
Console.Write($"[{client.CurrentUser.Username}#{client.CurrentUser.Discriminator}] [{GlobalInformation.currentGuild?.Name}/{GlobalInformation.currentTextChannel?.Name}] ==> "); DiscordDmChannel dmChannel = GlobalInformation.currentTextChannel as DiscordDmChannel;
if (writeInfo)
{
string infoString = $"\r[{client.CurrentUser.Username}#{client.CurrentUser.Discriminator}] [{(dmChannel is null ? GlobalInformation.currentGuild?.Name : "DMs")}/{(dmChannel is null ? GlobalInformation.currentTextChannel?.Name : string.Join(", ", dmChannel.Recipients.Select(x => x.Username)))}] ==> ";
Console.Write(infoString);
Console.Write(InputManager.Input); Console.Write(InputManager.Input);
} }
}
private void WriteTop(string message, Color color, DiscordMessage discordMessage, bool removeText = true, bool newLine = true, string info = null) private void WriteTop(string message, Color color, DiscordMessage discordMessage, bool removeText = true, bool newLine = true, string info = null)
{ {
@@ -112,6 +126,7 @@ namespace DiscordCLI
} }
} }
if (!discordMessage.Channel.IsPrivate)
foreach (DiscordChannel channel in discordMessage.MentionedChannels) foreach (DiscordChannel channel in discordMessage.MentionedChannels)
{ {
if (channel?.Mention is not null) if (channel?.Mention is not null)
@@ -122,6 +137,7 @@ namespace DiscordCLI
} }
} }
if (!discordMessage.Channel.IsPrivate)
foreach (DiscordRole role in discordMessage.MentionedRoles) foreach (DiscordRole role in discordMessage.MentionedRoles)
{ {
if (role?.Mention is not null) if (role?.Mention is not null)
@@ -150,7 +166,7 @@ namespace DiscordCLI
private ConsoleColor ClosestConsoleColor(Color targetColor) private ConsoleColor ClosestConsoleColor(Color targetColor)
{ {
double minDif = double.MaxValue; double minDif = double.MaxValue;
ConsoleColor bestColor = ConsoleColor.White; ConsoleColor closestColor = ConsoleColor.White;
foreach (ConsoleColor consoleColor in Enum.GetValues(typeof(ConsoleColor))) foreach (ConsoleColor consoleColor in Enum.GetValues(typeof(ConsoleColor)))
{ {
@@ -174,10 +190,10 @@ namespace DiscordCLI
if (diff < minDif) if (diff < minDif)
{ {
minDif = diff; minDif = diff;
bestColor = consoleColor; closestColor = consoleColor;
} }
} }
return bestColor; return closestColor;
} }
} }
} }
+7 -3
View File
@@ -8,8 +8,7 @@ namespace DiscordCLI
{ {
internal class Program internal class Program
{ {
public static void Main(string[] args) public static void Main() => new Program().MainAsync().GetAwaiter().GetResult();
=> new Program().MainAsync().GetAwaiter().GetResult();
private DiscordClient client; private DiscordClient client;
private InputManager inputManager; private InputManager inputManager;
@@ -27,7 +26,8 @@ namespace DiscordCLI
if (File.Exists(tokenPath)) if (File.Exists(tokenPath))
token = File.ReadAllText(tokenPath); token = File.ReadAllText(tokenPath);
while (string.IsNullOrEmpty(token)) tokenInput:
while (string.IsNullOrWhiteSpace(token))
{ {
Console.Write("Enter auth token: "); Console.Write("Enter auth token: ");
token = Console.ReadLine(); token = Console.ReadLine();
@@ -52,7 +52,11 @@ namespace DiscordCLI
ConsoleExt.WriteLine(ex, ConsoleColor.Red); ConsoleExt.WriteLine(ex, ConsoleColor.Red);
if (ex.Message.Contains("Authentication failed")) if (ex.Message.Contains("Authentication failed"))
{
File.Delete(tokenPath); File.Delete(tokenPath);
token = string.Empty;
goto tokenInput;
}
return; return;
} }
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net5.0\publish\Linux-arm</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
</PropertyGroup>
</Project>
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<History>True|2021-05-27T05:47:11.2358523Z;</History>
</PropertyGroup>
</Project>
@@ -3,4 +3,7 @@
https://go.microsoft.com/fwlink/?LinkID=208121. https://go.microsoft.com/fwlink/?LinkID=208121.
--> -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<History>True|2021-05-27T05:47:04.1968183Z;True|2021-05-27T07:46:41.8745649+02:00;</History>
</PropertyGroup>
</Project> </Project>
@@ -3,4 +3,7 @@
https://go.microsoft.com/fwlink/?LinkID=208121. https://go.microsoft.com/fwlink/?LinkID=208121.
--> -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<History>True|2021-05-27T05:49:47.3666888Z;True|2021-05-27T07:46:50.5745814+02:00;</History>
</PropertyGroup>
</Project> </Project>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,9 +0,0 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"C:\\Users\\David\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\David\\.nuget\\packages",
"C:\\Microsoft\\Xamarin\\NuGet"
]
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,7 +3,8 @@
"additionalProbingPaths": [ "additionalProbingPaths": [
"C:\\Users\\David\\.dotnet\\store\\|arch|\\|tfm|", "C:\\Users\\David\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\David\\.nuget\\packages", "C:\\Users\\David\\.nuget\\packages",
"C:\\Microsoft\\Xamarin\\NuGet" "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet"
] ]
} }
} }
Binary file not shown.
@@ -3,7 +3,8 @@
"additionalProbingPaths": [ "additionalProbingPaths": [
"C:\\Users\\David\\.dotnet\\store\\|arch|\\|tfm|", "C:\\Users\\David\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\David\\.nuget\\packages", "C:\\Users\\David\\.nuget\\packages",
"C:\\Microsoft\\Xamarin\\NuGet" "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet"
] ]
} }
} }
Binary file not shown.
@@ -1,107 +1,41 @@
{ {
"runtimeTarget": { "runtimeTarget": {
"name": ".NETCoreApp,Version=v3.1", "name": ".NETCoreApp,Version=v5.0",
"signature": "" "signature": ""
}, },
"compilationOptions": {}, "compilationOptions": {},
"targets": { "targets": {
".NETCoreApp,Version=v3.1": { ".NETCoreApp,Version=v5.0": {
"DiscordCLI/1.0.0": { "DiscordCLI/1.0.0": {
"dependencies": { "dependencies": {
"Discord.Net": "1.0.2" "ColorMineStandard": "1.0.0",
"DSharpPlus": "3.2.3",
"Stone_Red-C-Sharp-Utilities": "1.0.0.2"
}, },
"runtime": { "runtime": {
"DiscordCLI.dll": {} "DiscordCLI.dll": {}
} }
}, },
"Discord.Net/1.0.2": { "ColorMineStandard/1.0.0": {
"dependencies": { "runtime": {
"Discord.Net.Commands": "1.0.2", "lib/netstandard2.0/ColorMineStandard.dll": {
"Discord.Net.Core": "1.0.2", "assemblyVersion": "1.0.0.0",
"Discord.Net.Rest": "1.0.2", "fileVersion": "1.0.0.0"
"Discord.Net.Rpc": "1.0.2", }
"Discord.Net.WebSocket": "1.0.2",
"Discord.Net.Webhook": "1.0.2"
} }
}, },
"Discord.Net.Commands/1.0.2": { "DSharpPlus/3.2.3": {
"dependencies": { "dependencies": {
"Discord.Net.Core": "1.0.2", "Newtonsoft.Json": "10.0.3",
"Microsoft.Extensions.DependencyInjection": "1.1.1", "System.Net.Http": "4.3.3",
"NETStandard.Library": "1.6.1" "System.Net.WebSockets": "4.3.0",
"System.Net.WebSockets.Client": "4.3.1",
"System.Runtime.InteropServices.RuntimeInformation": "4.3.0"
}, },
"runtime": { "runtime": {
"lib/netstandard1.1/Discord.Net.Commands.dll": { "lib/netstandard2.0/DSharpPlus.dll": {
"assemblyVersion": "1.0.2.0", "assemblyVersion": "3.2.3.0",
"fileVersion": "1.0.2.0" "fileVersion": "3.2.3.0"
}
}
},
"Discord.Net.Core/1.0.2": {
"dependencies": {
"NETStandard.Library": "1.6.1",
"Newtonsoft.Json": "10.0.2",
"System.Collections.Immutable": "1.3.1",
"System.Interactive.Async": "3.1.1"
},
"runtime": {
"lib/netstandard1.3/Discord.Net.Core.dll": {
"assemblyVersion": "1.0.2.0",
"fileVersion": "1.0.2.0"
}
}
},
"Discord.Net.Rest/1.0.2": {
"dependencies": {
"Discord.Net.Core": "1.0.2",
"NETStandard.Library": "1.6.1",
"System.Net.Http": "4.3.2"
},
"runtime": {
"lib/netstandard1.3/Discord.Net.Rest.dll": {
"assemblyVersion": "1.0.2.0",
"fileVersion": "1.0.2.0"
}
}
},
"Discord.Net.Rpc/1.0.2": {
"dependencies": {
"Discord.Net.Core": "1.0.2",
"Discord.Net.Rest": "1.0.2",
"NETStandard.Library": "1.6.1",
"System.Net.WebSockets.Client": "4.3.1"
},
"runtime": {
"lib/netstandard1.3/Discord.Net.Rpc.dll": {
"assemblyVersion": "1.0.2.0",
"fileVersion": "1.0.2.0"
}
}
},
"Discord.Net.Webhook/1.0.2": {
"dependencies": {
"Discord.Net.Core": "1.0.2",
"Discord.Net.Rest": "1.0.2",
"NETStandard.Library": "1.6.1"
},
"runtime": {
"lib/netstandard1.1/Discord.Net.Webhook.dll": {
"assemblyVersion": "1.0.2.0",
"fileVersion": "1.0.2.0"
}
}
},
"Discord.Net.WebSocket/1.0.2": {
"dependencies": {
"Discord.Net.Core": "1.0.2",
"Discord.Net.Rest": "1.0.2",
"NETStandard.Library": "1.6.1",
"System.Net.WebSockets.Client": "4.3.1"
},
"runtime": {
"lib/netstandard1.3/Discord.Net.WebSocket.dll": {
"assemblyVersion": "1.0.2.0",
"fileVersion": "1.0.2.0"
} }
} }
}, },
@@ -125,30 +59,6 @@
"System.Threading": "4.3.0" "System.Threading": "4.3.0"
} }
}, },
"Microsoft.Extensions.DependencyInjection/1.1.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "1.1.1",
"NETStandard.Library": "1.6.1"
},
"runtime": {
"lib/netstandard1.1/Microsoft.Extensions.DependencyInjection.dll": {
"assemblyVersion": "1.1.1.0",
"fileVersion": "1.1.1.30427"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/1.1.1": {
"dependencies": {
"NETStandard.Library": "1.6.1",
"System.ComponentModel": "4.3.0"
},
"runtime": {
"lib/netstandard1.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "1.1.1.0",
"fileVersion": "1.1.1.30427"
}
}
},
"Microsoft.NETCore.Platforms/1.1.0": {}, "Microsoft.NETCore.Platforms/1.1.0": {},
"Microsoft.NETCore.Targets/1.1.0": {}, "Microsoft.NETCore.Targets/1.1.0": {},
"Microsoft.Win32.Primitives/4.3.0": { "Microsoft.Win32.Primitives/4.3.0": {
@@ -178,7 +88,7 @@
"System.IO.FileSystem.Primitives": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0",
"System.Linq": "4.3.0", "System.Linq": "4.3.0",
"System.Linq.Expressions": "4.3.0", "System.Linq.Expressions": "4.3.0",
"System.Net.Http": "4.3.2", "System.Net.Http": "4.3.3",
"System.Net.Primitives": "4.3.0", "System.Net.Primitives": "4.3.0",
"System.Net.Sockets": "4.3.0", "System.Net.Sockets": "4.3.0",
"System.ObjectModel": "4.3.0", "System.ObjectModel": "4.3.0",
@@ -206,7 +116,7 @@
"System.Xml.XDocument": "4.3.0" "System.Xml.XDocument": "4.3.0"
} }
}, },
"Newtonsoft.Json/10.0.2": { "Newtonsoft.Json/10.0.3": {
"dependencies": { "dependencies": {
"Microsoft.CSharp": "4.3.0", "Microsoft.CSharp": "4.3.0",
"NETStandard.Library": "1.6.1", "NETStandard.Library": "1.6.1",
@@ -218,13 +128,13 @@
"runtime": { "runtime": {
"lib/netstandard1.3/Newtonsoft.Json.dll": { "lib/netstandard1.3/Newtonsoft.Json.dll": {
"assemblyVersion": "10.0.0.0", "assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.2.20802" "fileVersion": "10.0.3.21018"
} }
} }
}, },
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
"runtime.native.System/4.3.0": { "runtime.native.System/4.3.0": {
"dependencies": { "dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Platforms": "1.1.0",
@@ -254,28 +164,36 @@
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
} }
}, },
"runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"dependencies": { "dependencies": {
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
} }
}, },
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {},
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
"Stone_Red-C-Sharp-Utilities/1.0.0.2": {
"runtime": {
"lib/netstandard2.1/Stone_Red-C-Sharp-Utilities.dll": {
"assemblyVersion": "1.0.0.2",
"fileVersion": "1.0.0.2"
}
}
},
"System.AppContext/4.3.0": { "System.AppContext/4.3.0": {
"dependencies": { "dependencies": {
"System.Runtime": "4.3.0" "System.Runtime": "4.3.0"
@@ -311,18 +229,6 @@
"System.Threading.Tasks": "4.3.0" "System.Threading.Tasks": "4.3.0"
} }
}, },
"System.Collections.Immutable/1.3.1": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.Linq": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Collections.NonGeneric/4.3.0": { "System.Collections.NonGeneric/4.3.0": {
"dependencies": { "dependencies": {
"System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Debug": "4.3.0",
@@ -457,17 +363,6 @@
"System.Runtime.InteropServices": "4.3.0" "System.Runtime.InteropServices": "4.3.0"
} }
}, },
"System.Interactive.Async/3.1.1": {
"dependencies": {
"NETStandard.Library": "1.6.1"
},
"runtime": {
"lib/netstandard1.3/System.Interactive.Async.dll": {
"assemblyVersion": "3.0.3000.0",
"fileVersion": "3.1.1.0"
}
}
},
"System.IO/4.3.0": { "System.IO/4.3.0": {
"dependencies": { "dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Platforms": "1.1.0",
@@ -556,7 +451,7 @@
"System.Threading": "4.3.0" "System.Threading": "4.3.0"
} }
}, },
"System.Net.Http/4.3.2": { "System.Net.Http/4.3.3": {
"dependencies": { "dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Platforms": "1.1.0",
"System.Collections": "4.3.0", "System.Collections": "4.3.0",
@@ -583,7 +478,7 @@
"System.Threading.Tasks": "4.3.0", "System.Threading.Tasks": "4.3.0",
"runtime.native.System": "4.3.0", "runtime.native.System": "4.3.0",
"runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Net.Http": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
} }
}, },
"System.Net.NameResolution/4.3.0": { "System.Net.NameResolution/4.3.0": {
@@ -641,7 +536,7 @@
"System.Threading.ThreadPool": "4.3.0", "System.Threading.ThreadPool": "4.3.0",
"runtime.native.System": "4.3.0", "runtime.native.System": "4.3.0",
"runtime.native.System.Net.Security": "4.3.0", "runtime.native.System.Net.Security": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
} }
}, },
"System.Net.Sockets/4.3.0": { "System.Net.Sockets/4.3.0": {
@@ -862,7 +757,7 @@
"System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0",
"System.Text.Encoding": "4.3.0", "System.Text.Encoding": "4.3.0",
"runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
} }
}, },
"System.Security.Cryptography.Cng/4.3.0": { "System.Security.Cryptography.Cng/4.3.0": {
@@ -910,7 +805,7 @@
"System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices": "4.3.0",
"System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0",
"System.Text.Encoding": "4.3.0", "System.Text.Encoding": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
} }
}, },
"System.Security.Cryptography.OpenSsl/4.3.0": { "System.Security.Cryptography.OpenSsl/4.3.0": {
@@ -927,7 +822,7 @@
"System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0",
"System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0",
"System.Text.Encoding": "4.3.0", "System.Text.Encoding": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
} }
}, },
"System.Security.Cryptography.Primitives/4.3.0": { "System.Security.Cryptography.Primitives/4.3.0": {
@@ -967,7 +862,7 @@
"System.Threading": "4.3.0", "System.Threading": "4.3.0",
"runtime.native.System": "4.3.0", "runtime.native.System": "4.3.0",
"runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Net.Http": "4.3.0",
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
} }
}, },
"System.Security.Principal/4.3.0": { "System.Security.Principal/4.3.0": {
@@ -1103,54 +998,19 @@
"serviceable": false, "serviceable": false,
"sha512": "" "sha512": ""
}, },
"Discord.Net/1.0.2": { "ColorMineStandard/1.0.0": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-ZGazwrLmI6xdKaDK2XTdCwrx2BxUf+Z5FDL8uY8FVkto+/qkUD/6a3G1JzkSKA4N9Hf4sKgn806WX9xtPC1mvw==", "sha512": "sha512-sR4zFOJ6wT0bFgjivk4plQrO3q7j/ew6aKJY48ssNoXBvq7jiLB9PtuS4UOGqOcxEM571QSJKeNU3GmKFXc/dw==",
"path": "discord.net/1.0.2", "path": "colorminestandard/1.0.0",
"hashPath": "discord.net.1.0.2.nupkg.sha512" "hashPath": "colorminestandard.1.0.0.nupkg.sha512"
}, },
"Discord.Net.Commands/1.0.2": { "DSharpPlus/3.2.3": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-LzUgcF25OOj2FdXzlIlzXue5Vv6+IE7N455wRlnL1umw7CzjhP8UyTKyMTq0zOBaohQi8ffIgI0ldgcLLOwERg==", "sha512": "sha512-MDhZwYv5N/3xPrIpIx92q5o7JPvxCyDXYJAv6fC+GVdzJfUSL9DAPm55lH1I5wZ+Fv9/05Cq/KPVxM0lfh3rog==",
"path": "discord.net.commands/1.0.2", "path": "dsharpplus/3.2.3",
"hashPath": "discord.net.commands.1.0.2.nupkg.sha512" "hashPath": "dsharpplus.3.2.3.nupkg.sha512"
},
"Discord.Net.Core/1.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JbvcB5ce2PsFwUwqDg9EcdQNl8Wl8og7+nX6L+taG60CrOoivT2xYX3Wofx60kdF9OTvTyo6/BvZkVltUT2FSQ==",
"path": "discord.net.core/1.0.2",
"hashPath": "discord.net.core.1.0.2.nupkg.sha512"
},
"Discord.Net.Rest/1.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-246NbaD1Pqochze2bIOUTLQg9/DWlw6O6JvCkJbVHBCKYyn6lCMkoxUECCPuluw9ZiT29F3UPgTZf/qyMiXHiQ==",
"path": "discord.net.rest/1.0.2",
"hashPath": "discord.net.rest.1.0.2.nupkg.sha512"
},
"Discord.Net.Rpc/1.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Fz/ArOKrGyh+ec5t4VAu9+yF/ctNzXkmcYXOnXb+4lQVIdfCeg9i7Gamv6H9r77aFzsYK2BhVcH3Q05xqtfPnQ==",
"path": "discord.net.rpc/1.0.2",
"hashPath": "discord.net.rpc.1.0.2.nupkg.sha512"
},
"Discord.Net.Webhook/1.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BM1EtaOS8d5VWz5MMMlvRyVKUIoDbre2JchhYuGDPBEMtagUC7bj8ymvoXVzpHY5tO5F7Q20sDIKSmsV9A/xbw==",
"path": "discord.net.webhook/1.0.2",
"hashPath": "discord.net.webhook.1.0.2.nupkg.sha512"
},
"Discord.Net.WebSocket/1.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-18TAK7E8iOYv6GRkaJwkI0SCfp6iB/YZ3c6ToW70RwoFV0nlBLfphzH1r4BL76YvYg5yt1NHAoglGNjn5URamQ==",
"path": "discord.net.websocket/1.0.2",
"hashPath": "discord.net.websocket.1.0.2.nupkg.sha512"
}, },
"Microsoft.CSharp/4.3.0": { "Microsoft.CSharp/4.3.0": {
"type": "package", "type": "package",
@@ -1159,20 +1019,6 @@
"path": "microsoft.csharp/4.3.0", "path": "microsoft.csharp/4.3.0",
"hashPath": "microsoft.csharp.4.3.0.nupkg.sha512" "hashPath": "microsoft.csharp.4.3.0.nupkg.sha512"
}, },
"Microsoft.Extensions.DependencyInjection/1.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HPromF7+ssYXilQndxMbuPfn2w9C9mP2owmNC48/bgts/TWBMlvnUYsvOvTC8Ojn0DuiDDGmHNqOtxwwvFSpAA==",
"path": "microsoft.extensions.dependencyinjection/1.1.1",
"hashPath": "microsoft.extensions.dependencyinjection.1.1.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/1.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-sKsx2jEkabcI954cB6MoU2LUxv8YTByV8+ifqbFtIF8gFqPb4/CfPxwvxrYW+aXc4V44KKHOyeTDgyc4B7fjYg==",
"path": "microsoft.extensions.dependencyinjection.abstractions/1.1.1",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.1.1.1.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/1.1.0": { "Microsoft.NETCore.Platforms/1.1.0": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@@ -1201,33 +1047,33 @@
"path": "netstandard.library/1.6.1", "path": "netstandard.library/1.6.1",
"hashPath": "netstandard.library.1.6.1.nupkg.sha512" "hashPath": "netstandard.library.1.6.1.nupkg.sha512"
}, },
"Newtonsoft.Json/10.0.2": { "Newtonsoft.Json/10.0.3": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-iwElSU2IXmwGvytJsezyDML2ZWDkG2JzTYzlU/BNlmzMdlmRvbnwITsGGY74gwVEpDli1UdOLkMT7/3jxWvXzA==", "sha512": "sha512-hSXaFmh7hNCuEoC4XNY5DrRkLDzYHqPx/Ik23R4J86Z7PE/Y6YidhG602dFVdLBRSdG6xp9NabH3dXpcoxWvww==",
"path": "newtonsoft.json/10.0.2", "path": "newtonsoft.json/10.0.3",
"hashPath": "newtonsoft.json.10.0.2.nupkg.sha512" "hashPath": "newtonsoft.json.10.0.3.nupkg.sha512"
}, },
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", "sha512": "sha512-7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==",
"path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
}, },
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", "sha512": "sha512-0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==",
"path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
}, },
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", "sha512": "sha512-G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==",
"path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
}, },
"runtime.native.System/4.3.0": { "runtime.native.System/4.3.0": {
"type": "package", "type": "package",
@@ -1264,26 +1110,26 @@
"path": "runtime.native.system.security.cryptography.apple/4.3.0", "path": "runtime.native.system.security.cryptography.apple/4.3.0",
"hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
}, },
"runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", "sha512": "sha512-QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==",
"path": "runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
}, },
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", "sha512": "sha512-I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==",
"path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
}, },
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", "sha512": "sha512-1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==",
"path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
}, },
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {
"type": "package", "type": "package",
@@ -1292,40 +1138,47 @@
"path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0",
"hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
}, },
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", "sha512": "sha512-6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==",
"path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
}, },
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", "sha512": "sha512-vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==",
"path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
}, },
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", "sha512": "sha512-7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==",
"path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
}, },
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", "sha512": "sha512-xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==",
"path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
}, },
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", "sha512": "sha512-leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==",
"path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
"hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
},
"Stone_Red-C-Sharp-Utilities/1.0.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/oH1XweI6G2VjeXuutq3XhHAPiSpotfPnsRMK0n8BXFOqG85y0AXQGaKiEdhCZZOpLHFrNY8rtLepMgLJrsY9w==",
"path": "stone_red-c-sharp-utilities/1.0.0.2",
"hashPath": "stone_red-c-sharp-utilities.1.0.0.2.nupkg.sha512"
}, },
"System.AppContext/4.3.0": { "System.AppContext/4.3.0": {
"type": "package", "type": "package",
@@ -1355,13 +1208,6 @@
"path": "system.collections.concurrent/4.3.0", "path": "system.collections.concurrent/4.3.0",
"hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512"
}, },
"System.Collections.Immutable/1.3.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-n+AGX7zmiZumW9aggOkXaHzUeAS3EfeTErnkKCusyONUozbTv+kMb8VE36m+ldV6kF9g57G2c641KCdgH9E0pg==",
"path": "system.collections.immutable/1.3.1",
"hashPath": "system.collections.immutable.1.3.1.nupkg.sha512"
},
"System.Collections.NonGeneric/4.3.0": { "System.Collections.NonGeneric/4.3.0": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@@ -1460,13 +1306,6 @@
"path": "system.globalization.extensions/4.3.0", "path": "system.globalization.extensions/4.3.0",
"hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512"
}, },
"System.Interactive.Async/3.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hZccYiIE5RS1/J9Tb/BNtosAGVggdlsJm4Ojdu+gDV0p4AIi+LUfUogMKkRacljQEJd2AG6vYzvcjhQFkqoZmw==",
"path": "system.interactive.async/3.1.1",
"hashPath": "system.interactive.async.3.1.1.nupkg.sha512"
},
"System.IO/4.3.0": { "System.IO/4.3.0": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
@@ -1516,12 +1355,12 @@
"path": "system.linq.expressions/4.3.0", "path": "system.linq.expressions/4.3.0",
"hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512"
}, },
"System.Net.Http/4.3.2": { "System.Net.Http/4.3.3": {
"type": "package", "type": "package",
"serviceable": true, "serviceable": true,
"sha512": "sha512-y7hv0o0weI0j0mvEcBOdt1F3CAADiWlcw3e54m8TfYiRmBPDIsHElx8QUPDlY4x6yWXKPGN0Z2TuXCTPgkm5WQ==", "sha512": "sha512-7rCqIbkC/P2+A00NoDH5gnvFhADmX7Dc4INvsOajbU1MVhktE9vZNrjPtF82N6Uo7obK+yzlrPUv/M+snnN/9w==",
"path": "system.net.http/4.3.2", "path": "system.net.http/4.3.3",
"hashPath": "system.net.http.4.3.2.nupkg.sha512" "hashPath": "system.net.http.4.3.3.nupkg.sha512"
}, },
"System.Net.NameResolution/4.3.0": { "System.Net.NameResolution/4.3.0": {
"type": "package", "type": "package",
@@ -1,9 +1,9 @@
{ {
"runtimeOptions": { "runtimeOptions": {
"tfm": "netcoreapp3.1", "tfm": "net5.0",
"framework": { "framework": {
"name": "Microsoft.NETCore.App", "name": "Microsoft.NETCore.App",
"version": "3.1.0" "version": "5.0.0"
} }
} }
} }
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
c330ac1ec415f28e8dfa881f69ac743ee03b156f d74c436d6f045a94c6aefe230b53cf4fbca29cc5
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -14,10 +14,12 @@
"outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\obj\\", "outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"fallbackFolders": [ "fallbackFolders": [
"C:\\Microsoft\\Xamarin\\NuGet\\" "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
], ],
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" "C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
], ],
@@ -72,7 +74,7 @@
"privateAssets": "all" "privateAssets": "all"
} }
}, },
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.104\\RuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"
} }
} }
} }
@@ -5,12 +5,14 @@
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\David\.nuget\packages\;C:\Microsoft\Xamarin\NuGet\</NuGetPackageFolders> <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\David\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files (x86)\Microsoft\Xamarin\NuGet\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.8.1</NuGetToolVersion> <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.9.1</NuGetToolVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="$([MSBuild]::EnsureTrailingSlash($(NuGetPackageFolders)))" /> <SourceRoot Include="C:\Users\David\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft\Xamarin\NuGet\" />
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
@@ -1 +1 @@
f577cd7c0c9371a4e25c13c1586e47e82f16d417 6b3b4647b7644f9b16fb8ec3b15a9fe904531b35
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
c27366fe7586ce3c313a2245960fd7296c163460 94d569a53a5ac292d10f2db736ac10f01f735125
Binary file not shown.
Binary file not shown.
+6 -3
View File
@@ -5876,7 +5876,8 @@
}, },
"packageFolders": { "packageFolders": {
"C:\\Users\\David\\.nuget\\packages\\": {}, "C:\\Users\\David\\.nuget\\packages\\": {},
"C:\\Microsoft\\Xamarin\\NuGet\\": {} "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {},
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\": {}
}, },
"project": { "project": {
"version": "1.0.0", "version": "1.0.0",
@@ -5888,10 +5889,12 @@
"outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\obj\\", "outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"fallbackFolders": [ "fallbackFolders": [
"C:\\Microsoft\\Xamarin\\NuGet\\" "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
], ],
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" "C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
], ],
@@ -5946,7 +5949,7 @@
"privateAssets": "all" "privateAssets": "all"
} }
}, },
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.104\\RuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"
} }
} }
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "miDAQ5MGQb22EHbZL2B5pGreB6kopZaGNXvjAjIwPgE2Ktn4hP2djCQ+0WMMvPrmErLyXXGzoG50HW85Wyoauw==", "dgSpecHash": "af73I9W1Wa1fhuj5/043Dm5DG4ForbhPNCSMMfnquQjT071fYR+lcoCrvif4C3Ef1eDMd9GPMLo7QTvJxp1kjQ==",
"success": true, "success": true,
"projectFilePath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\DiscordCLI.csproj", "projectFilePath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\DiscordCLI.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
@@ -14,10 +14,12 @@
"outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\obj\\publish\\linux-x64\\", "outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\obj\\publish\\linux-x64\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"fallbackFolders": [ "fallbackFolders": [
"C:\\Microsoft\\Xamarin\\NuGet\\" "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
], ],
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" "C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
], ],
@@ -70,7 +72,7 @@
"downloadDependencies": [ "downloadDependencies": [
{ {
"name": "Microsoft.NETCore.App.Host.linux-x64", "name": "Microsoft.NETCore.App.Host.linux-x64",
"version": "[5.0.4, 5.0.4]" "version": "[5.0.6, 5.0.6]"
} }
], ],
"frameworkReferences": { "frameworkReferences": {
@@ -78,7 +80,7 @@
"privateAssets": "all" "privateAssets": "all"
} }
}, },
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.104\\RuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"
} }
}, },
"runtimes": { "runtimes": {
@@ -5,12 +5,14 @@
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\David\.nuget\packages\;C:\Microsoft\Xamarin\NuGet\</NuGetPackageFolders> <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\David\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files (x86)\Microsoft\Xamarin\NuGet\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.8.1</NuGetToolVersion> <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.9.1</NuGetToolVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="$([MSBuild]::EnsureTrailingSlash($(NuGetPackageFolders)))" /> <SourceRoot Include="C:\Users\David\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft\Xamarin\NuGet\" />
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
@@ -8305,7 +8305,8 @@
}, },
"packageFolders": { "packageFolders": {
"C:\\Users\\David\\.nuget\\packages\\": {}, "C:\\Users\\David\\.nuget\\packages\\": {},
"C:\\Microsoft\\Xamarin\\NuGet\\": {} "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {},
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\": {}
}, },
"project": { "project": {
"version": "1.0.0", "version": "1.0.0",
@@ -8317,10 +8318,12 @@
"outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\obj\\publish\\linux-x64\\", "outputPath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\obj\\publish\\linux-x64\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"fallbackFolders": [ "fallbackFolders": [
"C:\\Microsoft\\Xamarin\\NuGet\\" "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
], ],
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\David\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" "C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
], ],
@@ -8373,7 +8376,7 @@
"downloadDependencies": [ "downloadDependencies": [
{ {
"name": "Microsoft.NETCore.App.Host.linux-x64", "name": "Microsoft.NETCore.App.Host.linux-x64",
"version": "[5.0.4, 5.0.4]" "version": "[5.0.6, 5.0.6]"
} }
], ],
"frameworkReferences": { "frameworkReferences": {
@@ -8381,7 +8384,7 @@
"privateAssets": "all" "privateAssets": "all"
} }
}, },
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.104\\RuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.203\\RuntimeIdentifierGraph.json"
} }
}, },
"runtimes": { "runtimes": {
@@ -1,6 +1,6 @@
{ {
"version": 2, "version": 2,
"dgSpecHash": "yMi9toca1+r3kCHkC/us2dGTQ0CXa9jVPUwiDlC9pA/BRrZx1xWGZe5KZUoWRz6zEFyaXRdvxbmGFWARQ0YsFQ==", "dgSpecHash": "CAxW2Uv5l//Ouqxw9eevSw+p9xw+CqA3d9EdOUR4CVFEemqZd4ue+a/6MNZjMZdrW++bwXfv+8QLpkXoanQVhA==",
"success": true, "success": true,
"projectFilePath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\DiscordCLI.csproj", "projectFilePath": "C:\\Users\\David\\Google Drive\\Programmieren\\DiscordCLI\\DiscordCLI\\DiscordCLI.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
@@ -127,7 +127,7 @@
"C:\\Users\\David\\.nuget\\packages\\system.xml.readerwriter\\4.3.0\\system.xml.readerwriter.4.3.0.nupkg.sha512", "C:\\Users\\David\\.nuget\\packages\\system.xml.readerwriter\\4.3.0\\system.xml.readerwriter.4.3.0.nupkg.sha512",
"C:\\Users\\David\\.nuget\\packages\\system.xml.xdocument\\4.3.0\\system.xml.xdocument.4.3.0.nupkg.sha512", "C:\\Users\\David\\.nuget\\packages\\system.xml.xdocument\\4.3.0\\system.xml.xdocument.4.3.0.nupkg.sha512",
"C:\\Users\\David\\.nuget\\packages\\system.xml.xmldocument\\4.3.0\\system.xml.xmldocument.4.3.0.nupkg.sha512", "C:\\Users\\David\\.nuget\\packages\\system.xml.xmldocument\\4.3.0\\system.xml.xmldocument.4.3.0.nupkg.sha512",
"C:\\Users\\David\\.nuget\\packages\\microsoft.netcore.app.host.linux-x64\\5.0.4\\microsoft.netcore.app.host.linux-x64.5.0.4.nupkg.sha512" "C:\\Users\\David\\.nuget\\packages\\microsoft.netcore.app.host.linux-x64\\5.0.6\\microsoft.netcore.app.host.linux-x64.5.0.6.nupkg.sha512"
], ],
"logs": [] "logs": []
} }
+54 -1
View File
@@ -1,4 +1,57 @@
# DiscordCLI # DiscordCLI
> Use Discord in the terminal > Use Discord in the terminal
# README coming soon ## Warning
**Use this software at your own risk!**\
This isn't directly a selfbot, but Discord may count it as User account automation and this is against their TOS.\
I guess everything should be fine as long as you don't behave conspicuously but still proceed with caution!\
Currently there are no known cases where a user got banned for using this Discord client but that doesn't mean it will never happen.\
Don't blame me if you get banned!\
I will update the above if anything changes!
## Download
Releases: https://github.com/Stone-Red-Code/DiscordCLI/releases
## Usage
1. <a href="https://github.com/Stone-Red-Code/DiscordCLI/releases">Download</a> one of the releases
2. Execute the `DiscordCLI` file
3. Enter your <a href="https://github.com/Tyrrrz/DiscordChatExporter/wiki/Obtaining-Token-and-Channel-IDs#how-to-get-a-user-token">User Token</a>
4. Enter one of the commands below
## Commands
### help
- lists all commands
### exit
- exits application
### logout
- deletes auth token and exits application
### guilds
- lists all guilds you are in
### dms
- lists all private channels
### channels
- lists all channels of guild
- args:<guild name/index>
### enterg
- enter guild
- args:<guild name/index>
### enterc
- enter channel
- args:<channel name/index>
### enterd
- enter DM channel
- args: <channel name/index>
## Limitations
DiscordCLI doesn't support everything the officil Discord app does.
If you find a missing feature in DiscordCLI that is not listed below please tell me or create a pull request and update the list below.
### Current limitation:
- No voice support
- Mentions can't be created easily
- You can't add/remove guilds
- You can't create/accept friend requests
- Discord online status not updating
And probably more.