| @@ -2,28 +2,28 @@ | |||
| { | |||
| public enum ChannelPermission : ulong | |||
| { | |||
| CREATE_INSTANT_INVITE = 0x00000001, | |||
| MANAGE_CHANNELS = 0x00000010, | |||
| ADD_REACTIONS = 0x00000040, | |||
| READ_MESSAGES = 0x00000400, | |||
| SEND_MESSAGES = 0x00000800, | |||
| SEND_TTS_MESSAGES = 0x00001000, | |||
| MANAGE_MESSAGES = 0x00002000, | |||
| EMBED_LINKS = 0x00004000, | |||
| ATTACH_FILES = 0x00008000, | |||
| READ_MESSAGE_HISTORY = 0x00010000, | |||
| MENTION_EVERYONE = 0x00020000, | |||
| USE_EXTERNAL_EMOJIS = 0x00040000, | |||
| CreateInstantInvite = 0x00000001, | |||
| ManageChannels = 0x00000010, | |||
| CONNECT = 0x00100000, | |||
| SPEAK = 0x00200000, | |||
| MUTE_MEMBERS = 0x00400000, | |||
| DEAFEN_MEMBERS = 0x00800000, | |||
| MOVE_MEMBERS = 0x01000000, | |||
| USE_VAD = 0x02000000, | |||
| AddReactions = 0x00000040, | |||
| ReadMessages = 0x00000400, | |||
| SendMessages = 0x00000800, | |||
| SendTTSMessages = 0x00001000, | |||
| ManageMessages = 0x00002000, | |||
| EmbedLinks = 0x00004000, | |||
| AttachFiles = 0x00008000, | |||
| ReadMessageHistory = 0x00010000, | |||
| MentionEveryone = 0x00020000, | |||
| UseExternalEmojis = 0x00040000, | |||
| MANAGE_ROLES = 0x10000000, | |||
| MANAGE_WEBHOOKS = 0x20000000, | |||
| Connect = 0x00100000, | |||
| Speak = 0x00200000, | |||
| MuteMembers = 0x00400000, | |||
| DeafenMembers = 0x00800000, | |||
| MoveMembers = 0x01000000, | |||
| UseVAD = 0x02000000, | |||
| ManageRoles = 0x10000000, | |||
| ManageWebhooks = 0x20000000, | |||
| } | |||
| } | |||
| @@ -34,48 +34,48 @@ namespace Discord | |||
| public ulong RawValue { get; } | |||
| /// <summary> If True, a user may create invites. </summary> | |||
| public bool CreateInstantInvite => Permissions.GetValue(RawValue, ChannelPermission.CREATE_INSTANT_INVITE); | |||
| public bool CreateInstantInvite => Permissions.GetValue(RawValue, ChannelPermission.CreateInstantInvite); | |||
| /// <summary> If True, a user may create, delete and modify this channel. </summary> | |||
| public bool ManageChannel => Permissions.GetValue(RawValue, ChannelPermission.MANAGE_CHANNELS); | |||
| public bool ManageChannel => Permissions.GetValue(RawValue, ChannelPermission.ManageChannels); | |||
| /// <summary> If true, a user may add reactions. </summary> | |||
| public bool AddReactions => Permissions.GetValue(RawValue, ChannelPermission.ADD_REACTIONS); | |||
| public bool AddReactions => Permissions.GetValue(RawValue, ChannelPermission.AddReactions); | |||
| /// <summary> If True, a user may join channels. </summary> | |||
| public bool ReadMessages => Permissions.GetValue(RawValue, ChannelPermission.READ_MESSAGES); | |||
| public bool ReadMessages => Permissions.GetValue(RawValue, ChannelPermission.ReadMessages); | |||
| /// <summary> If True, a user may send messages. </summary> | |||
| public bool SendMessages => Permissions.GetValue(RawValue, ChannelPermission.SEND_MESSAGES); | |||
| public bool SendMessages => Permissions.GetValue(RawValue, ChannelPermission.SendMessages); | |||
| /// <summary> If True, a user may send text-to-speech messages. </summary> | |||
| public bool SendTTSMessages => Permissions.GetValue(RawValue, ChannelPermission.SEND_TTS_MESSAGES); | |||
| public bool SendTTSMessages => Permissions.GetValue(RawValue, ChannelPermission.SendTTSMessages); | |||
| /// <summary> If True, a user may delete messages. </summary> | |||
| public bool ManageMessages => Permissions.GetValue(RawValue, ChannelPermission.MANAGE_MESSAGES); | |||
| public bool ManageMessages => Permissions.GetValue(RawValue, ChannelPermission.ManageMessages); | |||
| /// <summary> If True, Discord will auto-embed links sent by this user. </summary> | |||
| public bool EmbedLinks => Permissions.GetValue(RawValue, ChannelPermission.EMBED_LINKS); | |||
| public bool EmbedLinks => Permissions.GetValue(RawValue, ChannelPermission.EmbedLinks); | |||
| /// <summary> If True, a user may send files. </summary> | |||
| public bool AttachFiles => Permissions.GetValue(RawValue, ChannelPermission.ATTACH_FILES); | |||
| public bool AttachFiles => Permissions.GetValue(RawValue, ChannelPermission.AttachFiles); | |||
| /// <summary> If True, a user may read previous messages. </summary> | |||
| public bool ReadMessageHistory => Permissions.GetValue(RawValue, ChannelPermission.READ_MESSAGE_HISTORY); | |||
| public bool ReadMessageHistory => Permissions.GetValue(RawValue, ChannelPermission.ReadMessageHistory); | |||
| /// <summary> If True, a user may mention @everyone. </summary> | |||
| public bool MentionEveryone => Permissions.GetValue(RawValue, ChannelPermission.MENTION_EVERYONE); | |||
| public bool MentionEveryone => Permissions.GetValue(RawValue, ChannelPermission.MentionEveryone); | |||
| /// <summary> If True, a user may use custom emoji from other guilds. </summary> | |||
| public bool UseExternalEmojis => Permissions.GetValue(RawValue, ChannelPermission.USE_EXTERNAL_EMOJIS); | |||
| public bool UseExternalEmojis => Permissions.GetValue(RawValue, ChannelPermission.UseExternalEmojis); | |||
| /// <summary> If True, a user may connect to a voice channel. </summary> | |||
| public bool Connect => Permissions.GetValue(RawValue, ChannelPermission.CONNECT); | |||
| public bool Connect => Permissions.GetValue(RawValue, ChannelPermission.Connect); | |||
| /// <summary> If True, a user may speak in a voice channel. </summary> | |||
| public bool Speak => Permissions.GetValue(RawValue, ChannelPermission.SPEAK); | |||
| public bool Speak => Permissions.GetValue(RawValue, ChannelPermission.Speak); | |||
| /// <summary> If True, a user may mute users. </summary> | |||
| public bool MuteMembers => Permissions.GetValue(RawValue, ChannelPermission.MUTE_MEMBERS); | |||
| public bool MuteMembers => Permissions.GetValue(RawValue, ChannelPermission.MuteMembers); | |||
| /// <summary> If True, a user may deafen users. </summary> | |||
| public bool DeafenMembers => Permissions.GetValue(RawValue, ChannelPermission.DEAFEN_MEMBERS); | |||
| public bool DeafenMembers => Permissions.GetValue(RawValue, ChannelPermission.DeafenMembers); | |||
| /// <summary> If True, a user may move other users between voice channels. </summary> | |||
| public bool MoveMembers => Permissions.GetValue(RawValue, ChannelPermission.MOVE_MEMBERS); | |||
| public bool MoveMembers => Permissions.GetValue(RawValue, ChannelPermission.MoveMembers); | |||
| /// <summary> If True, a user may use voice-activity-detection rather than push-to-talk. </summary> | |||
| public bool UseVAD => Permissions.GetValue(RawValue, ChannelPermission.USE_VAD); | |||
| public bool UseVAD => Permissions.GetValue(RawValue, ChannelPermission.UseVAD); | |||
| /// <summary> If True, a user may adjust permissions. This also implictly grants all other permissions. </summary> | |||
| public bool ManagePermissions => Permissions.GetValue(RawValue, ChannelPermission.MANAGE_ROLES); | |||
| public bool ManagePermissions => Permissions.GetValue(RawValue, ChannelPermission.ManageRoles); | |||
| /// <summary> If True, a user may edit the webhooks for this channel. </summary> | |||
| public bool ManageWebhooks => Permissions.GetValue(RawValue, ChannelPermission.MANAGE_WEBHOOKS); | |||
| public bool ManageWebhooks => Permissions.GetValue(RawValue, ChannelPermission.ManageWebhooks); | |||
| /// <summary> Creates a new ChannelPermissions with the provided packed value. </summary> | |||
| public ChannelPermissions(ulong rawValue) { RawValue = rawValue; } | |||
| @@ -89,26 +89,26 @@ namespace Discord | |||
| { | |||
| ulong value = initialValue; | |||
| Permissions.SetValue(ref value, createInstantInvite, ChannelPermission.CREATE_INSTANT_INVITE); | |||
| Permissions.SetValue(ref value, manageChannel, ChannelPermission.MANAGE_CHANNELS); | |||
| Permissions.SetValue(ref value, addReactions, ChannelPermission.ADD_REACTIONS); | |||
| Permissions.SetValue(ref value, readMessages, ChannelPermission.READ_MESSAGES); | |||
| Permissions.SetValue(ref value, sendMessages, ChannelPermission.SEND_MESSAGES); | |||
| Permissions.SetValue(ref value, sendTTSMessages, ChannelPermission.SEND_TTS_MESSAGES); | |||
| Permissions.SetValue(ref value, manageMessages, ChannelPermission.MANAGE_MESSAGES); | |||
| Permissions.SetValue(ref value, embedLinks, ChannelPermission.EMBED_LINKS); | |||
| Permissions.SetValue(ref value, attachFiles, ChannelPermission.ATTACH_FILES); | |||
| Permissions.SetValue(ref value, readMessageHistory, ChannelPermission.READ_MESSAGE_HISTORY); | |||
| Permissions.SetValue(ref value, mentionEveryone, ChannelPermission.MENTION_EVERYONE); | |||
| Permissions.SetValue(ref value, useExternalEmojis, ChannelPermission.USE_EXTERNAL_EMOJIS); | |||
| Permissions.SetValue(ref value, connect, ChannelPermission.CONNECT); | |||
| Permissions.SetValue(ref value, speak, ChannelPermission.SPEAK); | |||
| Permissions.SetValue(ref value, muteMembers, ChannelPermission.MUTE_MEMBERS); | |||
| Permissions.SetValue(ref value, deafenMembers, ChannelPermission.DEAFEN_MEMBERS); | |||
| Permissions.SetValue(ref value, moveMembers, ChannelPermission.MOVE_MEMBERS); | |||
| Permissions.SetValue(ref value, useVoiceActivation, ChannelPermission.USE_VAD); | |||
| Permissions.SetValue(ref value, managePermissions, ChannelPermission.MANAGE_ROLES); | |||
| Permissions.SetValue(ref value, manageWebhooks, ChannelPermission.MANAGE_WEBHOOKS); | |||
| Permissions.SetValue(ref value, createInstantInvite, ChannelPermission.CreateInstantInvite); | |||
| Permissions.SetValue(ref value, manageChannel, ChannelPermission.ManageChannels); | |||
| Permissions.SetValue(ref value, addReactions, ChannelPermission.AddReactions); | |||
| Permissions.SetValue(ref value, readMessages, ChannelPermission.ReadMessages); | |||
| Permissions.SetValue(ref value, sendMessages, ChannelPermission.SendMessages); | |||
| Permissions.SetValue(ref value, sendTTSMessages, ChannelPermission.SendTTSMessages); | |||
| Permissions.SetValue(ref value, manageMessages, ChannelPermission.ManageMessages); | |||
| Permissions.SetValue(ref value, embedLinks, ChannelPermission.EmbedLinks); | |||
| Permissions.SetValue(ref value, attachFiles, ChannelPermission.AttachFiles); | |||
| Permissions.SetValue(ref value, readMessageHistory, ChannelPermission.ReadMessageHistory); | |||
| Permissions.SetValue(ref value, mentionEveryone, ChannelPermission.MentionEveryone); | |||
| Permissions.SetValue(ref value, useExternalEmojis, ChannelPermission.UseExternalEmojis); | |||
| Permissions.SetValue(ref value, connect, ChannelPermission.Connect); | |||
| Permissions.SetValue(ref value, speak, ChannelPermission.Speak); | |||
| Permissions.SetValue(ref value, muteMembers, ChannelPermission.MuteMembers); | |||
| Permissions.SetValue(ref value, deafenMembers, ChannelPermission.DeafenMembers); | |||
| Permissions.SetValue(ref value, moveMembers, ChannelPermission.MoveMembers); | |||
| Permissions.SetValue(ref value, useVoiceActivation, ChannelPermission.UseVAD); | |||
| Permissions.SetValue(ref value, managePermissions, ChannelPermission.ManageRoles); | |||
| Permissions.SetValue(ref value, manageWebhooks, ChannelPermission.ManageWebhooks); | |||
| RawValue = value; | |||
| } | |||
| @@ -2,33 +2,33 @@ | |||
| { | |||
| public enum GuildPermission : ulong | |||
| { | |||
| CREATE_INSTANT_INVITE = 0x00000001, | |||
| KICK_MEMBERS = 0x00000002, | |||
| BAN_MEMBERS = 0x00000004, | |||
| ADMINISTRATOR = 0x00000008, | |||
| MANAGE_CHANNELS = 0x00000010, | |||
| MANAGE_GUILD = 0x00000020, | |||
| ADD_REACTIONS = 0x00000040, | |||
| VIEW_AUDIT_LOG = 0x00000080, | |||
| READ_MESSAGES = 0x00000400, | |||
| SEND_MESSAGES = 0x00000800, | |||
| SEND_TTS_MESSAGES = 0x00001000, | |||
| MANAGE_MESSAGES = 0x00002000, | |||
| EMBED_LINKS = 0x00004000, | |||
| ATTACH_FILES = 0x00008000, | |||
| READ_MESSAGE_HISTORY = 0x00010000, | |||
| MENTION_EVERYONE = 0x00020000, | |||
| USE_EXTERNAL_EMOJIS = 0x00040000, | |||
| CONNECT = 0x00100000, | |||
| SPEAK = 0x00200000, | |||
| MUTE_MEMBERS = 0x00400000, | |||
| DEAFEN_MEMBERS = 0x00800000, | |||
| MOVE_MEMBERS = 0x01000000, | |||
| USE_VAD = 0x02000000, | |||
| CHANGE_NICKNAME = 0x04000000, | |||
| MANAGE_NICKNAMES = 0x08000000, | |||
| MANAGE_ROLES = 0x10000000, | |||
| MANAGE_WEBHOOKS = 0x20000000, | |||
| MANAGE_EMOJIS = 0x40000000 | |||
| CreateInstantInvite = 0x00000001, | |||
| KickMembers = 0x00000002, | |||
| BanMembers = 0x00000004, | |||
| Administrator = 0x00000008, | |||
| ManageChannels = 0x00000010, | |||
| ManageGuild = 0x00000020, | |||
| AddReactions = 0x00000040, | |||
| ViewAuditLog = 0x00000080, | |||
| ReadMessages = 0x00000400, | |||
| SendMessages = 0x00000800, | |||
| SendTTSMessages = 0x00001000, | |||
| ManageMessages = 0x00002000, | |||
| EmbedLinks = 0x00004000, | |||
| AttachFiles = 0x00008000, | |||
| ReadMessageHistory = 0x00010000, | |||
| MentionEveryone = 0x00020000, | |||
| UseExternalEmojis = 0x00040000, | |||
| Connect = 0x00100000, | |||
| Speak = 0x00200000, | |||
| MuteMembers = 0x00400000, | |||
| DeafenMembers = 0x00800000, | |||
| MoveMembers = 0x01000000, | |||
| UseVAD = 0x02000000, | |||
| ChangeNickname = 0x04000000, | |||
| ManageNicknames = 0x08000000, | |||
| ManageRoles = 0x10000000, | |||
| ManageWebhooks = 0x20000000, | |||
| ManageEmojis = 0x40000000 | |||
| } | |||
| } | |||
| @@ -18,65 +18,65 @@ namespace Discord | |||
| public ulong RawValue { get; } | |||
| /// <summary> If True, a user may create invites. </summary> | |||
| public bool CreateInstantInvite => Permissions.GetValue(RawValue, GuildPermission.CREATE_INSTANT_INVITE); | |||
| public bool CreateInstantInvite => Permissions.GetValue(RawValue, GuildPermission.CreateInstantInvite); | |||
| /// <summary> If True, a user may ban users from the guild. </summary> | |||
| public bool BanMembers => Permissions.GetValue(RawValue, GuildPermission.BAN_MEMBERS); | |||
| public bool BanMembers => Permissions.GetValue(RawValue, GuildPermission.BanMembers); | |||
| /// <summary> If True, a user may kick users from the guild. </summary> | |||
| public bool KickMembers => Permissions.GetValue(RawValue, GuildPermission.KICK_MEMBERS); | |||
| public bool KickMembers => Permissions.GetValue(RawValue, GuildPermission.KickMembers); | |||
| /// <summary> If True, a user is granted all permissions, and cannot have them revoked via channel permissions. </summary> | |||
| public bool Administrator => Permissions.GetValue(RawValue, GuildPermission.ADMINISTRATOR); | |||
| public bool Administrator => Permissions.GetValue(RawValue, GuildPermission.Administrator); | |||
| /// <summary> If True, a user may create, delete and modify channels. </summary> | |||
| public bool ManageChannels => Permissions.GetValue(RawValue, GuildPermission.MANAGE_CHANNELS); | |||
| public bool ManageChannels => Permissions.GetValue(RawValue, GuildPermission.ManageChannels); | |||
| /// <summary> If True, a user may adjust guild properties. </summary> | |||
| public bool ManageGuild => Permissions.GetValue(RawValue, GuildPermission.MANAGE_GUILD); | |||
| public bool ManageGuild => Permissions.GetValue(RawValue, GuildPermission.ManageGuild); | |||
| /// <summary> If true, a user may add reactions. </summary> | |||
| public bool AddReactions => Permissions.GetValue(RawValue, GuildPermission.ADD_REACTIONS); | |||
| public bool AddReactions => Permissions.GetValue(RawValue, GuildPermission.AddReactions); | |||
| /// <summary> If true, a user may view the audit log. </summary> | |||
| public bool ViewAuditLog => Permissions.GetValue(RawValue, GuildPermission.VIEW_AUDIT_LOG); | |||
| public bool ViewAuditLog => Permissions.GetValue(RawValue, GuildPermission.ViewAuditLog); | |||
| /// <summary> If True, a user may join channels. </summary> | |||
| public bool ReadMessages => Permissions.GetValue(RawValue, GuildPermission.READ_MESSAGES); | |||
| public bool ReadMessages => Permissions.GetValue(RawValue, GuildPermission.ReadMessages); | |||
| /// <summary> If True, a user may send messages. </summary> | |||
| public bool SendMessages => Permissions.GetValue(RawValue, GuildPermission.SEND_MESSAGES); | |||
| public bool SendMessages => Permissions.GetValue(RawValue, GuildPermission.SendMessages); | |||
| /// <summary> If True, a user may send text-to-speech messages. </summary> | |||
| public bool SendTTSMessages => Permissions.GetValue(RawValue, GuildPermission.SEND_TTS_MESSAGES); | |||
| public bool SendTTSMessages => Permissions.GetValue(RawValue, GuildPermission.SendTTSMessages); | |||
| /// <summary> If True, a user may delete messages. </summary> | |||
| public bool ManageMessages => Permissions.GetValue(RawValue, GuildPermission.MANAGE_MESSAGES); | |||
| public bool ManageMessages => Permissions.GetValue(RawValue, GuildPermission.ManageMessages); | |||
| /// <summary> If True, Discord will auto-embed links sent by this user. </summary> | |||
| public bool EmbedLinks => Permissions.GetValue(RawValue, GuildPermission.EMBED_LINKS); | |||
| public bool EmbedLinks => Permissions.GetValue(RawValue, GuildPermission.EmbedLinks); | |||
| /// <summary> If True, a user may send files. </summary> | |||
| public bool AttachFiles => Permissions.GetValue(RawValue, GuildPermission.ATTACH_FILES); | |||
| public bool AttachFiles => Permissions.GetValue(RawValue, GuildPermission.AttachFiles); | |||
| /// <summary> If True, a user may read previous messages. </summary> | |||
| public bool ReadMessageHistory => Permissions.GetValue(RawValue, GuildPermission.READ_MESSAGE_HISTORY); | |||
| public bool ReadMessageHistory => Permissions.GetValue(RawValue, GuildPermission.ReadMessageHistory); | |||
| /// <summary> If True, a user may mention @everyone. </summary> | |||
| public bool MentionEveryone => Permissions.GetValue(RawValue, GuildPermission.MENTION_EVERYONE); | |||
| public bool MentionEveryone => Permissions.GetValue(RawValue, GuildPermission.MentionEveryone); | |||
| /// <summary> If True, a user may use custom emoji from other guilds. </summary> | |||
| public bool UseExternalEmojis => Permissions.GetValue(RawValue, GuildPermission.USE_EXTERNAL_EMOJIS); | |||
| public bool UseExternalEmojis => Permissions.GetValue(RawValue, GuildPermission.UseExternalEmojis); | |||
| /// <summary> If True, a user may connect to a voice channel. </summary> | |||
| public bool Connect => Permissions.GetValue(RawValue, GuildPermission.CONNECT); | |||
| public bool Connect => Permissions.GetValue(RawValue, GuildPermission.Connect); | |||
| /// <summary> If True, a user may speak in a voice channel. </summary> | |||
| public bool Speak => Permissions.GetValue(RawValue, GuildPermission.SPEAK); | |||
| public bool Speak => Permissions.GetValue(RawValue, GuildPermission.Speak); | |||
| /// <summary> If True, a user may mute users. </summary> | |||
| public bool MuteMembers => Permissions.GetValue(RawValue, GuildPermission.MUTE_MEMBERS); | |||
| public bool MuteMembers => Permissions.GetValue(RawValue, GuildPermission.MuteMembers); | |||
| /// <summary> If True, a user may deafen users. </summary> | |||
| public bool DeafenMembers => Permissions.GetValue(RawValue, GuildPermission.DEAFEN_MEMBERS); | |||
| public bool DeafenMembers => Permissions.GetValue(RawValue, GuildPermission.DeafenMembers); | |||
| /// <summary> If True, a user may move other users between voice channels. </summary> | |||
| public bool MoveMembers => Permissions.GetValue(RawValue, GuildPermission.MOVE_MEMBERS); | |||
| public bool MoveMembers => Permissions.GetValue(RawValue, GuildPermission.MoveMembers); | |||
| /// <summary> If True, a user may use voice-activity-detection rather than push-to-talk. </summary> | |||
| public bool UseVAD => Permissions.GetValue(RawValue, GuildPermission.USE_VAD); | |||
| public bool UseVAD => Permissions.GetValue(RawValue, GuildPermission.UseVAD); | |||
| /// <summary> If True, a user may change their own nickname. </summary> | |||
| public bool ChangeNickname => Permissions.GetValue(RawValue, GuildPermission.CHANGE_NICKNAME); | |||
| public bool ChangeNickname => Permissions.GetValue(RawValue, GuildPermission.ChangeNickname); | |||
| /// <summary> If True, a user may change the nickname of other users. </summary> | |||
| public bool ManageNicknames => Permissions.GetValue(RawValue, GuildPermission.MANAGE_NICKNAMES); | |||
| public bool ManageNicknames => Permissions.GetValue(RawValue, GuildPermission.ManageNicknames); | |||
| /// <summary> If True, a user may adjust roles. </summary> | |||
| public bool ManageRoles => Permissions.GetValue(RawValue, GuildPermission.MANAGE_ROLES); | |||
| public bool ManageRoles => Permissions.GetValue(RawValue, GuildPermission.ManageRoles); | |||
| /// <summary> If True, a user may edit the webhooks for this guild. </summary> | |||
| public bool ManageWebhooks => Permissions.GetValue(RawValue, GuildPermission.MANAGE_WEBHOOKS); | |||
| public bool ManageWebhooks => Permissions.GetValue(RawValue, GuildPermission.ManageWebhooks); | |||
| /// <summary> If True, a user may edit the emojis for this guild. </summary> | |||
| public bool ManageEmojis => Permissions.GetValue(RawValue, GuildPermission.MANAGE_EMOJIS); | |||
| public bool ManageEmojis => Permissions.GetValue(RawValue, GuildPermission.ManageEmojis); | |||
| /// <summary> Creates a new GuildPermissions with the provided packed value. </summary> | |||
| public GuildPermissions(ulong rawValue) { RawValue = rawValue; } | |||
| @@ -92,34 +92,34 @@ namespace Discord | |||
| { | |||
| ulong value = initialValue; | |||
| Permissions.SetValue(ref value, createInstantInvite, GuildPermission.CREATE_INSTANT_INVITE); | |||
| Permissions.SetValue(ref value, banMembers, GuildPermission.BAN_MEMBERS); | |||
| Permissions.SetValue(ref value, kickMembers, GuildPermission.KICK_MEMBERS); | |||
| Permissions.SetValue(ref value, administrator, GuildPermission.ADMINISTRATOR); | |||
| Permissions.SetValue(ref value, manageChannels, GuildPermission.MANAGE_CHANNELS); | |||
| Permissions.SetValue(ref value, manageGuild, GuildPermission.MANAGE_GUILD); | |||
| Permissions.SetValue(ref value, addReactions, GuildPermission.ADD_REACTIONS); | |||
| Permissions.SetValue(ref value, viewAuditLog, GuildPermission.VIEW_AUDIT_LOG); | |||
| Permissions.SetValue(ref value, readMessages, GuildPermission.READ_MESSAGES); | |||
| Permissions.SetValue(ref value, sendMessages, GuildPermission.SEND_MESSAGES); | |||
| Permissions.SetValue(ref value, sendTTSMessages, GuildPermission.SEND_TTS_MESSAGES); | |||
| Permissions.SetValue(ref value, manageMessages, GuildPermission.MANAGE_MESSAGES); | |||
| Permissions.SetValue(ref value, embedLinks, GuildPermission.EMBED_LINKS); | |||
| Permissions.SetValue(ref value, attachFiles, GuildPermission.ATTACH_FILES); | |||
| Permissions.SetValue(ref value, readMessageHistory, GuildPermission.READ_MESSAGE_HISTORY); | |||
| Permissions.SetValue(ref value, mentionEveryone, GuildPermission.MENTION_EVERYONE); | |||
| Permissions.SetValue(ref value, useExternalEmojis, GuildPermission.USE_EXTERNAL_EMOJIS); | |||
| Permissions.SetValue(ref value, connect, GuildPermission.CONNECT); | |||
| Permissions.SetValue(ref value, speak, GuildPermission.SPEAK); | |||
| Permissions.SetValue(ref value, muteMembers, GuildPermission.MUTE_MEMBERS); | |||
| Permissions.SetValue(ref value, deafenMembers, GuildPermission.DEAFEN_MEMBERS); | |||
| Permissions.SetValue(ref value, moveMembers, GuildPermission.MOVE_MEMBERS); | |||
| Permissions.SetValue(ref value, useVoiceActivation, GuildPermission.USE_VAD); | |||
| Permissions.SetValue(ref value, changeNickname, GuildPermission.CHANGE_NICKNAME); | |||
| Permissions.SetValue(ref value, manageNicknames, GuildPermission.MANAGE_NICKNAMES); | |||
| Permissions.SetValue(ref value, manageRoles, GuildPermission.MANAGE_ROLES); | |||
| Permissions.SetValue(ref value, manageWebhooks, GuildPermission.MANAGE_WEBHOOKS); | |||
| Permissions.SetValue(ref value, manageEmojis, GuildPermission.MANAGE_EMOJIS); | |||
| Permissions.SetValue(ref value, createInstantInvite, GuildPermission.CreateInstantInvite); | |||
| Permissions.SetValue(ref value, banMembers, GuildPermission.BanMembers); | |||
| Permissions.SetValue(ref value, kickMembers, GuildPermission.KickMembers); | |||
| Permissions.SetValue(ref value, administrator, GuildPermission.Administrator); | |||
| Permissions.SetValue(ref value, manageChannels, GuildPermission.ManageChannels); | |||
| Permissions.SetValue(ref value, manageGuild, GuildPermission.ManageGuild); | |||
| Permissions.SetValue(ref value, addReactions, GuildPermission.AddReactions); | |||
| Permissions.SetValue(ref value, viewAuditLog, GuildPermission.ViewAuditLog); | |||
| Permissions.SetValue(ref value, readMessages, GuildPermission.ReadMessages); | |||
| Permissions.SetValue(ref value, sendMessages, GuildPermission.SendMessages); | |||
| Permissions.SetValue(ref value, sendTTSMessages, GuildPermission.SendTTSMessages); | |||
| Permissions.SetValue(ref value, manageMessages, GuildPermission.ManageMessages); | |||
| Permissions.SetValue(ref value, embedLinks, GuildPermission.EmbedLinks); | |||
| Permissions.SetValue(ref value, attachFiles, GuildPermission.AttachFiles); | |||
| Permissions.SetValue(ref value, readMessageHistory, GuildPermission.ReadMessageHistory); | |||
| Permissions.SetValue(ref value, mentionEveryone, GuildPermission.MentionEveryone); | |||
| Permissions.SetValue(ref value, useExternalEmojis, GuildPermission.UseExternalEmojis); | |||
| Permissions.SetValue(ref value, connect, GuildPermission.Connect); | |||
| Permissions.SetValue(ref value, speak, GuildPermission.Speak); | |||
| Permissions.SetValue(ref value, muteMembers, GuildPermission.MuteMembers); | |||
| Permissions.SetValue(ref value, deafenMembers, GuildPermission.DeafenMembers); | |||
| Permissions.SetValue(ref value, moveMembers, GuildPermission.MoveMembers); | |||
| Permissions.SetValue(ref value, useVoiceActivation, GuildPermission.UseVAD); | |||
| Permissions.SetValue(ref value, changeNickname, GuildPermission.ChangeNickname); | |||
| Permissions.SetValue(ref value, manageNicknames, GuildPermission.ManageNicknames); | |||
| Permissions.SetValue(ref value, manageRoles, GuildPermission.ManageRoles); | |||
| Permissions.SetValue(ref value, manageWebhooks, GuildPermission.ManageWebhooks); | |||
| Permissions.SetValue(ref value, manageEmojis, GuildPermission.ManageEmojis); | |||
| RawValue = value; | |||
| } | |||
| @@ -22,47 +22,47 @@ namespace Discord | |||
| public ulong DenyValue { get; } | |||
| /// <summary> If Allowed, a user may create invites. </summary> | |||
| public PermValue CreateInstantInvite => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.CREATE_INSTANT_INVITE); | |||
| public PermValue CreateInstantInvite => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.CreateInstantInvite); | |||
| /// <summary> If Allowed, a user may create, delete and modify this channel. </summary> | |||
| public PermValue ManageChannel => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.MANAGE_CHANNELS); | |||
| public PermValue ManageChannel => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ManageChannels); | |||
| /// <summary> If Allowed, a user may add reactions. </summary> | |||
| public PermValue AddReactions => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ADD_REACTIONS); | |||
| public PermValue AddReactions => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.AddReactions); | |||
| /// <summary> If Allowed, a user may join channels. </summary> | |||
| public PermValue ReadMessages => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.READ_MESSAGES); | |||
| public PermValue ReadMessages => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ReadMessages); | |||
| /// <summary> If Allowed, a user may send messages. </summary> | |||
| public PermValue SendMessages => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.SEND_MESSAGES); | |||
| public PermValue SendMessages => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.SendMessages); | |||
| /// <summary> If Allowed, a user may send text-to-speech messages. </summary> | |||
| public PermValue SendTTSMessages => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.SEND_TTS_MESSAGES); | |||
| public PermValue SendTTSMessages => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.SendTTSMessages); | |||
| /// <summary> If Allowed, a user may delete messages. </summary> | |||
| public PermValue ManageMessages => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.MANAGE_MESSAGES); | |||
| public PermValue ManageMessages => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ManageMessages); | |||
| /// <summary> If Allowed, Discord will auto-embed links sent by this user. </summary> | |||
| public PermValue EmbedLinks => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.EMBED_LINKS); | |||
| public PermValue EmbedLinks => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.EmbedLinks); | |||
| /// <summary> If Allowed, a user may send files. </summary> | |||
| public PermValue AttachFiles => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ATTACH_FILES); | |||
| public PermValue AttachFiles => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.AttachFiles); | |||
| /// <summary> If Allowed, a user may read previous messages. </summary> | |||
| public PermValue ReadMessageHistory => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.READ_MESSAGE_HISTORY); | |||
| public PermValue ReadMessageHistory => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ReadMessageHistory); | |||
| /// <summary> If Allowed, a user may mention @everyone. </summary> | |||
| public PermValue MentionEveryone => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.MENTION_EVERYONE); | |||
| public PermValue MentionEveryone => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.MentionEveryone); | |||
| /// <summary> If Allowed, a user may use custom emoji from other guilds. </summary> | |||
| public PermValue UseExternalEmojis => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.USE_EXTERNAL_EMOJIS); | |||
| public PermValue UseExternalEmojis => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.UseExternalEmojis); | |||
| /// <summary> If Allowed, a user may connect to a voice channel. </summary> | |||
| public PermValue Connect => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.CONNECT); | |||
| public PermValue Connect => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.Connect); | |||
| /// <summary> If Allowed, a user may speak in a voice channel. </summary> | |||
| public PermValue Speak => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.SPEAK); | |||
| public PermValue Speak => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.Speak); | |||
| /// <summary> If Allowed, a user may mute users. </summary> | |||
| public PermValue MuteMembers => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.MUTE_MEMBERS); | |||
| public PermValue MuteMembers => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.MuteMembers); | |||
| /// <summary> If Allowed, a user may deafen users. </summary> | |||
| public PermValue DeafenMembers => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.DEAFEN_MEMBERS); | |||
| public PermValue DeafenMembers => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.DeafenMembers); | |||
| /// <summary> If Allowed, a user may move other users between voice channels. </summary> | |||
| public PermValue MoveMembers => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.MOVE_MEMBERS); | |||
| public PermValue MoveMembers => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.MoveMembers); | |||
| /// <summary> If Allowed, a user may use voice-activity-detection rather than push-to-talk. </summary> | |||
| public PermValue UseVAD => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.USE_VAD); | |||
| public PermValue UseVAD => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.UseVAD); | |||
| /// <summary> If Allowed, a user may adjust permissions. This also implictly grants all other permissions. </summary> | |||
| public PermValue ManagePermissions => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.MANAGE_ROLES); | |||
| public PermValue ManagePermissions => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ManageRoles); | |||
| /// <summary> If True, a user may edit the webhooks for this channel. </summary> | |||
| public PermValue ManageWebhooks => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.MANAGE_WEBHOOKS); | |||
| public PermValue ManageWebhooks => Permissions.GetValue(AllowValue, DenyValue, ChannelPermission.ManageWebhooks); | |||
| /// <summary> Creates a new OverwritePermissions with the provided allow and deny packed values. </summary> | |||
| public OverwritePermissions(ulong allowValue, ulong denyValue) | |||
| @@ -79,26 +79,26 @@ namespace Discord | |||
| PermValue? deafenMembers = null, PermValue? moveMembers = null, PermValue? useVoiceActivation = null, PermValue? managePermissions = null, | |||
| PermValue? manageWebhooks = null) | |||
| { | |||
| Permissions.SetValue(ref allowValue, ref denyValue, createInstantInvite, ChannelPermission.CREATE_INSTANT_INVITE); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, manageChannel, ChannelPermission.MANAGE_CHANNELS); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, addReactions, ChannelPermission.ADD_REACTIONS); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, readMessages, ChannelPermission.READ_MESSAGES); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, sendMessages, ChannelPermission.SEND_MESSAGES); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, sendTTSMessages, ChannelPermission.SEND_TTS_MESSAGES); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, manageMessages, ChannelPermission.MANAGE_MESSAGES); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, embedLinks, ChannelPermission.EMBED_LINKS); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, attachFiles, ChannelPermission.ATTACH_FILES); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, readMessageHistory, ChannelPermission.READ_MESSAGE_HISTORY); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, mentionEveryone, ChannelPermission.MENTION_EVERYONE); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, useExternalEmojis, ChannelPermission.USE_EXTERNAL_EMOJIS); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, connect, ChannelPermission.CONNECT); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, speak, ChannelPermission.SPEAK); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, muteMembers, ChannelPermission.MUTE_MEMBERS); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, deafenMembers, ChannelPermission.DEAFEN_MEMBERS); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, moveMembers, ChannelPermission.MOVE_MEMBERS); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, useVoiceActivation, ChannelPermission.USE_VAD); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, managePermissions, ChannelPermission.MANAGE_ROLES); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, manageWebhooks, ChannelPermission.MANAGE_WEBHOOKS); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, createInstantInvite, ChannelPermission.CreateInstantInvite); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, manageChannel, ChannelPermission.ManageChannels); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, addReactions, ChannelPermission.AddReactions); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, readMessages, ChannelPermission.ReadMessages); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, sendMessages, ChannelPermission.SendMessages); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, sendTTSMessages, ChannelPermission.SendTTSMessages); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, manageMessages, ChannelPermission.ManageMessages); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, embedLinks, ChannelPermission.EmbedLinks); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, attachFiles, ChannelPermission.AttachFiles); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, readMessageHistory, ChannelPermission.ReadMessageHistory); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, mentionEveryone, ChannelPermission.MentionEveryone); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, useExternalEmojis, ChannelPermission.UseExternalEmojis); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, connect, ChannelPermission.Connect); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, speak, ChannelPermission.Speak); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, muteMembers, ChannelPermission.MuteMembers); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, deafenMembers, ChannelPermission.DeafenMembers); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, moveMembers, ChannelPermission.MoveMembers); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, useVoiceActivation, ChannelPermission.UseVAD); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, managePermissions, ChannelPermission.ManageRoles); | |||
| Permissions.SetValue(ref allowValue, ref denyValue, manageWebhooks, ChannelPermission.ManageWebhooks); | |||
| AllowValue = allowValue; | |||
| DenyValue = denyValue; | |||
| @@ -100,7 +100,7 @@ namespace Discord | |||
| { | |||
| foreach (var roleId in user.RoleIds) | |||
| resolvedPermissions |= guild.GetRole(roleId)?.Permissions.RawValue ?? 0; | |||
| if (GetValue(resolvedPermissions, GuildPermission.ADMINISTRATOR)) | |||
| if (GetValue(resolvedPermissions, GuildPermission.Administrator)) | |||
| resolvedPermissions = GuildPermissions.All.RawValue; //Administrators always have all permissions | |||
| } | |||
| return resolvedPermissions; | |||
| @@ -115,7 +115,7 @@ namespace Discord | |||
| ulong resolvedPermissions = 0; | |||
| ulong mask = ChannelPermissions.All(channel).RawValue; | |||
| if (GetValue(guildPermissions, GuildPermission.ADMINISTRATOR)) //Includes owner | |||
| if (GetValue(guildPermissions, GuildPermission.Administrator)) //Includes owner | |||
| resolvedPermissions = mask; //Owners and administrators always have all permissions | |||
| else | |||
| { | |||
| @@ -152,18 +152,18 @@ namespace Discord | |||
| if (channel is ITextChannel textChannel) | |||
| { | |||
| if (!GetValue(resolvedPermissions, ChannelPermission.READ_MESSAGES)) | |||
| if (!GetValue(resolvedPermissions, ChannelPermission.ReadMessages)) | |||
| { | |||
| //No read permission on a text channel removes all other permissions | |||
| resolvedPermissions = 0; | |||
| } | |||
| else if (!GetValue(resolvedPermissions, ChannelPermission.SEND_MESSAGES)) | |||
| else if (!GetValue(resolvedPermissions, ChannelPermission.SendMessages)) | |||
| { | |||
| //No send permissions on a text channel removes all send-related permissions | |||
| resolvedPermissions &= ~(1UL << (int)ChannelPermission.SEND_TTS_MESSAGES); | |||
| resolvedPermissions &= ~(1UL << (int)ChannelPermission.MENTION_EVERYONE); | |||
| resolvedPermissions &= ~(1UL << (int)ChannelPermission.EMBED_LINKS); | |||
| resolvedPermissions &= ~(1UL << (int)ChannelPermission.ATTACH_FILES); | |||
| resolvedPermissions &= ~(1UL << (int)ChannelPermission.SendTTSMessages); | |||
| resolvedPermissions &= ~(1UL << (int)ChannelPermission.MentionEveryone); | |||
| resolvedPermissions &= ~(1UL << (int)ChannelPermission.EmbedLinks); | |||
| resolvedPermissions &= ~(1UL << (int)ChannelPermission.AttachFiles); | |||
| } | |||
| } | |||
| resolvedPermissions &= mask; //Ensure we didnt get any permissions this channel doesnt support (from guildPerms, for example) | |||
| @@ -22,7 +22,7 @@ namespace Discord.WebSocket | |||
| public override IReadOnlyCollection<SocketGuildUser> Users | |||
| => Guild.Users.Where(x => Permissions.GetValue( | |||
| Permissions.ResolveChannel(Guild, x, this, Permissions.ResolveGuild(Guild, x)), | |||
| ChannelPermission.READ_MESSAGES)).ToImmutableArray(); | |||
| ChannelPermission.ReadMessages)).ToImmutableArray(); | |||
| internal SocketTextChannel(DiscordSocketClient discord, ulong id, SocketGuild guild) | |||
| : base(discord, id, guild) | |||
| @@ -103,7 +103,7 @@ namespace Discord.WebSocket | |||
| { | |||
| var guildPerms = Permissions.ResolveGuild(Guild, user); | |||
| var channelPerms = Permissions.ResolveChannel(Guild, user, this, guildPerms); | |||
| if (Permissions.GetValue(channelPerms, ChannelPermission.READ_MESSAGES)) | |||
| if (Permissions.GetValue(channelPerms, ChannelPermission.ReadMessages)) | |||
| return user; | |||
| } | |||
| return null; | |||