diff --git a/src/Discord.Net/DiscordConfig.cs b/src/Discord.Net/DiscordConfig.cs
index b809ec8e2..15157e7ff 100644
--- a/src/Discord.Net/DiscordConfig.cs
+++ b/src/Discord.Net/DiscordConfig.cs
@@ -5,6 +5,13 @@ using System.Text;
namespace Discord
{
+ public enum DiscordMode
+ {
+ /// Enable bot-only functions. Use this mode if you are creating a bot, automated application, or interface.
+ Bot = 0,
+ /// Enables client-only functions. Use this mode if you are creating a custom client.
+ Client
+ }
public enum LogSeverity : byte
{
Error = 1,
@@ -45,11 +52,13 @@ namespace Discord
/// Enables or disables the default event logger.
public bool LogEvents { get { return _logEvents; } set { SetValue(ref _logEvents, value); } }
private bool _logEvents = true;
+ /// Specifies the mode that this application should run in.
+ public DiscordMode Mode { get { return _mode; } set { SetValue(ref _mode, value); } }
+ private DiscordMode _mode = DiscordMode.Bot;
/// User Agent string to use when connecting to Discord.
[JsonIgnore]
- public string UserAgent { get { return _userAgent; } }
- private string _userAgent;
+ public string UserAgent { get; private set; }
//Rest
@@ -120,7 +129,7 @@ namespace Discord
builder.Append(' ');
}
builder.Append($"DiscordBot ({LibUrl}, v{LibVersion})");
- _userAgent = builder.ToString();
+ UserAgent = builder.ToString();
}
}
}
diff --git a/src/Discord.Net/Models/Message.cs b/src/Discord.Net/Models/Message.cs
index 0e6fe719a..665ac8397 100644
--- a/src/Discord.Net/Models/Message.cs
+++ b/src/Discord.Net/Models/Message.cs
@@ -340,6 +340,9 @@ namespace Discord
public Task Acknowledge()
{
+ if (Client.Config.Mode != DiscordMode.Client)
+ throw new InvalidOperationException("Message.Acknowledge may only be used in Client mode.");
+
if (User.Id != Client.CurrentUser.Id)
return Client.ClientAPI.Send(new AckMessageRequest(Channel.Id, Id));
else