Added support for custom ModuleBase command contexts. Added SocketCommandContext/RpcCommandContext.
This commit is contained in:
29
src/Discord.Net.Rpc/Commands/RpcCommandContext.cs
Normal file
29
src/Discord.Net.Rpc/Commands/RpcCommandContext.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using Discord.Rpc;
|
||||
|
||||
namespace Discord.Commands
|
||||
{
|
||||
public class RpcCommandContext : ICommandContext
|
||||
{
|
||||
public DiscordRpcClient Client { get; }
|
||||
public IMessageChannel Channel { get; }
|
||||
public RpcUser User { get; }
|
||||
public RpcUserMessage Message { get; }
|
||||
|
||||
public bool IsPrivate => Channel is IPrivateChannel;
|
||||
|
||||
public RpcCommandContext(DiscordRpcClient client, RpcUserMessage msg)
|
||||
{
|
||||
Client = client;
|
||||
Channel = msg.Channel;
|
||||
User = msg.Author;
|
||||
Message = msg;
|
||||
}
|
||||
|
||||
//ICommandContext
|
||||
IDiscordClient ICommandContext.Client => Client;
|
||||
IGuild ICommandContext.Guild => null;
|
||||
IMessageChannel ICommandContext.Channel => Channel;
|
||||
IUser ICommandContext.User => User;
|
||||
IUserMessage ICommandContext.Message => Message;
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ namespace Discord.Rpc
|
||||
|
||||
public DateTimeOffset Timestamp => DateTimeUtils.FromTicks(_timestampTicks);
|
||||
|
||||
internal RpcMessage(DiscordRpcClient discord, ulong id, IMessageChannel channel, RpcUser author)
|
||||
internal RpcMessage(DiscordRpcClient discord, ulong id, RestVirtualMessageChannel channel, RpcUser author)
|
||||
: base(discord, id)
|
||||
{
|
||||
Channel = channel;
|
||||
@@ -62,7 +62,9 @@ namespace Discord.Rpc
|
||||
=> MessageHelper.DeleteAsync(this, Discord, options);
|
||||
|
||||
public override string ToString() => Content;
|
||||
|
||||
|
||||
//IMessage
|
||||
IMessageChannel IMessage.Channel => Channel;
|
||||
MessageType IMessage.Type => MessageType.Default;
|
||||
IUser IMessage.Author => Author;
|
||||
IReadOnlyCollection<IAttachment> IMessage.Attachments => Attachments;
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace Discord.Rpc
|
||||
{
|
||||
public MessageType Type { get; private set; }
|
||||
|
||||
internal RpcSystemMessage(DiscordRpcClient discord, ulong id, IMessageChannel channel, RpcUser author)
|
||||
internal RpcSystemMessage(DiscordRpcClient discord, ulong id, RestVirtualMessageChannel channel, RpcUser author)
|
||||
: base(discord, id, channel, author)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace Discord.Rpc
|
||||
public override IReadOnlyCollection<ITag> Tags => _tags;
|
||||
public IReadOnlyDictionary<Emoji, int> Reactions => ImmutableDictionary.Create<Emoji, int>();
|
||||
|
||||
internal RpcUserMessage(DiscordRpcClient discord, ulong id, IMessageChannel channel, RpcUser author)
|
||||
internal RpcUserMessage(DiscordRpcClient discord, ulong id, RestVirtualMessageChannel channel, RpcUser author)
|
||||
: base(discord, id, channel, author)
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user