@@ -17,6 +17,16 @@ namespace Discord | |||
/// </summary> | |||
public Optional<bool> IsDefaultPermission { get; set; } | |||
/// <summary> | |||
/// Gets or sets whether or not this command can be used in DMs. | |||
/// </summary> | |||
public Optional<bool> IsDMEnabled { get; set; } | |||
/// <summary> | |||
/// Gets or sets the default permissions required by a user to execute this application command. | |||
/// </summary> | |||
public Optional<GuildPermission> DefaultMemberPermissions { get; set; } | |||
internal ApplicationCommandProperties() { } | |||
} | |||
} |
@@ -31,6 +31,16 @@ namespace Discord | |||
/// </summary> | |||
public bool IsDefaultPermission { get; set; } = true; | |||
/// <summary> | |||
/// Gets or sets whether or not this command can be used in DMs. | |||
/// </summary> | |||
public bool IsDMEnabled { get; set; } = true; | |||
/// <summary> | |||
/// Gets or sets the default permission required to use this slash command. | |||
/// </summary> | |||
public GuildPermission? DefaultMemberPermissions { get; set; } | |||
private string _name; | |||
/// <summary> | |||
@@ -44,7 +54,9 @@ namespace Discord | |||
var props = new MessageCommandProperties | |||
{ | |||
Name = Name, | |||
IsDefaultPermission = IsDefaultPermission | |||
IsDefaultPermission = IsDefaultPermission, | |||
IsDMEnabled = IsDMEnabled, | |||
DefaultMemberPermissions = DefaultMemberPermissions ?? Optional<GuildPermission>.Unspecified | |||
}; | |||
return props; | |||
@@ -73,5 +85,27 @@ namespace Discord | |||
IsDefaultPermission = isDefaultPermission; | |||
return this; | |||
} | |||
/// <summary> | |||
/// Sets whether or not this command can be used in dms | |||
/// </summary> | |||
/// <param name="permission"><see langword="true"/> if the command is available in dms, otherwise <see langword="false"/>.</param> | |||
/// <returns>The current builder.</returns> | |||
public MessageCommandBuilder WithDMPermission(bool permission) | |||
{ | |||
IsDMEnabled = permission; | |||
return this; | |||
} | |||
/// <summary> | |||
/// Sets the default member permissions required to use this application command. | |||
/// </summary> | |||
/// <param name="permissions">The permissions required to use this command.</param> | |||
/// <returns>The current builder.</returns> | |||
public MessageCommandBuilder WithDefaultMemberPermissions(GuildPermission? permissions) | |||
{ | |||
DefaultMemberPermissions = permissions; | |||
return this; | |||
} | |||
} | |||
} |
@@ -31,6 +31,16 @@ namespace Discord | |||
/// </summary> | |||
public bool IsDefaultPermission { get; set; } = true; | |||
/// <summary> | |||
/// Gets or sets whether or not this command can be used in DMs. | |||
/// </summary> | |||
public bool IsDMEnabled { get; set; } = true; | |||
/// <summary> | |||
/// Gets or sets the default permission required to use this slash command. | |||
/// </summary> | |||
public GuildPermission? DefaultMemberPermissions { get; set; } | |||
private string _name; | |||
/// <summary> | |||
@@ -42,7 +52,9 @@ namespace Discord | |||
var props = new UserCommandProperties | |||
{ | |||
Name = Name, | |||
IsDefaultPermission = IsDefaultPermission | |||
IsDefaultPermission = IsDefaultPermission, | |||
IsDMEnabled = IsDMEnabled, | |||
DefaultMemberPermissions = DefaultMemberPermissions ?? Optional<GuildPermission>.Unspecified | |||
}; | |||
return props; | |||
@@ -71,5 +83,27 @@ namespace Discord | |||
IsDefaultPermission = isDefaultPermission; | |||
return this; | |||
} | |||
/// <summary> | |||
/// Sets whether or not this command can be used in dms | |||
/// </summary> | |||
/// <param name="permission"><see langword="true"/> if the command is available in dms, otherwise <see langword="false"/>.</param> | |||
/// <returns>The current builder.</returns> | |||
public UserCommandBuilder WithDMPermission(bool permission) | |||
{ | |||
IsDMEnabled = permission; | |||
return this; | |||
} | |||
/// <summary> | |||
/// Sets the default member permissions required to use this application command. | |||
/// </summary> | |||
/// <param name="permissions">The permissions required to use this command.</param> | |||
/// <returns>The current builder.</returns> | |||
public UserCommandBuilder WithDefaultMemberPermissions(GuildPermission? permissions) | |||
{ | |||
DefaultMemberPermissions = permissions; | |||
return this; | |||
} | |||
} | |||
} |
@@ -81,6 +81,16 @@ namespace Discord | |||
/// </summary> | |||
public bool IsDefaultPermission { get; set; } = true; | |||
/// <summary> | |||
/// Gets or sets whether or not this command can be used in DMs. | |||
/// </summary> | |||
public bool IsDMEnabled { get; set; } = true; | |||
/// <summary> | |||
/// Gets or sets the default permission required to use this slash command. | |||
/// </summary> | |||
public GuildPermission? DefaultMemberPermissions { get; set; } | |||
private string _name; | |||
private string _description; | |||
private List<SlashCommandOptionBuilder> _options; | |||
@@ -96,6 +106,8 @@ namespace Discord | |||
Name = Name, | |||
Description = Description, | |||
IsDefaultPermission = IsDefaultPermission, | |||
IsDMEnabled = IsDMEnabled, | |||
DefaultMemberPermissions = DefaultMemberPermissions ?? Optional<GuildPermission>.Unspecified | |||
}; | |||
if (Options != null && Options.Any()) | |||
@@ -145,6 +157,28 @@ namespace Discord | |||
return this; | |||
} | |||
/// <summary> | |||
/// Sets whether or not this command can be used in dms | |||
/// </summary> | |||
/// <param name="permission"><see langword="true"/> if the command is available in dms, otherwise <see langword="false"/>.</param> | |||
/// <returns>The current builder.</returns> | |||
public SlashCommandBuilder WithDMPermission(bool permission) | |||
{ | |||
IsDMEnabled = permission; | |||
return this; | |||
} | |||
/// <summary> | |||
/// Sets the default member permissions required to use this application command. | |||
/// </summary> | |||
/// <param name="permissions">The permissions required to use this command.</param> | |||
/// <returns>The current builder.</returns> | |||
public SlashCommandBuilder WithDefaultMemberPermissions(GuildPermission? permissions) | |||
{ | |||
DefaultMemberPermissions = permissions; | |||
return this; | |||
} | |||
/// <summary> | |||
/// Adds an option to the current slash command. | |||
/// </summary> | |||
@@ -24,5 +24,12 @@ namespace Discord.API | |||
[JsonProperty("default_permission")] | |||
public Optional<bool> DefaultPermissions { get; set; } | |||
// V2 Permissions | |||
[JsonProperty("dm_permissions")] | |||
public Optional<bool?> DmPermission { get; set; } | |||
[JsonProperty("default_member_permissions")] | |||
public Optional<GuildPermission?> DefaultMemberPermission { get; set; } | |||
} | |||
} |
@@ -19,6 +19,12 @@ namespace Discord.API.Rest | |||
[JsonProperty("default_permission")] | |||
public Optional<bool> DefaultPermission { get; set; } | |||
[JsonProperty("dm_permissions")] | |||
public Optional<bool?> DmPermission { get; set; } | |||
[JsonProperty("default_member_permissions")] | |||
public Optional<GuildPermission?> DefaultMemberPermission { get; set; } | |||
public CreateApplicationCommandParams() { } | |||
public CreateApplicationCommandParams(string name, string description, ApplicationCommandType type, ApplicationCommandOption[] options = null) | |||
{ | |||
@@ -100,7 +100,12 @@ namespace Discord.Rest | |||
Type = arg.Type, | |||
DefaultPermission = arg.IsDefaultPermission.IsSpecified | |||
? arg.IsDefaultPermission.Value | |||
: Optional<bool>.Unspecified | |||
: Optional<bool>.Unspecified, | |||
// TODO: better conversion to nullable optionals | |||
DefaultMemberPermission = arg.DefaultMemberPermissions.ToNullable(), | |||
DmPermission = arg.IsDMEnabled.ToNullable() | |||
}; | |||
if (arg is SlashCommandProperties slashProps) | |||
@@ -134,7 +139,11 @@ namespace Discord.Rest | |||
Type = arg.Type, | |||
DefaultPermission = arg.IsDefaultPermission.IsSpecified | |||
? arg.IsDefaultPermission.Value | |||
: Optional<bool>.Unspecified | |||
: Optional<bool>.Unspecified, | |||
// TODO: better conversion to nullable optionals | |||
DefaultMemberPermission = arg.DefaultMemberPermissions.ToNullable(), | |||
DmPermission = arg.IsDMEnabled.ToNullable() | |||
}; | |||
if (arg is SlashCommandProperties slashProps) | |||
@@ -171,7 +180,11 @@ namespace Discord.Rest | |||
Type = arg.Type, | |||
DefaultPermission = arg.IsDefaultPermission.IsSpecified | |||
? arg.IsDefaultPermission.Value | |||
: Optional<bool>.Unspecified | |||
: Optional<bool>.Unspecified, | |||
// TODO: better conversion to nullable optionals | |||
DefaultMemberPermission = arg.DefaultMemberPermissions.ToNullable(), | |||
DmPermission = arg.IsDMEnabled.ToNullable() | |||
}; | |||
if (arg is SlashCommandProperties slashProps) | |||
@@ -285,7 +298,11 @@ namespace Discord.Rest | |||
Type = arg.Type, | |||
DefaultPermission = arg.IsDefaultPermission.IsSpecified | |||
? arg.IsDefaultPermission.Value | |||
: Optional<bool>.Unspecified | |||
: Optional<bool>.Unspecified, | |||
// TODO: better conversion to nullable optionals | |||
DefaultMemberPermission = arg.DefaultMemberPermissions.ToNullable(), | |||
DmPermission = arg.IsDMEnabled.ToNullable() | |||
}; | |||
if (arg is SlashCommandProperties slashProps) | |||