-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSystemLogFilter.cs
36 lines (31 loc) · 967 Bytes
/
SystemLogFilter.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PluginSDK;
namespace ChatModule
{
public abstract class SystemLogFilter
{
private static List<SystemLogFilter> filters;
protected internal static SystemBot Bot { get; internal set; }
public SystemLogFilter()
{
if (filters == null)
filters = new List<SystemLogFilter>();
filters.Add(this);
}
public static List<ChatMessage> filter(LogMessage message)
{
List<ChatMessage> messages = new List<ChatMessage>();
foreach(SystemLogFilter filter in filters)
{
ChatMessage newMessage = filter.refine(message);
if (newMessage != null)
messages.Add(newMessage);
}
return messages;
}
public abstract ChatMessage refine(LogMessage message);
}
}