* fix channel permissions modify parameter to use nullable boolean, correct default value * Add general tests for the ChannelPermissions.Modify method to test default values * remove unused cast in tests * add guildpermission modify no param tests * Add no-param modify tests for OverwritePermissions * fix inconsistent parameters in GuildPermissions cstr * Adjust formatting of methods and cstrs with many parameters * remove temp file that was included. no idea what that is * Fix System dependency I should really stop fixing merge conflicts in the github website.pull/1070/merge
@@ -87,12 +87,27 @@ namespace Discord | |||||
/// <summary> Creates a new ChannelPermissions with the provided packed value. </summary> | /// <summary> Creates a new ChannelPermissions with the provided packed value. </summary> | ||||
public ChannelPermissions(ulong rawValue) { RawValue = rawValue; } | public ChannelPermissions(ulong rawValue) { RawValue = rawValue; } | ||||
private ChannelPermissions(ulong initialValue, bool? createInstantInvite = null, bool? manageChannel = null, | |||||
private ChannelPermissions(ulong initialValue, | |||||
bool? createInstantInvite = null, | |||||
bool? manageChannel = null, | |||||
bool? addReactions = null, | bool? addReactions = null, | ||||
bool? viewChannel = null, bool? sendMessages = null, bool? sendTTSMessages = null, bool? manageMessages = null, | |||||
bool? embedLinks = null, bool? attachFiles = null, bool? readMessageHistory = null, bool? mentionEveryone = null, | |||||
bool? useExternalEmojis = null, bool? connect = null, bool? speak = null, bool? muteMembers = null, bool? deafenMembers = null, | |||||
bool? moveMembers = null, bool? useVoiceActivation = null, bool? manageRoles = null, bool? manageWebhooks = null) | |||||
bool? viewChannel = null, | |||||
bool? sendMessages = null, | |||||
bool? sendTTSMessages = null, | |||||
bool? manageMessages = null, | |||||
bool? embedLinks = null, | |||||
bool? attachFiles = null, | |||||
bool? readMessageHistory = null, | |||||
bool? mentionEveryone = null, | |||||
bool? useExternalEmojis = null, | |||||
bool? connect = null, | |||||
bool? speak = null, | |||||
bool? muteMembers = null, | |||||
bool? deafenMembers = null, | |||||
bool? moveMembers = null, | |||||
bool? useVoiceActivation = null, | |||||
bool? manageRoles = null, | |||||
bool? manageWebhooks = null) | |||||
{ | { | ||||
ulong value = initialValue; | ulong value = initialValue; | ||||
@@ -121,27 +136,75 @@ namespace Discord | |||||
} | } | ||||
/// <summary> Creates a new ChannelPermissions with the provided permissions. </summary> | /// <summary> Creates a new ChannelPermissions with the provided permissions. </summary> | ||||
public ChannelPermissions(bool createInstantInvite = false, bool manageChannel = false, | |||||
public ChannelPermissions( | |||||
bool createInstantInvite = false, | |||||
bool manageChannel = false, | |||||
bool addReactions = false, | bool addReactions = false, | ||||
bool viewChannel = false, bool sendMessages = false, bool sendTTSMessages = false, bool manageMessages = false, | |||||
bool embedLinks = false, bool attachFiles = false, bool readMessageHistory = false, bool mentionEveryone = false, | |||||
bool useExternalEmojis = false, bool connect = false, bool speak = false, bool muteMembers = false, bool deafenMembers = false, | |||||
bool moveMembers = false, bool useVoiceActivation = false, bool manageRoles = false, bool manageWebhooks = false) | |||||
bool viewChannel = false, | |||||
bool sendMessages = false, | |||||
bool sendTTSMessages = false, | |||||
bool manageMessages = false, | |||||
bool embedLinks = false, | |||||
bool attachFiles = false, | |||||
bool readMessageHistory = false, | |||||
bool mentionEveryone = false, | |||||
bool useExternalEmojis = false, | |||||
bool connect = false, | |||||
bool speak = false, | |||||
bool muteMembers = false, | |||||
bool deafenMembers = false, | |||||
bool moveMembers = false, | |||||
bool useVoiceActivation = false, | |||||
bool manageRoles = false, | |||||
bool manageWebhooks = false) | |||||
: this(0, createInstantInvite, manageChannel, addReactions, viewChannel, sendMessages, sendTTSMessages, manageMessages, | : this(0, createInstantInvite, manageChannel, addReactions, viewChannel, sendMessages, sendTTSMessages, manageMessages, | ||||
embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, | embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, | ||||
speak, muteMembers, deafenMembers, moveMembers, useVoiceActivation, manageRoles, manageWebhooks) | speak, muteMembers, deafenMembers, moveMembers, useVoiceActivation, manageRoles, manageWebhooks) | ||||
{ } | { } | ||||
/// <summary> Creates a new ChannelPermissions from this one, changing the provided non-null permissions. </summary> | /// <summary> Creates a new ChannelPermissions from this one, changing the provided non-null permissions. </summary> | ||||
public ChannelPermissions Modify(bool? createInstantInvite = null, bool? manageChannel = null, | |||||
public ChannelPermissions Modify( | |||||
bool? createInstantInvite = null, | |||||
bool? manageChannel = null, | |||||
bool? addReactions = null, | bool? addReactions = null, | ||||
bool? viewChannel = null, bool? sendMessages = null, bool? sendTTSMessages = null, bool? manageMessages = null, | |||||
bool? embedLinks = null, bool? attachFiles = null, bool? readMessageHistory = null, bool? mentionEveryone = null, | |||||
bool useExternalEmojis = false, bool? connect = null, bool? speak = null, bool? muteMembers = null, bool? deafenMembers = null, | |||||
bool? moveMembers = null, bool? useVoiceActivation = null, bool? manageRoles = null, bool? manageWebhooks = null) | |||||
=> new ChannelPermissions(RawValue, createInstantInvite, manageChannel, addReactions, viewChannel, sendMessages, sendTTSMessages, manageMessages, | |||||
embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, | |||||
speak, muteMembers, deafenMembers, moveMembers, useVoiceActivation, manageRoles, manageWebhooks); | |||||
bool? viewChannel = null, | |||||
bool? sendMessages = null, | |||||
bool? sendTTSMessages = null, | |||||
bool? manageMessages = null, | |||||
bool? embedLinks = null, | |||||
bool? attachFiles = null, | |||||
bool? readMessageHistory = null, | |||||
bool? mentionEveryone = null, | |||||
bool? useExternalEmojis = null, | |||||
bool? connect = null, | |||||
bool? speak = null, | |||||
bool? muteMembers = null, | |||||
bool? deafenMembers = null, | |||||
bool? moveMembers = null, | |||||
bool? useVoiceActivation = null, | |||||
bool? manageRoles = null, | |||||
bool? manageWebhooks = null) | |||||
=> new ChannelPermissions(RawValue, | |||||
createInstantInvite, | |||||
manageChannel, | |||||
addReactions, | |||||
viewChannel, | |||||
sendMessages, | |||||
sendTTSMessages, | |||||
manageMessages, | |||||
embedLinks, | |||||
attachFiles, | |||||
readMessageHistory, | |||||
mentionEveryone, | |||||
useExternalEmojis, | |||||
connect, | |||||
speak, | |||||
muteMembers, | |||||
deafenMembers, | |||||
moveMembers, | |||||
useVoiceActivation, | |||||
manageRoles, | |||||
manageWebhooks); | |||||
public bool Has(ChannelPermission permission) => Permissions.GetValue(RawValue, permission); | public bool Has(ChannelPermission permission) => Permissions.GetValue(RawValue, permission); | ||||
@@ -84,14 +84,35 @@ namespace Discord | |||||
/// <summary> Creates a new GuildPermissions with the provided packed value. </summary> | /// <summary> Creates a new GuildPermissions with the provided packed value. </summary> | ||||
public GuildPermissions(ulong rawValue) { RawValue = rawValue; } | public GuildPermissions(ulong rawValue) { RawValue = rawValue; } | ||||
private GuildPermissions(ulong initialValue, bool? createInstantInvite = null, bool? kickMembers = null, | |||||
bool? banMembers = null, bool? administrator = null, bool? manageChannels = null, bool? manageGuild = null, | |||||
bool? addReactions = null, bool? viewAuditLog = null, | |||||
bool? viewChannel = null, bool? sendMessages = null, bool? sendTTSMessages = null, bool? manageMessages = null, | |||||
bool? embedLinks = null, bool? attachFiles = null, bool? readMessageHistory = null, bool? mentionEveryone = null, | |||||
bool? useExternalEmojis = null, bool? connect = null, bool? speak = null, bool? muteMembers = null, bool? deafenMembers = null, | |||||
bool? moveMembers = null, bool? useVoiceActivation = null, bool? changeNickname = null, bool? manageNicknames = null, | |||||
bool? manageRoles = null, bool? manageWebhooks = null, bool? manageEmojis = null) | |||||
private GuildPermissions(ulong initialValue, | |||||
bool? createInstantInvite = null, | |||||
bool? kickMembers = null, | |||||
bool? banMembers = null, | |||||
bool? administrator = null, | |||||
bool? manageChannels = null, | |||||
bool? manageGuild = null, | |||||
bool? addReactions = null, | |||||
bool? viewAuditLog = null, | |||||
bool? viewChannel = null, | |||||
bool? sendMessages = null, | |||||
bool? sendTTSMessages = null, | |||||
bool? manageMessages = null, | |||||
bool? embedLinks = null, | |||||
bool? attachFiles = null, | |||||
bool? readMessageHistory = null, | |||||
bool? mentionEveryone = null, | |||||
bool? useExternalEmojis = null, | |||||
bool? connect = null, | |||||
bool? speak = null, | |||||
bool? muteMembers = null, | |||||
bool? deafenMembers = null, | |||||
bool? moveMembers = null, | |||||
bool? useVoiceActivation = null, | |||||
bool? changeNickname = null, | |||||
bool? manageNicknames = null, | |||||
bool? manageRoles = null, | |||||
bool? manageWebhooks = null, | |||||
bool? manageEmojis = null) | |||||
{ | { | ||||
ulong value = initialValue; | ulong value = initialValue; | ||||
@@ -128,32 +149,96 @@ namespace Discord | |||||
} | } | ||||
/// <summary> Creates a new GuildPermissions with the provided permissions. </summary> | /// <summary> Creates a new GuildPermissions with the provided permissions. </summary> | ||||
public GuildPermissions(bool createInstantInvite = false, bool kickMembers = false, | |||||
bool banMembers = false, bool administrator = false, bool manageChannels = false, bool manageGuild = false, | |||||
bool addReactions = false, bool viewAuditLog = false, | |||||
bool viewChannel = false, bool sendMessages = false, bool sendTTSMessages = false, bool manageMessages = false, | |||||
bool embedLinks = false, bool attachFiles = false, bool readMessageHistory = false, bool mentionEveryone = false, | |||||
bool useExternalEmojis = false, bool connect = false, bool speak = false, bool muteMembers = false, bool deafenMembers = false, | |||||
bool moveMembers = false, bool useVoiceActivation = false, bool? changeNickname = false, bool? manageNicknames = false, | |||||
bool manageRoles = false, bool manageWebhooks = false, bool manageEmojis = false) | |||||
: this(0, createInstantInvite: createInstantInvite, manageRoles: manageRoles, kickMembers: kickMembers, banMembers: banMembers, | |||||
administrator: administrator, manageChannels: manageChannels, manageGuild: manageGuild, addReactions: addReactions, | |||||
viewAuditLog: viewAuditLog, viewChannel: viewChannel, sendMessages: sendMessages, sendTTSMessages: sendTTSMessages, | |||||
manageMessages: manageMessages, embedLinks: embedLinks, attachFiles: attachFiles, readMessageHistory: readMessageHistory, | |||||
mentionEveryone: mentionEveryone, useExternalEmojis: useExternalEmojis, connect: connect, speak: speak, muteMembers: muteMembers, | |||||
deafenMembers: deafenMembers, moveMembers: moveMembers, useVoiceActivation: useVoiceActivation, changeNickname: changeNickname, | |||||
manageNicknames: manageNicknames, manageWebhooks: manageWebhooks, manageEmojis: manageEmojis) | |||||
public GuildPermissions( | |||||
bool createInstantInvite = false, | |||||
bool kickMembers = false, | |||||
bool banMembers = false, | |||||
bool administrator = false, | |||||
bool manageChannels = false, | |||||
bool manageGuild = false, | |||||
bool addReactions = false, | |||||
bool viewAuditLog = false, | |||||
bool viewChannel = false, | |||||
bool sendMessages = false, | |||||
bool sendTTSMessages = false, | |||||
bool manageMessages = false, | |||||
bool embedLinks = false, | |||||
bool attachFiles = false, | |||||
bool readMessageHistory = false, | |||||
bool mentionEveryone = false, | |||||
bool useExternalEmojis = false, | |||||
bool connect = false, | |||||
bool speak = false, | |||||
bool muteMembers = false, | |||||
bool deafenMembers = false, | |||||
bool moveMembers = false, | |||||
bool useVoiceActivation = false, | |||||
bool changeNickname = false, | |||||
bool manageNicknames = false, | |||||
bool manageRoles = false, | |||||
bool manageWebhooks = false, | |||||
bool manageEmojis = false) | |||||
: this(0, | |||||
createInstantInvite: createInstantInvite, | |||||
manageRoles: manageRoles, | |||||
kickMembers: kickMembers, | |||||
banMembers: banMembers, | |||||
administrator: administrator, | |||||
manageChannels: manageChannels, | |||||
manageGuild: manageGuild, | |||||
addReactions: addReactions, | |||||
viewAuditLog: viewAuditLog, | |||||
viewChannel: viewChannel, | |||||
sendMessages: sendMessages, | |||||
sendTTSMessages: sendTTSMessages, | |||||
manageMessages: manageMessages, | |||||
embedLinks: embedLinks, | |||||
attachFiles: attachFiles, | |||||
readMessageHistory: readMessageHistory, | |||||
mentionEveryone: mentionEveryone, | |||||
useExternalEmojis: useExternalEmojis, | |||||
connect: connect, | |||||
speak: speak, | |||||
muteMembers: muteMembers, | |||||
deafenMembers: deafenMembers, | |||||
moveMembers: moveMembers, | |||||
useVoiceActivation: useVoiceActivation, | |||||
changeNickname: changeNickname, | |||||
manageNicknames: manageNicknames, | |||||
manageWebhooks: manageWebhooks, | |||||
manageEmojis: manageEmojis) | |||||
{ } | { } | ||||
/// <summary> Creates a new GuildPermissions from this one, changing the provided non-null permissions. </summary> | /// <summary> Creates a new GuildPermissions from this one, changing the provided non-null permissions. </summary> | ||||
public GuildPermissions Modify(bool? createInstantInvite = null, bool? kickMembers = null, | |||||
bool? banMembers = null, bool? administrator = null, bool? manageChannels = null, bool? manageGuild = null, | |||||
bool? addReactions = null, bool? viewAuditLog = null, | |||||
bool? viewChannel = null, bool? sendMessages = null, bool? sendTTSMessages = null, bool? manageMessages = null, | |||||
bool? embedLinks = null, bool? attachFiles = null, bool? readMessageHistory = null, bool? mentionEveryone = null, | |||||
bool? useExternalEmojis = null, bool? connect = null, bool? speak = null, bool? muteMembers = null, bool? deafenMembers = null, | |||||
bool? moveMembers = null, bool? useVoiceActivation = null, bool? changeNickname = null, bool? manageNicknames = null, | |||||
bool? manageRoles = null, bool? manageWebhooks = null, bool? manageEmojis = null) | |||||
public GuildPermissions Modify( | |||||
bool? createInstantInvite = null, | |||||
bool? kickMembers = null, | |||||
bool? banMembers = null, | |||||
bool? administrator = null, | |||||
bool? manageChannels = null, | |||||
bool? manageGuild = null, | |||||
bool? addReactions = null, | |||||
bool? viewAuditLog = null, | |||||
bool? viewChannel = null, | |||||
bool? sendMessages = null, | |||||
bool? sendTTSMessages = null, | |||||
bool? manageMessages = null, | |||||
bool? embedLinks = null, | |||||
bool? attachFiles = null, | |||||
bool? readMessageHistory = null, | |||||
bool? mentionEveryone = null, | |||||
bool? useExternalEmojis = null, | |||||
bool? connect = null, | |||||
bool? speak = null, | |||||
bool? muteMembers = null, | |||||
bool? deafenMembers = null, | |||||
bool? moveMembers = null, | |||||
bool? useVoiceActivation = null, | |||||
bool? changeNickname = null, | |||||
bool? manageNicknames = null, | |||||
bool? manageRoles = null, | |||||
bool? manageWebhooks = null, | |||||
bool? manageEmojis = null) | |||||
=> new GuildPermissions(RawValue, createInstantInvite, kickMembers, banMembers, administrator, manageChannels, manageGuild, addReactions, | => new GuildPermissions(RawValue, createInstantInvite, kickMembers, banMembers, administrator, manageChannels, manageGuild, addReactions, | ||||
viewAuditLog, viewChannel, sendMessages, sendTTSMessages, manageMessages, embedLinks, attachFiles, | viewAuditLog, viewChannel, sendMessages, sendTTSMessages, manageMessages, embedLinks, attachFiles, | ||||
readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, moveMembers, | readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, moveMembers, | ||||
@@ -1,4 +1,4 @@ | |||||
using System; | |||||
using System; | |||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Diagnostics; | using System.Diagnostics; | ||||
@@ -74,12 +74,26 @@ namespace Discord | |||||
DenyValue = denyValue; | DenyValue = denyValue; | ||||
} | } | ||||
private OverwritePermissions(ulong allowValue, ulong denyValue, PermValue? createInstantInvite = null, PermValue? manageChannel = null, | |||||
private OverwritePermissions(ulong allowValue, ulong denyValue, | |||||
PermValue? createInstantInvite = null, | |||||
PermValue? manageChannel = null, | |||||
PermValue? addReactions = null, | PermValue? addReactions = null, | ||||
PermValue? viewChannel = null, PermValue? sendMessages = null, PermValue? sendTTSMessages = null, PermValue? manageMessages = null, | |||||
PermValue? embedLinks = null, PermValue? attachFiles = null, PermValue? readMessageHistory = null, PermValue? mentionEveryone = null, | |||||
PermValue? useExternalEmojis = null, PermValue? connect = null, PermValue? speak = null, PermValue? muteMembers = null, | |||||
PermValue? deafenMembers = null, PermValue? moveMembers = null, PermValue? useVoiceActivation = null, PermValue? manageRoles = null, | |||||
PermValue? viewChannel = null, | |||||
PermValue? sendMessages = null, | |||||
PermValue? sendTTSMessages = null, | |||||
PermValue? manageMessages = null, | |||||
PermValue? embedLinks = null, | |||||
PermValue? attachFiles = null, | |||||
PermValue? readMessageHistory = null, | |||||
PermValue? mentionEveryone = null, | |||||
PermValue? useExternalEmojis = null, | |||||
PermValue? connect = null, | |||||
PermValue? speak = null, | |||||
PermValue? muteMembers = null, | |||||
PermValue? deafenMembers = null, | |||||
PermValue? moveMembers = null, | |||||
PermValue? useVoiceActivation = null, | |||||
PermValue? manageRoles = null, | |||||
PermValue? manageWebhooks = null) | PermValue? manageWebhooks = null) | ||||
{ | { | ||||
Permissions.SetValue(ref allowValue, ref denyValue, createInstantInvite, ChannelPermission.CreateInstantInvite); | Permissions.SetValue(ref allowValue, ref denyValue, createInstantInvite, ChannelPermission.CreateInstantInvite); | ||||
@@ -108,23 +122,53 @@ namespace Discord | |||||
} | } | ||||
/// <summary> Creates a new ChannelPermissions with the provided permissions. </summary> | /// <summary> Creates a new ChannelPermissions with the provided permissions. </summary> | ||||
public OverwritePermissions(PermValue createInstantInvite = PermValue.Inherit, PermValue manageChannel = PermValue.Inherit, | |||||
public OverwritePermissions( | |||||
PermValue createInstantInvite = PermValue.Inherit, | |||||
PermValue manageChannel = PermValue.Inherit, | |||||
PermValue addReactions = PermValue.Inherit, | PermValue addReactions = PermValue.Inherit, | ||||
PermValue readMessages = PermValue.Inherit, PermValue sendMessages = PermValue.Inherit, PermValue sendTTSMessages = PermValue.Inherit, PermValue manageMessages = PermValue.Inherit, | |||||
PermValue embedLinks = PermValue.Inherit, PermValue attachFiles = PermValue.Inherit, PermValue readMessageHistory = PermValue.Inherit, PermValue mentionEveryone = PermValue.Inherit, | |||||
PermValue useExternalEmojis = PermValue.Inherit, PermValue connect = PermValue.Inherit, PermValue speak = PermValue.Inherit, PermValue muteMembers = PermValue.Inherit, PermValue deafenMembers = PermValue.Inherit, | |||||
PermValue moveMembers = PermValue.Inherit, PermValue useVoiceActivation = PermValue.Inherit, PermValue manageRoles = PermValue.Inherit, PermValue manageWebhooks = PermValue.Inherit) | |||||
PermValue readMessages = PermValue.Inherit, | |||||
PermValue sendMessages = PermValue.Inherit, | |||||
PermValue sendTTSMessages = PermValue.Inherit, | |||||
PermValue manageMessages = PermValue.Inherit, | |||||
PermValue embedLinks = PermValue.Inherit, | |||||
PermValue attachFiles = PermValue.Inherit, | |||||
PermValue readMessageHistory = PermValue.Inherit, | |||||
PermValue mentionEveryone = PermValue.Inherit, | |||||
PermValue useExternalEmojis = PermValue.Inherit, | |||||
PermValue connect = PermValue.Inherit, | |||||
PermValue speak = PermValue.Inherit, | |||||
PermValue muteMembers = PermValue.Inherit, | |||||
PermValue deafenMembers = PermValue.Inherit, | |||||
PermValue moveMembers = PermValue.Inherit, | |||||
PermValue useVoiceActivation = PermValue.Inherit, | |||||
PermValue manageRoles = PermValue.Inherit, | |||||
PermValue manageWebhooks = PermValue.Inherit) | |||||
: this(0, 0, createInstantInvite, manageChannel, addReactions, readMessages, sendMessages, sendTTSMessages, manageMessages, | : this(0, 0, createInstantInvite, manageChannel, addReactions, readMessages, sendMessages, sendTTSMessages, manageMessages, | ||||
embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, | embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, | ||||
moveMembers, useVoiceActivation, manageRoles, manageWebhooks) { } | moveMembers, useVoiceActivation, manageRoles, manageWebhooks) { } | ||||
/// <summary> Creates a new OverwritePermissions from this one, changing the provided non-null permissions. </summary> | /// <summary> Creates a new OverwritePermissions from this one, changing the provided non-null permissions. </summary> | ||||
public OverwritePermissions Modify(PermValue? createInstantInvite = null, PermValue? manageChannel = null, | |||||
public OverwritePermissions Modify( | |||||
PermValue? createInstantInvite = null, | |||||
PermValue? manageChannel = null, | |||||
PermValue? addReactions = null, | PermValue? addReactions = null, | ||||
PermValue? readMessages = null, PermValue? sendMessages = null, PermValue? sendTTSMessages = null, PermValue? manageMessages = null, | |||||
PermValue? embedLinks = null, PermValue? attachFiles = null, PermValue? readMessageHistory = null, PermValue? mentionEveryone = null, | |||||
PermValue? useExternalEmojis = null, PermValue? connect = null, PermValue? speak = null, PermValue? muteMembers = null, PermValue? deafenMembers = null, | |||||
PermValue? moveMembers = null, PermValue? useVoiceActivation = null, PermValue? manageRoles = null, PermValue? manageWebhooks = null) | |||||
PermValue? readMessages = null, | |||||
PermValue? sendMessages = null, | |||||
PermValue? sendTTSMessages = null, | |||||
PermValue? manageMessages = null, | |||||
PermValue? embedLinks = null, | |||||
PermValue? attachFiles = null, | |||||
PermValue? readMessageHistory = null, | |||||
PermValue? mentionEveryone = null, | |||||
PermValue? useExternalEmojis = null, | |||||
PermValue? connect = null, | |||||
PermValue? speak = null, | |||||
PermValue? muteMembers = null, | |||||
PermValue? deafenMembers = null, | |||||
PermValue? moveMembers = null, | |||||
PermValue? useVoiceActivation = null, | |||||
PermValue? manageRoles = null, | |||||
PermValue? manageWebhooks = null) | |||||
=> new OverwritePermissions(AllowValue, DenyValue, createInstantInvite, manageChannel, addReactions, readMessages, sendMessages, sendTTSMessages, manageMessages, | => new OverwritePermissions(AllowValue, DenyValue, createInstantInvite, manageChannel, addReactions, readMessages, sendMessages, sendTTSMessages, manageMessages, | ||||
embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, | embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect, speak, muteMembers, deafenMembers, | ||||
moveMembers, useVoiceActivation, manageRoles, manageWebhooks); | moveMembers, useVoiceActivation, manageRoles, manageWebhooks); | ||||
@@ -22,6 +22,27 @@ namespace Discord | |||||
var copy = perm.Modify(); | var copy = perm.Modify(); | ||||
Assert.Equal((ulong)0, copy.RawValue); | Assert.Equal((ulong)0, copy.RawValue); | ||||
// test modify with no parameters after using all | |||||
copy = ChannelPermissions.Text; | |||||
var modified = copy.Modify(); // no params should not change the result | |||||
Assert.Equal(ChannelPermissions.Text.RawValue, modified.RawValue); | |||||
copy = ChannelPermissions.Voice; | |||||
modified = copy.Modify(); // no params should not change the result | |||||
Assert.Equal(ChannelPermissions.Voice.RawValue, modified.RawValue); | |||||
copy = ChannelPermissions.Group; | |||||
modified = copy.Modify(); // no params should not change the result | |||||
Assert.Equal(ChannelPermissions.Group.RawValue, modified.RawValue); | |||||
copy = ChannelPermissions.DM; | |||||
modified = copy.Modify(); // no params should not change the result | |||||
Assert.Equal(ChannelPermissions.DM.RawValue, modified.RawValue); | |||||
copy = new ChannelPermissions(useExternalEmojis: true); | |||||
modified = copy.Modify(); | |||||
Assert.Equal(copy.RawValue, modified.RawValue); | |||||
// test the values that are returned by ChannelPermission.All | // test the values that are returned by ChannelPermission.All | ||||
Assert.Equal((ulong)0, ChannelPermissions.None.RawValue); | Assert.Equal((ulong)0, ChannelPermissions.None.RawValue); | ||||
@@ -26,6 +26,18 @@ namespace Discord | |||||
// ensure that the raw values match | // ensure that the raw values match | ||||
Assert.Equal((ulong)0, copy.RawValue); | Assert.Equal((ulong)0, copy.RawValue); | ||||
// test modify with no parameters | |||||
copy = GuildPermissions.None.Modify(); | |||||
Assert.Equal(GuildPermissions.None.RawValue, copy.RawValue); | |||||
// test modify with no paramters on all permissions | |||||
copy = GuildPermissions.All.Modify(); | |||||
Assert.Equal(GuildPermissions.All.RawValue, copy.RawValue); | |||||
// test modify with no paramters on webhook permissions | |||||
copy = GuildPermissions.Webhook.Modify(); | |||||
Assert.Equal(GuildPermissions.Webhook.RawValue, copy.RawValue); | |||||
// test GuildPermissions.All | // test GuildPermissions.All | ||||
ulong sumOfAllGuildPermissions = 0; | ulong sumOfAllGuildPermissions = 0; | ||||
foreach(var v in Enum.GetValues(typeof(GuildPermission))) | foreach(var v in Enum.GetValues(typeof(GuildPermission))) | ||||
@@ -702,5 +702,71 @@ namespace Discord | |||||
return Task.CompletedTask; | return Task.CompletedTask; | ||||
} | } | ||||
/// <summary> | |||||
/// Tests for the <see cref="OverwritePermissions.Modify(PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?, PermValue?)"/> | |||||
/// method to ensure that the default no-param call does not modify the resulting value | |||||
/// of the OverwritePermissions. | |||||
/// </summary> | |||||
/// <returns></returns> | |||||
public Task TestOverwritePermissionModifyNoParam() | |||||
{ | |||||
// test for all Text allowed, none denied | |||||
var original = new OverwritePermissions(ChannelPermissions.Text.RawValue, ChannelPermissions.None.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
// none allowed, text denied | |||||
original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Text.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
// category allowed, none denied | |||||
original = new OverwritePermissions(ChannelPermissions.Category.RawValue, ChannelPermissions.None.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
// none allowed, category denied | |||||
original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Category.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
// DM allowed, none denied | |||||
original = new OverwritePermissions(ChannelPermissions.DM.RawValue, ChannelPermissions.None.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
// none allowed, DM denied | |||||
original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.DM.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
// voice allowed, none denied | |||||
original = new OverwritePermissions(ChannelPermissions.Voice.RawValue, ChannelPermissions.None.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
// none allowed, voice denied | |||||
original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Voice.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
// group allowed, none denied | |||||
original = new OverwritePermissions(ChannelPermissions.Group.RawValue, ChannelPermissions.None.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
// none allowed, group denied | |||||
original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.Group.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
// none allowed, none denied | |||||
original = new OverwritePermissions(ChannelPermissions.None.RawValue, ChannelPermissions.None.RawValue); | |||||
Assert.Equal(original.AllowValue, original.Modify().AllowValue); | |||||
Assert.Equal(original.DenyValue, original.Modify().DenyValue); | |||||
return Task.CompletedTask; | |||||
} | |||||
} | } | ||||
} | } |