From 11e7c064024b7ab5f62d47ea59acb2459c5c3d03 Mon Sep 17 00:00:00 2001 From: RogueException Date: Thu, 7 Jan 2016 03:20:46 -0400 Subject: [PATCH] Added DiscordConfig.Mode --- src/Discord.Net/DiscordConfig.cs | 15 ++++++++++++--- src/Discord.Net/Models/Message.cs | 3 +++ 2 files changed, 15 insertions(+), 3 deletions(-) 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