string[] listPerms(ChannelPermission?channel, GuildPermission?guild) { var ls = new List <string>(); var flags = new List <ulong>(); if (channel != null) { var a = new ChannelPermissions((ulong)channel); foreach (var x in a.ToList()) { ls.Add(x.ToString()); flags.Add((ulong)x); } } if (guild != null) { var b = new GuildPermissions((ulong)guild); foreach (var x in b.ToList()) { if (!flags.Contains((ulong)x)) { ls.Add(x.ToString()); } } } return(ls.ToArray()); }
/// <summary> /// Casts the <see cref="ChannelPermissions"/> struct to the <see cref="ChannelPermission"/> enum. /// </summary> /// <param name="perms">The <see cref="ChannelPermissions"/> struct.</param> /// <returns>The <see cref="ChannelPermission"/> enum</returns> public static ChannelPermission ToEnum(this ChannelPermissions perms) { ChannelPermission outPerms = 0; foreach (ChannelPermission perm in perms.ToList()) { outPerms |= perm; } return(outPerms); }