Updated Logger and Plugin Loading
This commit is contained in:
@@ -111,5 +111,13 @@ namespace DiscordBotCore
|
||||
}
|
||||
|
||||
public static string GetResourceFullPath() => _ResourcesFolder;
|
||||
|
||||
public static string GetPluginFullPath(string path)
|
||||
{
|
||||
string result = Path.Combine(_PluginsFolder, path);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static string GetPluginFullPath() => _PluginsFolder;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,4 @@ public interface ICommandAction
|
||||
public InternalActionRunType RunType { get; }
|
||||
|
||||
public Task Execute(string[]? args);
|
||||
|
||||
public void ExecuteStartup() { }
|
||||
}
|
||||
|
||||
@@ -67,6 +67,9 @@ internal class Loader
|
||||
_ => PluginType.UNKNOWN
|
||||
};
|
||||
|
||||
if (pluginType == PluginType.UNKNOWN)
|
||||
throw new Exception($"Unknown plugin type for plugin with type {type.FullName} [{type.Assembly}]");
|
||||
|
||||
OnPluginLoaded?.Invoke(new PluginLoadResultData(type.FullName, pluginType, true, plugin: plugin));
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -72,7 +72,7 @@ public class PluginLoader
|
||||
case PluginType.ACTION:
|
||||
ICommandAction action = (ICommandAction)result.Plugin;
|
||||
if (action.RunType == InternalActionRunType.ON_STARTUP || action.RunType == InternalActionRunType.BOTH)
|
||||
action.ExecuteStartup();
|
||||
action.Execute(null);
|
||||
|
||||
if(action.RunType == InternalActionRunType.ON_CALL || action.RunType == InternalActionRunType.BOTH)
|
||||
Actions.Add(action);
|
||||
|
||||
@@ -6,6 +6,7 @@ namespace DiscordBotCore.Others.Logger
|
||||
{
|
||||
internal sealed class LogMessage : ILogMessage
|
||||
{
|
||||
private static readonly string _DefaultLogMessageSender = "\b";
|
||||
public string Message { get; set; }
|
||||
public DateTime ThrowTime { get; set; }
|
||||
public string SenderName { get; set; }
|
||||
@@ -22,7 +23,7 @@ namespace DiscordBotCore.Others.Logger
|
||||
public LogMessage(string message, object sender)
|
||||
{
|
||||
Message = message;
|
||||
SenderName = sender.GetType().FullName ?? sender.GetType().Name;
|
||||
SenderName = sender is string && sender as string == string.Empty ? _DefaultLogMessageSender : sender.GetType().FullName ?? sender.GetType().Name;
|
||||
ThrowTime = DateTime.Now;
|
||||
LogMessageType = LogType.INFO;
|
||||
}
|
||||
@@ -30,7 +31,7 @@ namespace DiscordBotCore.Others.Logger
|
||||
public LogMessage(string message, object sender, DateTime throwTime)
|
||||
{
|
||||
Message = message;
|
||||
SenderName = sender.GetType().FullName ?? sender.GetType().Name;
|
||||
SenderName = sender is string && sender as string == string.Empty ? _DefaultLogMessageSender : sender.GetType().FullName ?? sender.GetType().Name;
|
||||
ThrowTime = throwTime;
|
||||
LogMessageType = LogType.INFO;
|
||||
}
|
||||
@@ -38,7 +39,7 @@ namespace DiscordBotCore.Others.Logger
|
||||
public LogMessage(string message, object sender, LogType logMessageType)
|
||||
{
|
||||
Message = message;
|
||||
SenderName = sender.GetType().FullName ?? sender.GetType().Name;
|
||||
SenderName = sender is string && sender as string == string.Empty ? _DefaultLogMessageSender : sender.GetType().FullName ?? sender.GetType().Name;
|
||||
ThrowTime = DateTime.Now;
|
||||
LogMessageType = logMessageType;
|
||||
|
||||
@@ -48,7 +49,7 @@ namespace DiscordBotCore.Others.Logger
|
||||
{
|
||||
Message = message;
|
||||
ThrowTime = throwTime;
|
||||
SenderName = sender.GetType().FullName ?? sender.GetType().Name;
|
||||
SenderName = sender is string && sender as string == string.Empty ? _DefaultLogMessageSender : sender.GetType().FullName ?? sender.GetType().Name;
|
||||
LogMessageType = logMessageType;
|
||||
}
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ public sealed class Logger : ILogger
|
||||
LogToFile(messageAsString);
|
||||
}
|
||||
|
||||
public void Log(string message) => Log(new LogMessage(message, string.Empty, LogType.INFO));
|
||||
public void Log(string message, LogType logType, string format) => Log(new LogMessage(message, logType), format);
|
||||
public void Log(string message, LogType logType) => Log(new LogMessage(message, logType));
|
||||
public void Log(string message, object Sender) => Log(new LogMessage(message, Sender));
|
||||
|
||||
Reference in New Issue
Block a user