Split IMessage into IUserMessage and ISystemMessage

This commit is contained in:
RogueException
2016-08-27 17:30:23 -03:00
parent 36d3257440
commit 23a0316252
36 changed files with 464 additions and 242 deletions

View File

@@ -9,7 +9,7 @@ namespace Discord.Commands
internal class ChannelTypeReader<T> : TypeReader
where T : class, IChannel
{
public override async Task<TypeReaderResult> Read(IMessage context, string input)
public override async Task<TypeReaderResult> Read(IUserMessage context, string input)
{
var guild = (context.Channel as IGuildChannel)?.Guild;

View File

@@ -42,7 +42,7 @@ namespace Discord.Commands
_enumsByValue = byValueBuilder.ToImmutable();
}
public override Task<TypeReaderResult> Read(IMessage context, string input)
public override Task<TypeReaderResult> Read(IUserMessage context, string input)
{
T baseValue;
object enumValue;

View File

@@ -3,16 +3,17 @@ using System.Threading.Tasks;
namespace Discord.Commands
{
internal class MessageTypeReader : TypeReader
internal class MessageTypeReader<T> : TypeReader
where T : class, IMessage
{
public override Task<TypeReaderResult> Read(IMessage context, string input)
public override Task<TypeReaderResult> Read(IUserMessage context, string input)
{
ulong id;
//By Id (1.0)
if (ulong.TryParse(input, NumberStyles.None, CultureInfo.InvariantCulture, out id))
{
var msg = context.Channel.GetCachedMessage(id);
var msg = context.Channel.GetCachedMessage(id) as T;
if (msg != null)
return Task.FromResult(TypeReaderResult.FromSuccess(msg));
}

View File

@@ -9,7 +9,7 @@ namespace Discord.Commands
internal class RoleTypeReader<T> : TypeReader
where T : class, IRole
{
public override Task<TypeReaderResult> Read(IMessage context, string input)
public override Task<TypeReaderResult> Read(IUserMessage context, string input)
{
var guild = (context.Channel as IGuildChannel)?.Guild;
ulong id;

View File

@@ -11,7 +11,7 @@ namespace Discord.Commands
_tryParse = PrimitiveParsers.Get<T>();
}
public override Task<TypeReaderResult> Read(IMessage context, string input)
public override Task<TypeReaderResult> Read(IUserMessage context, string input)
{
T value;
if (_tryParse(input, out value))

View File

@@ -4,6 +4,6 @@ namespace Discord.Commands
{
public abstract class TypeReader
{
public abstract Task<TypeReaderResult> Read(IMessage context, string input);
public abstract Task<TypeReaderResult> Read(IUserMessage context, string input);
}
}

View File

@@ -9,7 +9,7 @@ namespace Discord.Commands
internal class UserTypeReader<T> : TypeReader
where T : class, IUser
{
public override async Task<TypeReaderResult> Read(IMessage context, string input)
public override async Task<TypeReaderResult> Read(IUserMessage context, string input)
{
var results = new Dictionary<ulong, TypeReaderValue>();
var guild = (context.Channel as IGuildChannel)?.Guild;