/// <summary>
        /// Registers a webhook with this client. This retrieves a webhook based on the ID and token supplied.
        /// </summary>
        /// <param name="id">The ID of the webhook to add.</param>
        /// <param name="token">The token of the webhook to add.</param>
        /// <returns>The registered webhook.</returns>
        public async Task <DiscordWebhook> AddWebhookAsync(ulong id, string token)
        {
            if (string.IsNullOrWhiteSpace(token))
            {
                throw new ArgumentNullException(nameof(token));
            }
            token = token.Trim();

            if (_hooks.Any(x => x.Id == id))
            {
                throw new InvalidOperationException("This webhook is registered with this client.");
            }

            var wh = await _apiclient.GetWebhookWithTokenAsync(id, token).ConfigureAwait(false);

            _hooks.Add(wh);

            return(wh);
        }