@@ -10,62 +10,62 @@ namespace Discord
public static readonly GuildPermissions All = new GuildPermissions(0b000111_111111_0011111111_0000111111);
/// <summary> Gets a packed value representing all the permissions in this GuildPermissions. </summary>
public uint RawValue { get; }
public ulong RawValue { get; }
/// <summary> If True, a user may create invites. </summary>
public bool CreateInstantInvite => PermissionUtilitie s.GetValue(RawValue, GuildPermission.CreateInstantInvite);
public bool CreateInstantInvite => Permissions.GetValue(RawValue, GuildPermission.CreateInstantInvite);
/// <summary> If True, a user may ban users from the guild. </summary>
public bool BanMembers => PermissionUtilitie s.GetValue(RawValue, GuildPermission.BanMembers);
public bool BanMembers => Permissions.GetValue(RawValue, GuildPermission.BanMembers);
/// <summary> If True, a user may kick users from the guild. </summary>
public bool KickMembers => PermissionUtilitie s.GetValue(RawValue, GuildPermission.KickMembers);
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 => PermissionUtilitie s.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 => PermissionUtilitie s.GetValue(RawValue, GuildPermission.ManageChannels);
public bool ManageChannels => Permissions.GetValue(RawValue, GuildPermission.ManageChannels);
/// <summary> If True, a user may adjust guild properties. </summary>
public bool ManageGuild => PermissionUtilitie s.GetValue(RawValue, GuildPermission.ManageGuild);
public bool ManageGuild => Permissions.GetValue(RawValue, GuildPermission.ManageGuild);
/// <summary> If True, a user may join channels. </summary>
public bool ReadMessages => PermissionUtilitie s.GetValue(RawValue, GuildPermission.ReadMessages);
public bool ReadMessages => Permissions.GetValue(RawValue, GuildPermission.ReadMessages);
/// <summary> If True, a user may send messages. </summary>
public bool SendMessages => PermissionUtilitie s.GetValue(RawValue, GuildPermission.SendMessages);
public bool SendMessages => Permissions.GetValue(RawValue, GuildPermission.SendMessages);
/// <summary> If True, a user may send text-to-speech messages. </summary>
public bool SendTTSMessages => PermissionUtilitie s.GetValue(RawValue, GuildPermission.SendTTSMessages);
public bool SendTTSMessages => Permissions.GetValue(RawValue, GuildPermission.SendTTSMessages);
/// <summary> If True, a user may delete messages. </summary>
public bool ManageMessages => PermissionUtilitie s.GetValue(RawValue, GuildPermission.ManageMessages);
public bool ManageMessages => Permissions.GetValue(RawValue, GuildPermission.ManageMessages);
/// <summary> If True, Discord will auto-embed links sent by this user. </summary>
public bool EmbedLinks => PermissionUtilitie s.GetValue(RawValue, GuildPermission.EmbedLinks);
public bool EmbedLinks => Permissions.GetValue(RawValue, GuildPermission.EmbedLinks);
/// <summary> If True, a user may send files. </summary>
public bool AttachFiles => PermissionUtilitie s.GetValue(RawValue, GuildPermission.AttachFiles);
public bool AttachFiles => Permissions.GetValue(RawValue, GuildPermission.AttachFiles);
/// <summary> If True, a user may read previous messages. </summary>
public bool ReadMessageHistory => PermissionUtilitie s.GetValue(RawValue, GuildPermission.ReadMessageHistory);
public bool ReadMessageHistory => Permissions.GetValue(RawValue, GuildPermission.ReadMessageHistory);
/// <summary> If True, a user may mention @everyone. </summary>
public bool MentionEveryone => PermissionUtilitie s.GetValue(RawValue, GuildPermission.MentionEveryone);
public bool MentionEveryone => Permissions.GetValue(RawValue, GuildPermission.MentionEveryone);
/// <summary> If True, a user may connect to a voice channel. </summary>
public bool Connect => PermissionUtilitie s.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 => PermissionUtilitie s.GetValue(RawValue, GuildPermission.Speak);
public bool Speak => Permissions.GetValue(RawValue, GuildPermission.Speak);
/// <summary> If True, a user may mute users. </summary>
public bool MuteMembers => PermissionUtilitie s.GetValue(RawValue, GuildPermission.MuteMembers);
public bool MuteMembers => Permissions.GetValue(RawValue, GuildPermission.MuteMembers);
/// <summary> If True, a user may deafen users. </summary>
public bool DeafenMembers => PermissionUtilitie s.GetValue(RawValue, GuildPermission.DeafenMembers);
public bool DeafenMembers => Permissions.GetValue(RawValue, GuildPermission.DeafenMembers);
/// <summary> If True, a user may move other users between voice channels. </summary>
public bool MoveMembers => PermissionUtilitie s.GetValue(RawValue, GuildPermission.MoveMembers);
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 => PermissionUtilitie s.GetValue(RawValue, GuildPermission.UseVAD);
public bool UseVAD => Permissions.GetValue(RawValue, GuildPermission.UseVAD);
/// <summary> If True, a user may change their own nickname. </summary>
public bool ChangeNickname => PermissionUtilitie s.GetValue(RawValue, GuildPermission.ChangeNickname);
public bool ChangeNickname => Permissions.GetValue(RawValue, GuildPermission.ChangeNickname);
/// <summary> If True, a user may change the nickname of other users. </summary>
public bool ManageNicknames => PermissionUtilitie s.GetValue(RawValue, GuildPermission.ManageNicknames);
public bool ManageNicknames => Permissions.GetValue(RawValue, GuildPermission.ManageNicknames);
/// <summary> If True, a user may adjust roles. </summary>
public bool ManageRoles => PermissionUtilitie s.GetValue(RawValue, GuildPermission.ManageRoles);
public bool ManageRoles => Permissions.GetValue(RawValue, GuildPermission.ManageRoles);
/// <summary> Creates a new GuildPermissions with the provided packed value. </summary>
public GuildPermissions(uint rawValue) { RawValue = rawValue; }
public GuildPermissions(ulong rawValue) { RawValue = rawValue; }
private GuildPermissions(uint initialValue, bool? createInstantInvite = null, bool? kickMembers = null,
private GuildPermissions(ulong initialValue, bool? createInstantInvite = null, bool? kickMembers = null,
bool? banMembers = null, bool? administrator = null, bool? manageChannel = null, bool? manageGuild = null,
bool? readMessages = null, bool? sendMessages = null, bool? sendTTSMessages = null, bool? manageMessages = null,
bool? embedLinks = null, bool? attachFiles = null, bool? readMessageHistory = null, bool? mentionEveryone = null,
@@ -73,31 +73,31 @@ namespace Discord
bool? moveMembers = null, bool? useVoiceActivation = null, bool? changeNickname = null, bool? manageNicknames = null,
bool? manageRoles = null)
{
uint value = initialValue;
ulong value = initialValue;
PermissionUtilitie s.SetValue(ref value, createInstantInvite, GuildPermission.CreateInstantInvite);
PermissionUtilitie s.SetValue(ref value, banMembers, GuildPermission.BanMembers);
PermissionUtilitie s.SetValue(ref value, kickMembers, GuildPermission.KickMembers);
PermissionUtilitie s.SetValue(ref value, administrator, GuildPermission.Administrator);
PermissionUtilitie s.SetValue(ref value, manageChannel, GuildPermission.ManageChannels);
PermissionUtilitie s.SetValue(ref value, manageGuild, GuildPermission.ManageGuild);
PermissionUtilitie s.SetValue(ref value, readMessages, GuildPermission.ReadMessages);
PermissionUtilitie s.SetValue(ref value, sendMessages, GuildPermission.SendMessages);
PermissionUtilitie s.SetValue(ref value, sendTTSMessages, GuildPermission.SendTTSMessages);
PermissionUtilitie s.SetValue(ref value, manageMessages, GuildPermission.ManageMessages);
PermissionUtilitie s.SetValue(ref value, embedLinks, GuildPermission.EmbedLinks);
PermissionUtilitie s.SetValue(ref value, attachFiles, GuildPermission.AttachFiles);
PermissionUtilitie s.SetValue(ref value, readMessageHistory, GuildPermission.ReadMessageHistory);
PermissionUtilitie s.SetValue(ref value, mentionEveryone, GuildPermission.MentionEveryone);
PermissionUtilitie s.SetValue(ref value, connect, GuildPermission.Connect);
PermissionUtilitie s.SetValue(ref value, speak, GuildPermission.Speak);
PermissionUtilitie s.SetValue(ref value, muteMembers, GuildPermission.MuteMembers);
PermissionUtilitie s.SetValue(ref value, deafenMembers, GuildPermission.DeafenMembers);
PermissionUtilitie s.SetValue(ref value, moveMembers, GuildPermission.MoveMembers);
PermissionUtilitie s.SetValue(ref value, useVoiceActivation, GuildPermission.UseVAD);
PermissionUtilitie s.SetValue(ref value, changeNickname, GuildPermission.ChangeNickname);
PermissionUtilitie s.SetValue(ref value, manageNicknames, GuildPermission.ManageNicknames);
PermissionUtilitie s.SetValue(ref value, manageRoles, GuildPermission.ManageRoles);
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, manageChannel, GuildPermission.ManageChannels);
Permissions.SetValue(ref value, manageGuild, GuildPermission.ManageGuild);
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, 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);
RawValue = value;
}
@@ -130,8 +130,8 @@ namespace Discord
public override string ToString()
{
var perms = new List<string>();
int x = 1;
for (byte i = 0; i < 32 ; i++, x <<= 1)
ulong x = 1;
for (byte i = 0; i < Permissions.MaxBits ; i++, x <<= 1)
{
if ((RawValue & x) != 0)
{