Adding dBot and AJ
This commit is contained in:
parent
9dfc55d1e9
commit
ad7a75b38e
@ -5,8 +5,12 @@
|
|||||||
<e p="C:\Users\sean\.Rider2019.3\system\resharper-host\local\Transient\ReSharperHost\v193\SolutionCaches\_ChaosBot.-595872383.00" t="ExcludeRecursive" />
|
<e p="C:\Users\sean\.Rider2019.3\system\resharper-host\local\Transient\ReSharperHost\v193\SolutionCaches\_ChaosBot.-595872383.00" t="ExcludeRecursive" />
|
||||||
<e p="C:\Users\sean\OneDrive\Documents\Development\DotNet\ChaosBot" t="IncludeFlat">
|
<e p="C:\Users\sean\OneDrive\Documents\Development\DotNet\ChaosBot" t="IncludeFlat">
|
||||||
<e p="ChaosBot" t="IncludeRecursive">
|
<e p="ChaosBot" t="IncludeRecursive">
|
||||||
|
<e p="appsettings.json" t="Include" />
|
||||||
<e p="bin" t="ExcludeRecursive" />
|
<e p="bin" t="ExcludeRecursive" />
|
||||||
<e p="ChaosBot.csproj" t="IncludeRecursive" />
|
<e p="ChaosBot.csproj" t="IncludeRecursive" />
|
||||||
|
<e p="Discord" t="Include">
|
||||||
|
<e p="DBot.cs" t="Include" />
|
||||||
|
</e>
|
||||||
<e p="Logging.cs" t="Include" />
|
<e p="Logging.cs" t="Include" />
|
||||||
<e p="obj" t="ExcludeRecursive">
|
<e p="obj" t="ExcludeRecursive">
|
||||||
<e p="Debug" t="Include">
|
<e p="Debug" t="Include">
|
||||||
|
|||||||
@ -7,7 +7,16 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Discord.Net" Version="2.2.0" />
|
<PackageReference Include="Discord.Net" Version="2.2.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Configuration" Version="3.0.0" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" />
|
||||||
<PackageReference Include="NLog" Version="4.7.2" />
|
<PackageReference Include="NLog" Version="4.7.2" />
|
||||||
|
<PackageReference Include="NLog.Extensions.Logging" Version="1.6.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Update="appsettings.json">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
72
ChaosBot/Discord/DBot.cs
Normal file
72
ChaosBot/Discord/DBot.cs
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
using NLog;
|
||||||
|
using System;
|
||||||
|
using Discord;
|
||||||
|
using Discord.WebSocket;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
|
||||||
|
|
||||||
|
namespace ChaosBot.Discord
|
||||||
|
{
|
||||||
|
public class DBot
|
||||||
|
{
|
||||||
|
public static DiscordSocketClient _client;
|
||||||
|
private static Logger _logger = Program._logger;
|
||||||
|
|
||||||
|
public static async Task Connect()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Perform Connection
|
||||||
|
*/
|
||||||
|
_client = new DiscordSocketClient();
|
||||||
|
_client.Log += Log;
|
||||||
|
|
||||||
|
await _client.LoginAsync(TokenType.Bot, Program.Cfg.GetValue<string>("Discord:Token"));
|
||||||
|
await _client.StartAsync();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Let's keep the Task open and happy.
|
||||||
|
*/
|
||||||
|
await Task.Delay(-1);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.Error($"dBot.Connect: Exception [{ex}] thrown, <[{ex.Message}]>.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static Task Log(LogMessage msg)
|
||||||
|
{
|
||||||
|
switch (msg.Severity)
|
||||||
|
{
|
||||||
|
case LogSeverity.Critical:
|
||||||
|
_logger.Fatal(msg.Message);
|
||||||
|
break;
|
||||||
|
case LogSeverity.Debug:
|
||||||
|
_logger.Debug(msg.Message);
|
||||||
|
break;
|
||||||
|
case LogSeverity.Error:
|
||||||
|
_logger.Error(msg.Message);
|
||||||
|
break;
|
||||||
|
case LogSeverity.Info:
|
||||||
|
_logger.Info(msg.Message);
|
||||||
|
break;
|
||||||
|
case LogSeverity.Warning:
|
||||||
|
_logger.Warn(msg.Message);
|
||||||
|
break;
|
||||||
|
case LogSeverity.Verbose:
|
||||||
|
_logger.Trace(msg.Message);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
_logger.Trace(msg.Message);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,7 +1,24 @@
|
|||||||
namespace ChaosBot
|
using System;
|
||||||
|
using NLog;
|
||||||
|
using NLog.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace ChaosBot
|
||||||
{
|
{
|
||||||
public class Logging
|
public class Logging
|
||||||
{
|
{
|
||||||
|
public static Logger GenLog()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
LogManager.Configuration = new NLogLoggingConfiguration(Program.Cfg.GetSection("NLog"));
|
||||||
|
|
||||||
|
return LogManager.GetCurrentClassLogger();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,12 +1,51 @@
|
|||||||
using System;
|
using NLog;
|
||||||
|
using System;
|
||||||
|
using Discord;
|
||||||
|
using Discord.WebSocket;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using ChaosBot.Discord;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
|
||||||
|
|
||||||
namespace ChaosBot
|
namespace ChaosBot
|
||||||
{
|
{
|
||||||
class Program
|
internal class Program
|
||||||
{
|
{
|
||||||
static void Main(string[] args)
|
public static IConfiguration Cfg { get; set; }
|
||||||
|
public static Logger _logger;
|
||||||
|
|
||||||
|
public static void Main(string[] args)
|
||||||
|
=> new Program().MainFunction().GetAwaiter().GetResult();
|
||||||
|
|
||||||
|
private async Task MainFunction()
|
||||||
{
|
{
|
||||||
Console.WriteLine("Hello World!");
|
try
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Load configuration from AppSettings.Json and save as Cfg
|
||||||
|
*/
|
||||||
|
Cfg = new ConfigurationBuilder()
|
||||||
|
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
|
||||||
|
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true).Build();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize the _logger for logging purposes
|
||||||
|
*/
|
||||||
|
_logger = Logging.GenLog();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize the Discord Client and Login
|
||||||
|
*/
|
||||||
|
_logger.Info($"Starting Up {Cfg.GetValue<string>("Bot:Name")} v{Cfg.GetValue<string>("Bot:Version")}");
|
||||||
|
|
||||||
|
var DiscordBot = DBot.Connect();
|
||||||
|
|
||||||
|
await DiscordBot;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.Error(ex, $"Stopped program because of exception");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
32
ChaosBot/appsettings.json
Normal file
32
ChaosBot/appsettings.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"Bot": {
|
||||||
|
"Name": "ChaosBot",
|
||||||
|
"Version": "1.0"
|
||||||
|
},
|
||||||
|
"Discord": {
|
||||||
|
"Secret": "TPtJeNzPXPM0vptm3igbh8_G3KEfbPdA",
|
||||||
|
"ClientID": "717523478890414090",
|
||||||
|
"Token": "NzE3NTIzNDc4ODkwNDE0MDkw.XtbkDw.RpsISqttv27m2Pknq3c5nEVvXWg"
|
||||||
|
},
|
||||||
|
"NLog": {
|
||||||
|
"internalLogLevel": "Info",
|
||||||
|
"internalLogFile": "c:\\temp\\internal-nlog.txt",
|
||||||
|
"extensions": {
|
||||||
|
"NLog.Web.AspNetCore": {
|
||||||
|
"assembly": "NLog.Web.AspNetCore"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"targets": {
|
||||||
|
"loggerconsole": {
|
||||||
|
"type": "console"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rules": [
|
||||||
|
{
|
||||||
|
"logger": "*",
|
||||||
|
"minLevel": "Trace",
|
||||||
|
"writeTo": "loggerconsole"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user