diff --git a/src/.vs/DiscordCLI/DesignTimeBuild/.dtbcache.v2 b/src/.vs/DiscordCLI/DesignTimeBuild/.dtbcache.v2 index dd110a3..e5c198a 100644 Binary files a/src/.vs/DiscordCLI/DesignTimeBuild/.dtbcache.v2 and b/src/.vs/DiscordCLI/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/.vs/DiscordCLI/v16/.suo b/src/.vs/DiscordCLI/v16/.suo index 90355c5..0784777 100644 Binary files a/src/.vs/DiscordCLI/v16/.suo and b/src/.vs/DiscordCLI/v16/.suo differ diff --git a/src/DiscordCLI/Commands.cs b/src/DiscordCLI/Commands.cs index d058486..7c24d97 100644 --- a/src/DiscordCLI/Commands.cs +++ b/src/DiscordCLI/Commands.cs @@ -134,7 +134,7 @@ namespace DiscordCLI { foreach (DiscordMessage message in (textChannel.GetMessagesAsync(10).Result).Reverse()) { - await outputManager.WriteMessage(message, textChannel, GlobalInformation.currentGuild, false); + await outputManager.WriteMessage(message, textChannel, false); } Console.CursorTop--; } @@ -174,7 +174,7 @@ namespace DiscordCLI { foreach (DiscordMessage message in (await dmChannel.GetMessagesAsync(10)).Reverse()) { - await outputManager.WriteMessage(message, dmChannel, GlobalInformation.currentGuild, false); + await outputManager.WriteMessage(message, dmChannel, false); } } catch (Exception ex) @@ -206,28 +206,25 @@ namespace DiscordCLI return; } - DiscordUser discordUser = GlobalInformation.currentGuild?.Members?.FirstOrDefault(user => user.Username.EqualsIgnoreSpacesAndCase(userName)); + DiscordUser discordUser = await GetDiscordUser(userName); - if (discordUser is null) + string status = discordUser?.Presence?.Status.ToString(); + status ??= "N/A"; + + if (discordUser is DiscordMember discordMember) { - discordUser = GlobalInformation.currentGuild?.Members?.FirstOrDefault(user => $"{user.Username}#{user.Discriminator}".EqualsIgnoreSpacesAndCase(userName)); + string infoString = + $"Username: {discordMember.Username}#{discordMember.Discriminator}" + Environment.NewLine + + $"Nickname: {discordMember.Nickname ?? "N/A"}" + Environment.NewLine + + $"Roles: {string.Join(", ", discordMember.Roles.Select(x => x.Name))}" + Environment.NewLine + + $"Status: {status}" + Environment.NewLine + + $"Created at: {discordMember.CreationTimestamp}" + Environment.NewLine + + $"ID: {discordMember.Id}" + Environment.NewLine + + $"Bot: {discordMember.IsBot}"; + Console.WriteLine(infoString); } - - if (discordUser is null) + else if (discordUser is not null) { - discordUser = GlobalInformation.currentGuild?.Members?.FirstOrDefault(user => $"{user.Username}".EqualsIgnoreSpacesAndCase(userName)); - } - - if (discordUser is null) - { - discordUser = GlobalInformation.currentGuild?.Members?.FirstOrDefault(user => $"{user.Nickname}".EqualsIgnoreSpacesAndCase(userName)); - } - - if (discordUser is not null) - { - string status = discordUser.Presence?.Status.ToString(); - status ??= "N/A"; - string infoString = $"Username: {discordUser.Username}#{discordUser.Discriminator}" + Environment.NewLine + $"Status: {status}" + Environment.NewLine + @@ -241,7 +238,23 @@ namespace DiscordCLI ConsoleExt.WriteLine("User not found!", ConsoleColor.Red); } - await Task.CompletedTask; + async Task GetDiscordUser(string name) + { + DiscordUser discordUser = GlobalInformation.currentGuild?.Members?.FirstOrDefault(user => user.Username.EqualsIgnoreSpacesAndCase(userName)); + discordUser ??= GlobalInformation.currentGuild?.Members?.FirstOrDefault(user => $"{user.Username}#{user.Discriminator}".EqualsIgnoreSpacesAndCase(userName)); + discordUser ??= GlobalInformation.currentGuild?.Members?.FirstOrDefault(user => $"{user.Username}".EqualsIgnoreSpacesAndCase(userName)); + discordUser ??= GlobalInformation.currentGuild?.Members?.FirstOrDefault(user => $"{user.Nickname}".EqualsIgnoreSpacesAndCase(userName)); + + if (discordUser is null) + { + IReadOnlyList users = await GlobalInformation.currentGuild.GetAllMembersAsync(); + discordUser ??= users.FirstOrDefault(user => user.Username.EqualsIgnoreSpacesAndCase(userName)); + discordUser ??= users.FirstOrDefault(user => $"{user.Username}#{user.Discriminator}".EqualsIgnoreSpacesAndCase(userName)); + discordUser ??= users.FirstOrDefault(user => $"{user.Username}".EqualsIgnoreSpacesAndCase(userName)); + } + + return discordUser; + } } protected async Task Clear(string args) diff --git a/src/DiscordCLI/CommandsManager.cs b/src/DiscordCLI/CommandsManager.cs index cf7c488..ca0b9cb 100644 --- a/src/DiscordCLI/CommandsManager.cs +++ b/src/DiscordCLI/CommandsManager.cs @@ -80,6 +80,7 @@ namespace DiscordCLI try { await GlobalInformation.currentTextChannel.SendMessageAsync(rawInput); + Console.CursorTop--; Console.Write("\r" + new string(' ', Console.WindowWidth)); } catch (Exception ex) diff --git a/src/DiscordCLI/InputManager.cs b/src/DiscordCLI/InputManager.cs index dc9d256..efc71e4 100644 --- a/src/DiscordCLI/InputManager.cs +++ b/src/DiscordCLI/InputManager.cs @@ -75,15 +75,17 @@ namespace DiscordCLI Console.CursorLeft = infoString.Length + Input.Length - 1; } while (keyInfo.Key != ConsoleKey.Enter); - if (GlobalInformation.currentTextChannel == null && !Input.StartsWith(Prefix)) + if (GlobalInformation.currentTextChannel == null) { + Input = Input.Trim(); + if (!Input.StartsWith(Prefix)) + Input = Prefix + Input; + if (previousInputs.Count > 10) previousInputs.RemoveAt(0); if (previousInputs.Count == 0 || previousInputs[previousInputs.Count - 1] != Input) previousInputs.Add(new string(Input)); - - Input = Prefix + Input; } inputListIndex = 0; diff --git a/src/DiscordCLI/OutputManager.cs b/src/DiscordCLI/OutputManager.cs index 0ef8585..7ccd5b4 100644 --- a/src/DiscordCLI/OutputManager.cs +++ b/src/DiscordCLI/OutputManager.cs @@ -23,18 +23,18 @@ namespace DiscordCLI client = discordClient; } - public async Task WriteMessage(DiscordMessage message, DiscordChannel channel, DiscordGuild guild, bool writeInfo = true) + public async Task WriteMessage(DiscordMessage message, DiscordChannel channel, bool writeInfo = true) { try { - if (channel?.Id != GlobalInformation.currentTextChannel?.Id) + if (message.ChannelId != GlobalInformation.currentTextChannel?.Id) return; DiscordUser user = message.Author; if (GlobalInformation.currentGuild is not null) { - DiscordMember discordMember = await guild.GetMemberAsync(user.Id); + DiscordMember discordMember = await channel.Guild.GetMemberAsync(user.Id); DiscordColor discordColor = discordMember.Color; Color color = Color.FromArgb(discordColor.R, discordColor.G, discordColor.B); @@ -104,7 +104,7 @@ namespace DiscordCLI { if (user?.Mention is not null) { - if (match.Value == user.Mention) + if (match.Value == user.Mention.Replace("!", string.Empty)) { message = message.Replace(match.Value, $"\0@{user.Username}#{user.Discriminator}\0"); } diff --git a/src/DiscordCLI/Program.cs b/src/DiscordCLI/Program.cs index 28b03c4..1c48df5 100644 --- a/src/DiscordCLI/Program.cs +++ b/src/DiscordCLI/Program.cs @@ -4,9 +4,7 @@ using System.Threading.Tasks; using System; using DSharpPlus.Exceptions; using Stone_Red_Utilities.ConsoleExtentions; -using System.Reflection; using AlwaysUpToDate; -using System.Runtime.InteropServices; using System.Diagnostics; namespace DiscordCLI @@ -64,7 +62,6 @@ namespace DiscordCLI Token = token, TokenType = TokenType.User, }); - client.MessageCreated += Client_MessageCreated; await client.ConnectAsync(); @@ -119,7 +116,7 @@ namespace DiscordCLI { try { - await outputManager.WriteMessage(e.Message, e.Channel, e.Guild); + await outputManager.WriteMessage(e.Message, e.Channel); } catch (Exception ex) { diff --git a/src/DiscordCLI/bin/Debug/net5.0/DiscordCLI.dll b/src/DiscordCLI/bin/Debug/net5.0/DiscordCLI.dll index 79f4dbb..05832eb 100644 Binary files a/src/DiscordCLI/bin/Debug/net5.0/DiscordCLI.dll and b/src/DiscordCLI/bin/Debug/net5.0/DiscordCLI.dll differ diff --git a/src/DiscordCLI/bin/Debug/net5.0/DiscordCLI.pdb b/src/DiscordCLI/bin/Debug/net5.0/DiscordCLI.pdb index 4d872e1..d50b9ab 100644 Binary files a/src/DiscordCLI/bin/Debug/net5.0/DiscordCLI.pdb and b/src/DiscordCLI/bin/Debug/net5.0/DiscordCLI.pdb differ diff --git a/src/DiscordCLI/bin/Debug/net5.0/ref/DiscordCLI.dll b/src/DiscordCLI/bin/Debug/net5.0/ref/DiscordCLI.dll index 4fde162..f0dee32 100644 Binary files a/src/DiscordCLI/bin/Debug/net5.0/ref/DiscordCLI.dll and b/src/DiscordCLI/bin/Debug/net5.0/ref/DiscordCLI.dll differ diff --git a/src/DiscordCLI/bin/Release/net5.0/AlwaysUpToDate.dll_OLD__OLD_ b/src/DiscordCLI/bin/Release/net5.0/AlwaysUpToDate.dll_OLD_ similarity index 100% rename from src/DiscordCLI/bin/Release/net5.0/AlwaysUpToDate.dll_OLD__OLD_ rename to src/DiscordCLI/bin/Release/net5.0/AlwaysUpToDate.dll_OLD_ diff --git a/src/DiscordCLI/bin/Release/net5.0/DiscordCLI.dll_OLD_ b/src/DiscordCLI/bin/Release/net5.0/DiscordCLI.dll_OLD_ new file mode 100644 index 0000000..79f1a4d Binary files /dev/null and b/src/DiscordCLI/bin/Release/net5.0/DiscordCLI.dll_OLD_ differ diff --git a/src/DiscordCLI/bin/Release/net5.0/DiscordCLI.dll_OLD__OLD_ b/src/DiscordCLI/bin/Release/net5.0/DiscordCLI.dll_OLD__OLD_ deleted file mode 100644 index cac6aa3..0000000 Binary files a/src/DiscordCLI/bin/Release/net5.0/DiscordCLI.dll_OLD__OLD_ and /dev/null differ diff --git a/src/DiscordCLI/bin/Release/net5.0/DiscordCLI.exe_OLD__OLD_ b/src/DiscordCLI/bin/Release/net5.0/DiscordCLI.exe_OLD_ similarity index 100% rename from src/DiscordCLI/bin/Release/net5.0/DiscordCLI.exe_OLD__OLD_ rename to src/DiscordCLI/bin/Release/net5.0/DiscordCLI.exe_OLD_ diff --git a/src/DiscordCLI/bin/Release/net5.0/Stone_Red-C-Sharp-Utilities.dll_OLD__OLD_ b/src/DiscordCLI/bin/Release/net5.0/Stone_Red-C-Sharp-Utilities.dll_OLD_ similarity index 100% rename from src/DiscordCLI/bin/Release/net5.0/Stone_Red-C-Sharp-Utilities.dll_OLD__OLD_ rename to src/DiscordCLI/bin/Release/net5.0/Stone_Red-C-Sharp-Utilities.dll_OLD_ diff --git a/src/DiscordCLI/bin/Release/net5.0/ref/DiscordCLI.dll b/src/DiscordCLI/bin/Release/net5.0/ref/DiscordCLI.dll index 0cee045..391e2d4 100644 Binary files a/src/DiscordCLI/bin/Release/net5.0/ref/DiscordCLI.dll and b/src/DiscordCLI/bin/Release/net5.0/ref/DiscordCLI.dll differ diff --git a/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.AssemblyInfo.cs b/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.AssemblyInfo.cs index 4ab551e..a59dc2c 100644 --- a/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.AssemblyInfo.cs +++ b/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.AssemblyInfo.cs @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. // //------------------------------------------------------------------------------ @@ -19,5 +19,5 @@ using System.Reflection; [assembly: System.Reflection.AssemblyTitleAttribute("DiscordCLI")] [assembly: System.Reflection.AssemblyVersionAttribute("0.0.4.0")] -// Generated by the MSBuild WriteCodeFragment class. +// Von der MSBuild WriteCodeFragment-Klasse generiert. diff --git a/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.csproj.AssemblyReference.cache b/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.csproj.AssemblyReference.cache index 8de727b..4956bb7 100644 Binary files a/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.csproj.AssemblyReference.cache and b/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.csproj.AssemblyReference.cache differ diff --git a/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.csproj.FileListAbsolute.txt b/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.csproj.FileListAbsolute.txt index b62ed04..5232413 100644 --- a/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.csproj.FileListAbsolute.txt +++ b/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.csproj.FileListAbsolute.txt @@ -55,7 +55,6 @@ C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\bin\Debug\net5.0\DSharpPl C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\bin\Debug\net5.0\Newtonsoft.Json.dll C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\bin\Debug\net5.0\Stone_Red-C-Sharp-Utilities.dll C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\bin\Debug\net5.0\System.Text.Json.dll -C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\obj\Debug\net5.0\DiscordCLI.csproj.AssemblyReference.cache C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\obj\Debug\net5.0\DiscordCLI.GeneratedMSBuildEditorConfig.editorconfig C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\obj\Debug\net5.0\DiscordCLI.AssemblyInfoInputs.cache C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\obj\Debug\net5.0\DiscordCLI.AssemblyInfo.cs @@ -65,3 +64,4 @@ C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\obj\Debug\net5.0\DiscordC C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\obj\Debug\net5.0\ref\DiscordCLI.dll C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\obj\Debug\net5.0\DiscordCLI.pdb C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\obj\Debug\net5.0\DiscordCLI.genruntimeconfig.cache +C:\Users\David\Programmieren\DiscordCLI\src\DiscordCLI\obj\Debug\net5.0\DiscordCLI.csproj.AssemblyReference.cache diff --git a/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.dll b/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.dll index 79f4dbb..05832eb 100644 Binary files a/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.dll and b/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.dll differ diff --git a/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.pdb b/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.pdb index 4d872e1..d50b9ab 100644 Binary files a/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.pdb and b/src/DiscordCLI/obj/Debug/net5.0/DiscordCLI.pdb differ diff --git a/src/DiscordCLI/obj/Debug/net5.0/ref/DiscordCLI.dll b/src/DiscordCLI/obj/Debug/net5.0/ref/DiscordCLI.dll index 4fde162..f0dee32 100644 Binary files a/src/DiscordCLI/obj/Debug/net5.0/ref/DiscordCLI.dll and b/src/DiscordCLI/obj/Debug/net5.0/ref/DiscordCLI.dll differ diff --git a/src/DiscordCLI/obj/Release/net5.0/DiscordCLI.dll b/src/DiscordCLI/obj/Release/net5.0/DiscordCLI.dll index cac6aa3..79f1a4d 100644 Binary files a/src/DiscordCLI/obj/Release/net5.0/DiscordCLI.dll and b/src/DiscordCLI/obj/Release/net5.0/DiscordCLI.dll differ diff --git a/src/DiscordCLI/obj/Release/net5.0/DiscordCLI.pdb b/src/DiscordCLI/obj/Release/net5.0/DiscordCLI.pdb index 9f88022..7c681be 100644 Binary files a/src/DiscordCLI/obj/Release/net5.0/DiscordCLI.pdb and b/src/DiscordCLI/obj/Release/net5.0/DiscordCLI.pdb differ diff --git a/src/DiscordCLI/obj/Release/net5.0/ref/DiscordCLI.dll b/src/DiscordCLI/obj/Release/net5.0/ref/DiscordCLI.dll index 0cee045..391e2d4 100644 Binary files a/src/DiscordCLI/obj/Release/net5.0/ref/DiscordCLI.dll and b/src/DiscordCLI/obj/Release/net5.0/ref/DiscordCLI.dll differ