/// <summary> /// Gets the list of all permissions including inheritences /// </summary> /// <returns>The list of all permissions including inheritences</returns> public string[] GetPermissions() { List <string> permissions = new List <string>(); permissions.AddRange(Permissions); PointBlankTools.ForeachLoop <PointBlankGroup>(Inherits, delegate(int index, PointBlankGroup value) { PointBlankTools.ForeachLoop <string>(value.GetPermissions(), delegate(int i, string v) { if (permissions.Contains(v)) { return; } permissions.Add(v); }); }); return(permissions.ToArray()); }
/// <summary> /// Sends the generated message to the discord webhook /// </summary> /// <param name="message">The generated message to send</param> /// <param name="Async">Should sending be asynced</param> /// <returns>Was the message sent successfully</returns> public bool Send(JObject message, bool Async = true) { if (message == null) { return(false); } if ((DateTime.Now - LastLimit).TotalMilliseconds < 0) { QueuedMessages.Enqueue(message); return(false); } JObject obj = new JObject { { "username", Name } }; if (!string.IsNullOrEmpty(Avatar)) { obj.Add("avatar_url", Avatar); } obj.Add("tts", false); obj.Add("embeds", new JArray() { message }); FlushQueue(Async); if (Async) { Client.UploadStringAsync(URL, obj.ToString(Formatting.None)); } else { Client.UploadString(URL.AbsoluteUri, obj.ToString(Formatting.None)); } if (int.Parse(Client.ResponseHeaders["X-RateLimit-Remaining"]) < 1) { LastLimit = PointBlankTools.FromUnixTime(long.Parse(Client.ResponseHeaders["X-RateLimit-Reset"])); } return(Client.LastHTTPCode == EDiscordHttpCodes.OK && Client.LastHTTPCode == EDiscordHttpCodes.NO_CONTENT); }