This commit is contained in:
2022-08-16 16:14:25 +03:00
parent 2fcd86cf12
commit 1f1983480a
32 changed files with 195 additions and 65 deletions

View File

@@ -67,9 +67,9 @@ namespace PluginManager
public static PluginType GetPluginType(string pluginName)
{
foreach (var tuple in InstalledPlugins)
{
if (tuple.Item1 == pluginName) return tuple.Item2;
}
if (tuple.Item1 == pluginName)
return tuple.Item2;
return PluginType.Unknown;
}

View File

@@ -1,4 +1,5 @@
using Discord.Commands;
using System.Collections.Generic;
using Discord.Commands;
using Discord.WebSocket;
namespace PluginManager.Interfaces;
@@ -11,6 +12,11 @@ public interface DBCommand
/// </summary>
string Command { get; }
/// <summary>
/// Command aliases. Users may use this to execute the command
/// </summary>
List<string>? Aliases { get; }
/// <summary>
/// Command description
/// </summary>
@@ -44,8 +50,5 @@ public interface DBCommand
/// <param name="message">The message that the user types</param>
/// <param name="client">The discord client of the bot</param>
/// <param name="isDM">true if the message was sent from DM, otherwise false. It is always false if canUseDM is false</param>
void Execute(SocketCommandContext context,
SocketMessage message,
DiscordSocketClient client,
bool isDM);
void Execute(SocketCommandContext context, SocketMessage message, DiscordSocketClient client, bool isDM);
}

View File

@@ -44,8 +44,8 @@ public class Command
public class ConsoleCommand
{
public string CommandName { get; set; }
public string Description { get; set; }
public string Usage { get; set; }
public Action<string[]> Action { get; set; }
public string CommandName { get; init; }
public string Description { get; init; }
public string Usage { get; init; }
public Action<string[]> Action { get; init; }
}

View File

@@ -233,15 +233,15 @@ public class ConsoleCommandsHandler
}
);
AddCommand("sd", "Shuts down the discord bot", async () =>
AddCommand("sd", "Shuts down the discord bot", () =>
{
if (client is null)
return;
await client.StopAsync();
await client.DisposeAsync();
client.StopAsync();
client.DisposeAsync();
Config.SaveConfig();
Console.WriteLine("Bot is closing in 2 seconds ! Please wait to save data !");
await Task.Delay(2000);
Thread.Sleep(2000);
Environment.Exit(0);
}
);
@@ -268,7 +268,7 @@ public class ConsoleCommandsHandler
public static bool CommandExists(string command)
{
return !(GetCommand(command) is null);
return GetCommand(command) is not null;
}
public static ConsoleCommand? GetCommand(string command)

View File

@@ -57,7 +57,7 @@ namespace PluginManager.Others
if (!File.Exists(archFile)) throw new FileNotFoundException("Failed to load file !");
using ZipArchive archive = ZipFile.OpenRead(archFile);
ZipArchiveEntry? entry = archive.GetEntry(FileName);
ZipArchiveEntry? entry = archive.GetEntry(FileName);
return entry?.Open();
}
@@ -91,8 +91,8 @@ namespace PluginManager.Others
/// <returns>A string built based on the array</returns>
public static string MergeStrings(this string[] s, int indexToStart)
{
string r = "";
int len = s.Length;
string r = "";
int len = s.Length;
if (len <= indexToStart) return "";
for (int i = indexToStart; i < len - 1; ++i)
{
@@ -142,9 +142,9 @@ namespace PluginManager.Others
if (!stream.CanRead) throw new InvalidOperationException("The stream is not readable.");
if (!destination.CanWrite) throw new ArgumentException("Destination stream is not writable", nameof(destination));
byte[] buffer = new byte[bufferSize];
long totalBytesRead = 0;
int bytesRead;
byte[] buffer = new byte[bufferSize];
long totalBytesRead = 0;
int bytesRead;
while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length, cancellationToken).ConfigureAwait(false)) != 0)
{
await destination.WriteAsync(buffer, 0, bytesRead, cancellationToken).ConfigureAwait(false);
@@ -171,11 +171,11 @@ namespace PluginManager.Others
{
if (type == UnzipProgressType.PercentageFromNumberOfFiles)
{
int totalZIPFiles = archive.Entries.Count();
int totalZIPFiles = archive.Entries.Count();
int currentZIPFile = 0;
foreach (ZipArchiveEntry entry in archive.Entries)
{
if (entry.FullName.EndsWith("/"))
if (entry.FullName.EndsWith("/")) // it is a folder
Directory.CreateDirectory(Path.Combine(folder, entry.FullName));
else
@@ -335,7 +335,7 @@ namespace PluginManager.Others
using (MD5 md5 = MD5.Create())
{
byte[] inputBytes = Encoding.ASCII.GetBytes(input);
byte[] hashBytes = md5.ComputeHash(inputBytes);
byte[] hashBytes = md5.ComputeHash(inputBytes);
return Convert.ToHexString(hashBytes);
}
}