Preparing for testing
This commit is contained in:
parent
69f9da5313
commit
6a52a2ba80
1 changed files with 62 additions and 1 deletions
|
@ -1,10 +1,71 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Discord.WebSocket;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Noikoio.RegexBot.ConfigItem;
|
||||
|
||||
namespace Noikoio.RegexBot.Module.ModLogs
|
||||
{
|
||||
class ModLogs
|
||||
/// <summary>
|
||||
/// Logs certain events of note to a database for moderators to keep track of user behavior.
|
||||
/// Makes use of a helper class, <see cref="MessageCache"/>.
|
||||
/// </summary>
|
||||
class ModLogs : BotModule
|
||||
{
|
||||
public override string Name => "ModLogs";
|
||||
|
||||
private readonly MessageCache _msgCacheInstance;
|
||||
|
||||
public ModLogs(DiscordSocketClient client) : base(client)
|
||||
{
|
||||
if (!RegexBot.Config.DatabaseAvailable) return; // do nothing; warn in ProcessConfiguration
|
||||
|
||||
_msgCacheInstance = new MessageCache(client, Log, GetConfig);
|
||||
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
[ConfigSection("ModLogs")]
|
||||
public override async Task<object> ProcessConfiguration(JToken configSection)
|
||||
{
|
||||
if (configSection.Type != JTokenType.Object)
|
||||
throw new RuleImportException("Configuration for this section is invalid.");
|
||||
var conf = (JObject)configSection;
|
||||
|
||||
if (!RegexBot.Config.DatabaseAvailable)
|
||||
{
|
||||
await Log("Database access is not available. This module will not load.");
|
||||
return null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// MessageCache debug: will store an EntityName or die trying
|
||||
EntityName? mctarget = new EntityName(conf["mctarget"].Value<string>(), EntityType.Channel);
|
||||
await Log("Enabled MessageCache test on " + mctarget.Value.ToString());
|
||||
return mctarget;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// well, not really die
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Ideas:
|
||||
* -Reporting:
|
||||
* --Reporting channel
|
||||
* --Types to report
|
||||
* ---Ignored if no reporting channel has been set
|
||||
* ---Default to join, quit, kick, ban, ...
|
||||
* ---Any override will disregard defaults
|
||||
* -also how will commands work? how to tie into commands mod?
|
||||
* --modlogs command should also only report a subset of things. custom.
|
||||
* ---ex: don't report nick changes
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue