using Discord;
namespace NadekoBot.Medusa;
///
/// Commands which take this class as a first parameter can be executed in both DMs and Servers
///
public abstract class AnyContext
{
///
/// Channel from the which the command is invoked
///
public abstract IMessageChannel Channel { get; }
///
/// Message which triggered the command
///
public abstract IUserMessage Message { get; }
///
/// The user who invoked the command
///
public abstract IUser User { get; }
///
/// Bot user
///
public abstract ISelfUser Bot { get; }
///
/// Provides access to strings used by this medusa
///
public abstract IMedusaStrings Strings { get; }
///
/// Gets a formatted localized string using a key and arguments which should be formatted in
///
/// The key of the string as specified in localization files
/// Arguments (if any) to format in
/// A formatted localized string
public abstract string GetText(string key, object[]? args = null);
}