From 245adfcbb172aa2e9fc5eefbd4f62ab1956faa99 Mon Sep 17 00:00:00 2001 From: "bakabaka.bunbun" <54648150+bakabun@users.noreply.github.com> Date: Sat, 5 Sep 2020 14:37:24 +0700 Subject: [PATCH 1/2] feature: Add "View Guild Insights" permission --- .../Entities/Permissions/GuildPermission.cs | 4 ++++ .../Entities/Permissions/GuildPermissions.cs | 11 +++++++++-- test/Discord.Net.Tests.Unit/GuildPermissionsTests.cs | 2 ++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Discord.Net.Core/Entities/Permissions/GuildPermission.cs b/src/Discord.Net.Core/Entities/Permissions/GuildPermission.cs index 3c8a5e810f..645b674898 100644 --- a/src/Discord.Net.Core/Entities/Permissions/GuildPermission.cs +++ b/src/Discord.Net.Core/Entities/Permissions/GuildPermission.cs @@ -51,6 +51,10 @@ public enum GuildPermission : ulong /// authentication when used on a guild that has server-wide 2FA enabled. /// ManageGuild = 0x00_00_00_20, + /// + /// Allows for viewing of guild insights + /// + ViewGuildInsights = 0x00_08_00_00, // Text /// diff --git a/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs b/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs index a5adad47cc..600556c7d1 100644 --- a/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs +++ b/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs @@ -12,7 +12,7 @@ public struct GuildPermissions /// Gets a that grants all guild permissions for webhook users. public static readonly GuildPermissions Webhook = new GuildPermissions(0b00000_0000000_0001101100000_000000); /// Gets a that grants all guild permissions. - public static readonly GuildPermissions All = new GuildPermissions(0b11111_1111110_1111111111111_111111); + public static readonly GuildPermissions All = new GuildPermissions(0b11111_1111111_1111111111111_111111); /// Gets a packed value representing all the permissions in this . public ulong RawValue { get; } @@ -35,6 +35,8 @@ public struct GuildPermissions /// If true, a user may view the audit log. public bool ViewAuditLog => Permissions.GetValue(RawValue, GuildPermission.ViewAuditLog); + public bool ViewGuildInsights => Permissions.GetValue(RawValue, GuildPermission.ViewGuildInsights); + /// If True, a user may join channels. [Obsolete("Use ViewChannel instead.")] public bool ReadMessages => ViewChannel; @@ -97,6 +99,7 @@ private GuildPermissions(ulong initialValue, bool? manageGuild = null, bool? addReactions = null, bool? viewAuditLog = null, + bool? viewGuildInsights = null, bool? viewChannel = null, bool? sendMessages = null, bool? sendTTSMessages = null, @@ -130,6 +133,7 @@ private GuildPermissions(ulong initialValue, 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, viewGuildInsights, GuildPermission.ViewGuildInsights); Permissions.SetValue(ref value, viewChannel, GuildPermission.ViewChannel); Permissions.SetValue(ref value, sendMessages, GuildPermission.SendMessages); Permissions.SetValue(ref value, sendTTSMessages, GuildPermission.SendTTSMessages); @@ -166,6 +170,7 @@ public GuildPermissions( bool manageGuild = false, bool addReactions = false, bool viewAuditLog = false, + bool viewGuildInsights = false, bool viewChannel = false, bool sendMessages = false, bool sendTTSMessages = false, @@ -198,6 +203,7 @@ public GuildPermissions( manageGuild: manageGuild, addReactions: addReactions, viewAuditLog: viewAuditLog, + viewGuildInsights: viewGuildInsights, viewChannel: viewChannel, sendMessages: sendMessages, sendTTSMessages: sendTTSMessages, @@ -231,6 +237,7 @@ public GuildPermissions Modify( bool? manageGuild = null, bool? addReactions = null, bool? viewAuditLog = null, + bool? viewGuildInsights = null, bool? viewChannel = null, bool? sendMessages = null, bool? sendTTSMessages = null, @@ -254,7 +261,7 @@ public GuildPermissions Modify( bool? manageWebhooks = null, bool? manageEmojis = null) => new GuildPermissions(RawValue, createInstantInvite, kickMembers, banMembers, administrator, manageChannels, manageGuild, addReactions, - viewAuditLog, viewChannel, sendMessages, sendTTSMessages, manageMessages, embedLinks, attachFiles, + viewAuditLog, viewGuildInsights, viewChannel, sendMessages, sendTTSMessages, manageMessages, embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, moveMembers, useVoiceActivation, prioritySpeaker, stream, changeNickname, manageNicknames, manageRoles, manageWebhooks, manageEmojis); diff --git a/test/Discord.Net.Tests.Unit/GuildPermissionsTests.cs b/test/Discord.Net.Tests.Unit/GuildPermissionsTests.cs index f0611fa24a..cd29b2606b 100644 --- a/test/Discord.Net.Tests.Unit/GuildPermissionsTests.cs +++ b/test/Discord.Net.Tests.Unit/GuildPermissionsTests.cs @@ -69,6 +69,7 @@ void AssertFlag(Func cstr, GuildPermission flag) AssertFlag(() => new GuildPermissions(manageGuild: true), GuildPermission.ManageGuild); AssertFlag(() => new GuildPermissions(addReactions: true), GuildPermission.AddReactions); AssertFlag(() => new GuildPermissions(viewAuditLog: true), GuildPermission.ViewAuditLog); + AssertFlag(() => new GuildPermissions(viewGuildInsights: true), GuildPermission.ViewGuildInsights); AssertFlag(() => new GuildPermissions(viewChannel: true), GuildPermission.ViewChannel); AssertFlag(() => new GuildPermissions(sendMessages: true), GuildPermission.SendMessages); AssertFlag(() => new GuildPermissions(sendTTSMessages: true), GuildPermission.SendTTSMessages); @@ -141,6 +142,7 @@ void AssertUtil(GuildPermission permission, AssertUtil(GuildPermission.ManageGuild, x => x.ManageGuild, (p, enable) => p.Modify(manageGuild: enable)); AssertUtil(GuildPermission.AddReactions, x => x.AddReactions, (p, enable) => p.Modify(addReactions: enable)); AssertUtil(GuildPermission.ViewAuditLog, x => x.ViewAuditLog, (p, enable) => p.Modify(viewAuditLog: enable)); + AssertUtil(GuildPermission.ViewGuildInsights, x => x.ViewGuildInsights, (p, enable) => p.Modify(viewGuildInsights: enable)); AssertUtil(GuildPermission.ViewChannel, x => x.ViewChannel, (p, enable) => p.Modify(viewChannel: enable)); AssertUtil(GuildPermission.SendMessages, x => x.SendMessages, (p, enable) => p.Modify(sendMessages: enable)); AssertUtil(GuildPermission.SendTTSMessages, x => x.SendTTSMessages, (p, enable) => p.Modify(sendTTSMessages: enable)); From 4eafb8e6717dba61d6a4a195cc64ed844fd92a12 Mon Sep 17 00:00:00 2001 From: Paulo Date: Sat, 7 Nov 2020 16:09:38 -0300 Subject: [PATCH 2/2] Add missing summary --- src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs b/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs index 600556c7d1..ba6757fc60 100644 --- a/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs +++ b/src/Discord.Net.Core/Entities/Permissions/GuildPermissions.cs @@ -34,7 +34,7 @@ public struct GuildPermissions public bool AddReactions => Permissions.GetValue(RawValue, GuildPermission.AddReactions); /// If true, a user may view the audit log. public bool ViewAuditLog => Permissions.GetValue(RawValue, GuildPermission.ViewAuditLog); - + /// If true, a user may view the guild insights. public bool ViewGuildInsights => Permissions.GetValue(RawValue, GuildPermission.ViewGuildInsights); /// If True, a user may join channels.