Fix ChannelPermissions Modify parameter to be correct default value (#1003)
* 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.
This commit is contained in:
committed by
Christopher F
parent
f9cbff5e42
commit
a06e21261c
@@ -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? viewChannel = null,
|
||||||
bool? embedLinks = null, bool? attachFiles = null, bool? readMessageHistory = null, bool? mentionEveryone = null,
|
bool? sendMessages = null,
|
||||||
bool? useExternalEmojis = null, bool? connect = null, bool? speak = null, bool? muteMembers = null, bool? deafenMembers = null,
|
bool? sendTTSMessages = null,
|
||||||
bool? moveMembers = null, bool? useVoiceActivation = null, bool? manageRoles = null, bool? manageWebhooks = 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 viewChannel = false,
|
||||||
bool embedLinks = false, bool attachFiles = false, bool readMessageHistory = false, bool mentionEveryone = false,
|
bool sendMessages = false,
|
||||||
bool useExternalEmojis = false, bool connect = false, bool speak = false, bool muteMembers = false, bool deafenMembers = false,
|
bool sendTTSMessages = false,
|
||||||
bool moveMembers = false, bool useVoiceActivation = false, bool manageRoles = false, bool manageWebhooks = 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? viewChannel = null,
|
||||||
bool? embedLinks = null, bool? attachFiles = null, bool? readMessageHistory = null, bool? mentionEveryone = null,
|
bool? sendMessages = null,
|
||||||
bool useExternalEmojis = false, bool? connect = null, bool? speak = null, bool? muteMembers = null, bool? deafenMembers = null,
|
bool? sendTTSMessages = null,
|
||||||
bool? moveMembers = null, bool? useVoiceActivation = null, bool? manageRoles = null, bool? manageWebhooks = null)
|
bool? manageMessages = null,
|
||||||
=> new ChannelPermissions(RawValue, createInstantInvite, manageChannel, addReactions, viewChannel, sendMessages, sendTTSMessages, manageMessages,
|
bool? embedLinks = null,
|
||||||
embedLinks, attachFiles, readMessageHistory, mentionEveryone, useExternalEmojis, connect,
|
bool? attachFiles = null,
|
||||||
speak, muteMembers, deafenMembers, moveMembers, useVoiceActivation, manageRoles, manageWebhooks);
|
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,
|
private GuildPermissions(ulong initialValue,
|
||||||
bool? banMembers = null, bool? administrator = null, bool? manageChannels = null, bool? manageGuild = null,
|
bool? createInstantInvite = null,
|
||||||
bool? addReactions = null, bool? viewAuditLog = null,
|
bool? kickMembers = null,
|
||||||
bool? viewChannel = null, bool? sendMessages = null, bool? sendTTSMessages = null, bool? manageMessages = null,
|
bool? banMembers = null,
|
||||||
bool? embedLinks = null, bool? attachFiles = null, bool? readMessageHistory = null, bool? mentionEveryone = null,
|
bool? administrator = null,
|
||||||
bool? useExternalEmojis = null, bool? connect = null, bool? speak = null, bool? muteMembers = null, bool? deafenMembers = null,
|
bool? manageChannels = null,
|
||||||
bool? moveMembers = null, bool? useVoiceActivation = null, bool? changeNickname = null, bool? manageNicknames = null,
|
bool? manageGuild = null,
|
||||||
bool? manageRoles = null, bool? manageWebhooks = null, bool? manageEmojis = 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,
|
public GuildPermissions(
|
||||||
bool banMembers = false, bool administrator = false, bool manageChannels = false, bool manageGuild = false,
|
bool createInstantInvite = false,
|
||||||
bool addReactions = false, bool viewAuditLog = false,
|
bool kickMembers = false,
|
||||||
bool viewChannel = false, bool sendMessages = false, bool sendTTSMessages = false, bool manageMessages = false,
|
bool banMembers = false,
|
||||||
bool embedLinks = false, bool attachFiles = false, bool readMessageHistory = false, bool mentionEveryone = false,
|
bool administrator = false,
|
||||||
bool useExternalEmojis = false, bool connect = false, bool speak = false, bool muteMembers = false, bool deafenMembers = false,
|
bool manageChannels = false,
|
||||||
bool moveMembers = false, bool useVoiceActivation = false, bool? changeNickname = false, bool? manageNicknames = false,
|
bool manageGuild = false,
|
||||||
bool manageRoles = false, bool manageWebhooks = false, bool manageEmojis = false)
|
bool addReactions = false,
|
||||||
: this(0, createInstantInvite: createInstantInvite, manageRoles: manageRoles, kickMembers: kickMembers, banMembers: banMembers,
|
bool viewAuditLog = false,
|
||||||
administrator: administrator, manageChannels: manageChannels, manageGuild: manageGuild, addReactions: addReactions,
|
bool viewChannel = false,
|
||||||
viewAuditLog: viewAuditLog, viewChannel: viewChannel, sendMessages: sendMessages, sendTTSMessages: sendTTSMessages,
|
bool sendMessages = false,
|
||||||
manageMessages: manageMessages, embedLinks: embedLinks, attachFiles: attachFiles, readMessageHistory: readMessageHistory,
|
bool sendTTSMessages = false,
|
||||||
mentionEveryone: mentionEveryone, useExternalEmojis: useExternalEmojis, connect: connect, speak: speak, muteMembers: muteMembers,
|
bool manageMessages = false,
|
||||||
deafenMembers: deafenMembers, moveMembers: moveMembers, useVoiceActivation: useVoiceActivation, changeNickname: changeNickname,
|
bool embedLinks = false,
|
||||||
manageNicknames: manageNicknames, manageWebhooks: manageWebhooks, manageEmojis: manageEmojis)
|
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,
|
public GuildPermissions Modify(
|
||||||
bool? banMembers = null, bool? administrator = null, bool? manageChannels = null, bool? manageGuild = null,
|
bool? createInstantInvite = null,
|
||||||
bool? addReactions = null, bool? viewAuditLog = null,
|
bool? kickMembers = null,
|
||||||
bool? viewChannel = null, bool? sendMessages = null, bool? sendTTSMessages = null, bool? manageMessages = null,
|
bool? banMembers = null,
|
||||||
bool? embedLinks = null, bool? attachFiles = null, bool? readMessageHistory = null, bool? mentionEveryone = null,
|
bool? administrator = null,
|
||||||
bool? useExternalEmojis = null, bool? connect = null, bool? speak = null, bool? muteMembers = null, bool? deafenMembers = null,
|
bool? manageChannels = null,
|
||||||
bool? moveMembers = null, bool? useVoiceActivation = null, bool? changeNickname = null, bool? manageNicknames = null,
|
bool? manageGuild = null,
|
||||||
bool? manageRoles = null, bool? manageWebhooks = null, bool? manageEmojis = 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? viewChannel = null,
|
||||||
PermValue? embedLinks = null, PermValue? attachFiles = null, PermValue? readMessageHistory = null, PermValue? mentionEveryone = null,
|
PermValue? sendMessages = null,
|
||||||
PermValue? useExternalEmojis = null, PermValue? connect = null, PermValue? speak = null, PermValue? muteMembers = null,
|
PermValue? sendTTSMessages = null,
|
||||||
PermValue? deafenMembers = null, PermValue? moveMembers = null, PermValue? useVoiceActivation = null, PermValue? manageRoles = 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 readMessages = PermValue.Inherit,
|
||||||
PermValue embedLinks = PermValue.Inherit, PermValue attachFiles = PermValue.Inherit, PermValue readMessageHistory = PermValue.Inherit, PermValue mentionEveryone = PermValue.Inherit,
|
PermValue sendMessages = PermValue.Inherit,
|
||||||
PermValue useExternalEmojis = PermValue.Inherit, PermValue connect = PermValue.Inherit, PermValue speak = PermValue.Inherit, PermValue muteMembers = PermValue.Inherit, PermValue deafenMembers = PermValue.Inherit,
|
PermValue sendTTSMessages = PermValue.Inherit,
|
||||||
PermValue moveMembers = PermValue.Inherit, PermValue useVoiceActivation = PermValue.Inherit, PermValue manageRoles = PermValue.Inherit, PermValue manageWebhooks = 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? readMessages = null,
|
||||||
PermValue? embedLinks = null, PermValue? attachFiles = null, PermValue? readMessageHistory = null, PermValue? mentionEveryone = null,
|
PermValue? sendMessages = null,
|
||||||
PermValue? useExternalEmojis = null, PermValue? connect = null, PermValue? speak = null, PermValue? muteMembers = null, PermValue? deafenMembers = null,
|
PermValue? sendTTSMessages = null,
|
||||||
PermValue? moveMembers = null, PermValue? useVoiceActivation = null, PermValue? manageRoles = null, PermValue? manageWebhooks = 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user