diff --git a/src/Discord.Net.Core/Entities/Permissions/ChannelPermissions.cs b/src/Discord.Net.Core/Entities/Permissions/ChannelPermissions.cs index 74b4fd332..22e85263c 100644 --- a/src/Discord.Net.Core/Entities/Permissions/ChannelPermissions.cs +++ b/src/Discord.Net.Core/Entities/Permissions/ChannelPermissions.cs @@ -143,7 +143,7 @@ namespace Discord var perms = new List(); for (byte i = 0; i < Permissions.MaxBits; i++) { - ulong flag = (ulong)Math.Pow(2, i); + ulong flag = ((ulong)1 << i); if ((RawValue & flag) != 0) perms.Add((ChannelPermission)flag); } diff --git a/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs b/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs index 417d8e349..030ccd587 100644 --- a/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs +++ b/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Diagnostics; namespace Discord @@ -161,7 +160,7 @@ namespace Discord // each of the GuildPermissions increments by 2^i from 0 to MaxBits for (byte i = 0; i < Permissions.MaxBits; i++) { - ulong flag = (ulong)Math.Pow(2, i); + ulong flag = ((ulong)1 << i); if ((RawValue & flag) != 0) perms.Add((GuildPermission)flag); } diff --git a/src/Discord.Net.Core/Entities/Permissions/OverwritePermissions.cs b/src/Discord.Net.Core/Entities/Permissions/OverwritePermissions.cs index 10ea961c5..c3e296e2c 100644 --- a/src/Discord.Net.Core/Entities/Permissions/OverwritePermissions.cs +++ b/src/Discord.Net.Core/Entities/Permissions/OverwritePermissions.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Diagnostics; namespace Discord @@ -131,7 +130,8 @@ namespace Discord var perms = new List(); for (byte i = 0; i < Permissions.MaxBits; i++) { - ulong flag = (ulong)Math.Pow(2, i); + // first operand must be long or ulong to shift >31 bits + ulong flag = ((ulong)1 << i); if ((AllowValue & flag) != 0) perms.Add((ChannelPermission)flag); } @@ -142,7 +142,7 @@ namespace Discord var perms = new List(); for (byte i = 0; i < Permissions.MaxBits; i++) { - ulong flag = (ulong)Math.Pow(2, i); + ulong flag = ((ulong)1 << i); if ((DenyValue & flag) != 0) perms.Add((ChannelPermission)flag); }