* Fix ' />' caused by Agent Smith oddities * Fix styling to be more specific about the mention of IDspull/1161/head
@@ -5,7 +5,7 @@ using System.Reflection; | |||
namespace Discord.Commands | |||
{ | |||
/// <summary> | |||
/// Marks the <see cref="Type"/> to be read by the specified <see cref="TypeReader" />. | |||
/// Marks the <see cref="Type"/> to be read by the specified <see cref="TypeReader"/>. | |||
/// </summary> | |||
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)] | |||
public class OverrideTypeReaderAttribute : Attribute | |||
@@ -19,7 +19,7 @@ namespace Discord.Commands | |||
public ChannelPermission? ChannelPermission { get; } | |||
/// <summary> | |||
/// Requires the bot account to have a specific <see cref="Discord.GuildPermission" />. | |||
/// Requires the bot account to have a specific <see cref="Discord.GuildPermission"/>. | |||
/// </summary> | |||
/// <remarks> | |||
/// This precondition will always fail if the command is being invoked in a <see cref="IPrivateChannel"/>. | |||
@@ -19,7 +19,7 @@ namespace Discord.Commands | |||
public ChannelPermission? ChannelPermission { get; } | |||
/// <summary> | |||
/// Requires that the user invoking the command to have a specific <see cref="Discord.GuildPermission" />. | |||
/// Requires that the user invoking the command to have a specific <see cref="Discord.GuildPermission"/>. | |||
/// </summary> | |||
/// <remarks> | |||
/// This precondition will always fail if the command is being invoked in a <see cref="IPrivateChannel"/>. | |||
@@ -41,17 +41,17 @@ namespace Discord.Commands | |||
internal readonly IReadOnlyDictionary<char, char> _quotationMarkAliasMap; | |||
/// <summary> | |||
/// Represents all modules loaded within <see cref="CommandService" />. | |||
/// Represents all modules loaded within <see cref="CommandService"/>. | |||
/// </summary> | |||
public IEnumerable<ModuleInfo> Modules => _moduleDefs.Select(x => x); | |||
/// <summary> | |||
/// Represents all commands loaded within <see cref="CommandService" />. | |||
/// Represents all commands loaded within <see cref="CommandService"/>. | |||
/// </summary> | |||
public IEnumerable<CommandInfo> Commands => _moduleDefs.SelectMany(x => x.Commands); | |||
/// <summary> | |||
/// Represents all <see cref="TypeReader" /> loaded within <see cref="CommandService" />. | |||
/// Represents all <see cref="TypeReader" /> loaded within <see cref="CommandService"/>. | |||
/// </summary> | |||
public ILookup<Type, TypeReader> TypeReaders => _typeReaders.SelectMany(x => x.Value.Select(y => new { y.Key, y.Value })).ToLookup(x => x.Key, x => x.Value); | |||
@@ -130,30 +130,30 @@ namespace Discord.Commands | |||
} | |||
/// <summary> | |||
/// Add a command module from a <see cref="Type" />. | |||
/// Add a command module from a <see cref="Type"/>. | |||
/// </summary> | |||
/// <typeparam name="T">The type of module.</typeparam> | |||
/// <param name="services"> | |||
/// The <see cref="IServiceProvider" /> for your dependency injection solution, if using one - otherwise, pass | |||
/// The <see cref="IServiceProvider"/> for your dependency injection solution if using one; otherwise, pass | |||
/// <c>null</c>. | |||
/// </param> | |||
/// <returns> | |||
/// A built module. | |||
/// An awaitable <see cref="Task"/> containing the built module. | |||
/// </returns> | |||
/// <exception cref="ArgumentException">This module has already been added.</exception> | |||
/// <exception cref="InvalidOperationException">The <see cref="ModuleInfo"/> fails to be built; an invalid type may have been provided.</exception> | |||
public Task<ModuleInfo> AddModuleAsync<T>(IServiceProvider services) => AddModuleAsync(typeof(T), services); | |||
/// <summary> | |||
/// Adds a command module from a <see cref="Type" />. | |||
/// Adds a command module from a <see cref="Type"/>. | |||
/// </summary> | |||
/// <param name="type">The type of module.</param> | |||
/// <param name="services"> | |||
/// The <see cref="IServiceProvider" /> for your dependency injection solution, if using one - otherwise, pass | |||
/// The <see cref="IServiceProvider"/> for your dependency injection solution if using one; otherwise, pass | |||
/// <c>null</c>. | |||
/// </param> | |||
/// <returns> | |||
/// A built module. | |||
/// An awaitable <see cref="Task"/> containing the built module. | |||
/// </returns> | |||
/// <exception cref="ArgumentException">This module has already been added.</exception> | |||
/// <exception cref="InvalidOperationException">The <see cref="ModuleInfo"/> fails to be built; an invalid type may have been provided.</exception> | |||
@@ -184,15 +184,15 @@ namespace Discord.Commands | |||
} | |||
} | |||
/// <summary> | |||
/// Add command modules from an <see cref="Assembly" />. | |||
/// Add command modules from an <see cref="Assembly"/>. | |||
/// </summary> | |||
/// <param name="assembly">The <see cref="Assembly" /> containing command modules.</param> | |||
/// <param name="services"> | |||
/// An <see cref="IServiceProvider" /> for your dependency injection solution, if using one - otherwise, pass | |||
/// The <see cref="IServiceProvider"/> for your dependency injection solution if using one; otherwise, pass | |||
/// <c>null</c>. | |||
/// </param> | |||
/// <returns> | |||
/// A collection of built modules. | |||
/// An awaitable <see cref="Task"/> containing the built module. | |||
/// </returns> | |||
public async Task<IEnumerable<ModuleInfo>> AddModulesAsync(Assembly assembly, IServiceProvider services) | |||
{ | |||
@@ -296,22 +296,24 @@ namespace Discord.Commands | |||
//Type Readers | |||
/// <summary> | |||
/// Adds a custom <see cref="TypeReader" /> to this <see cref="CommandService" /> for the supplied object type. | |||
/// If <typeparamref name="T" /> is a <see cref="ValueType" />, a nullable <see cref="TypeReader" /> will also be | |||
/// added. | |||
/// If a default <see cref="TypeReader" /> exists for <typeparamref name="T" />, a warning will be logged and the | |||
/// default <see cref="TypeReader" /> will be replaced. | |||
/// Adds a custom <see cref="TypeReader" /> to this <see cref="CommandService" /> for the supplied object | |||
/// type. | |||
/// If <typeparamref name="T" /> is a <see cref="ValueType" />, a nullable <see cref="TypeReader" /> will | |||
/// also be added. | |||
/// If a default <see cref="TypeReader" /> exists for <typeparamref name="T" />, a warning will be logged | |||
/// and the default <see cref="TypeReader" /> will be replaced. | |||
/// </summary> | |||
/// <typeparam name="T">The object type to be read by the <see cref="TypeReader" />.</typeparam> | |||
/// <typeparam name="T">The object type to be read by the <see cref="TypeReader"/>.</typeparam> | |||
/// <param name="reader">An instance of the <see cref="TypeReader" /> to be added.</param> | |||
public void AddTypeReader<T>(TypeReader reader) | |||
=> AddTypeReader(typeof(T), reader); | |||
/// <summary> | |||
/// Adds a custom <see cref="TypeReader" /> to this <see cref="CommandService" /> for the supplied object type. | |||
/// If <paramref name="type" /> is a <see cref="ValueType" />, a nullable <see cref="TypeReader" /> for the value | |||
/// type will also be added. | |||
/// If a default <see cref="TypeReader" /> exists for <paramref name="type" />, a warning will be logged and the | |||
/// default <see cref="TypeReader" /> will be replaced. | |||
/// Adds a custom <see cref="TypeReader" /> to this <see cref="CommandService" /> for the supplied object | |||
/// type. | |||
/// If <paramref name="type" /> is a <see cref="ValueType" />, a nullable <see cref="TypeReader" /> for the | |||
/// value type will also be added. | |||
/// If a default <see cref="TypeReader" /> exists for <paramref name="type" />, a warning will be logged and | |||
/// the default <see cref="TypeReader" /> will be replaced. | |||
/// </summary> | |||
/// <param name="type">A <see cref="Type" /> instance for the type to be read.</param> | |||
/// <param name="reader">An instance of the <see cref="TypeReader" /> to be added.</param> | |||
@@ -323,11 +325,12 @@ namespace Discord.Commands | |||
AddTypeReader(type, reader, true); | |||
} | |||
/// <summary> | |||
/// Adds a custom <see cref="TypeReader" /> to this <see cref="CommandService" /> for the supplied object type. | |||
/// If <typeparamref name="T" /> is a <see cref="ValueType" />, a nullable <see cref="TypeReader" /> will also be | |||
/// added. | |||
/// Adds a custom <see cref="TypeReader" /> to this <see cref="CommandService" /> for the supplied object | |||
/// type. | |||
/// If <typeparamref name="T" /> is a <see cref="ValueType" />, a nullable <see cref="TypeReader" /> will | |||
/// also be added. | |||
/// </summary> | |||
/// <typeparam name="T">The object type to be read by the <see cref="TypeReader" />.</typeparam> | |||
/// <typeparam name="T">The object type to be read by the <see cref="TypeReader"/>.</typeparam> | |||
/// <param name="reader">An instance of the <see cref="TypeReader" /> to be added.</param> | |||
/// <param name="replaceDefault"> | |||
/// Defines whether the <see cref="TypeReader"/> should replace the default one for | |||
@@ -336,15 +339,16 @@ namespace Discord.Commands | |||
public void AddTypeReader<T>(TypeReader reader, bool replaceDefault) | |||
=> AddTypeReader(typeof(T), reader, replaceDefault); | |||
/// <summary> | |||
/// Adds a custom <see cref="TypeReader" /> to this <see cref="CommandService" /> for the supplied object type. | |||
/// If <paramref name="type" /> is a <see cref="ValueType" />, a nullable <see cref="TypeReader" /> for the value | |||
/// type will also be added. | |||
/// Adds a custom <see cref="TypeReader" /> to this <see cref="CommandService" /> for the supplied object | |||
/// type. | |||
/// If <paramref name="type" /> is a <see cref="ValueType" />, a nullable <see cref="TypeReader" /> for the | |||
/// value type will also be added. | |||
/// </summary> | |||
/// <param name="type">A <see cref="Type" /> instance for the type to be read.</param> | |||
/// <param name="reader">An instance of the <see cref="TypeReader" /> to be added.</param> | |||
/// <param name="replaceDefault"> | |||
/// Defines whether the <see cref="TypeReader"/> should replace the default one for | |||
/// <see cref="Type" /> if it exists. | |||
/// Defines whether the <see cref="TypeReader"/> should replace the default one for <see cref="Type" /> if | |||
/// it exists. | |||
/// </param> | |||
public void AddTypeReader(Type type, TypeReader reader, bool replaceDefault) | |||
{ | |||
@@ -4,7 +4,7 @@ using System.Collections.Generic; | |||
namespace Discord.Commands | |||
{ | |||
/// <summary> | |||
/// Represents a configuration class for <see cref="CommandService" />. | |||
/// Represents a configuration class for <see cref="CommandService"/>. | |||
/// </summary> | |||
public class CommandServiceConfig | |||
{ | |||
@@ -16,7 +16,7 @@ namespace Discord.Commands | |||
/// </summary> | |||
/// <remarks> | |||
/// This object contains the information of a command. This can include the module of the command, various | |||
/// descriptions regarding the command, and its <see cref="RunMode" />. | |||
/// descriptions regarding the command, and its <see cref="RunMode"/>. | |||
/// </remarks> | |||
[DebuggerDisplay("{Name,nq}")] | |||
public class CommandInfo | |||
@@ -18,7 +18,7 @@ namespace Discord | |||
/// Creates a <see cref="Game"/> with the provided <paramref name="name"/> and <see cref="ActivityType"/>. | |||
/// </summary> | |||
/// <param name="name">The name of the game.</param> | |||
/// <param name="type">The type of activity. Default is <see cref="Discord.ActivityType.Playing" />.</param> | |||
/// <param name="type">The type of activity. Default is <see cref="Discord.ActivityType.Playing"/>.</param> | |||
public Game(string name, ActivityType type = ActivityType.Playing) | |||
{ | |||
Name = name; | |||
@@ -1,7 +1,7 @@ | |||
namespace Discord | |||
{ | |||
/// <summary> | |||
/// Represents data applied to an <see cref="IAuditLogEntry" />. | |||
/// Represents data applied to an <see cref="IAuditLogEntry"/>. | |||
/// </summary> | |||
public interface IAuditLogData | |||
{ } | |||
@@ -1,7 +1,7 @@ | |||
namespace Discord | |||
{ | |||
/// <summary> | |||
/// Properties that are used to reorder an <see cref="IGuildChannel" />. | |||
/// Properties that are used to reorder an <see cref="IGuildChannel"/>. | |||
/// </summary> | |||
public class ReorderChannelProperties | |||
{ | |||
@@ -9,11 +9,11 @@ namespace Discord | |||
public class EmoteProperties | |||
{ | |||
/// <summary> | |||
/// Gets or sets the name of the <see cref="Emote" />. | |||
/// Gets or sets the name of the <see cref="Emote"/>. | |||
/// </summary> | |||
public Optional<string> Name { get; set; } | |||
/// <summary> | |||
/// Gets or sets the roles that can access this <see cref="Emote" />. | |||
/// Gets or sets the roles that can access this <see cref="Emote"/>. | |||
/// </summary> | |||
public Optional<IEnumerable<IRole>> Roles { get; set; } | |||
} | |||
@@ -11,7 +11,7 @@ namespace Discord | |||
/// </summary> | |||
public Stream Stream { get; } | |||
/// <summary> | |||
/// Create the image with a <see cref="System.IO.Stream" />. | |||
/// Create the image with a <see cref="System.IO.Stream"/>. | |||
/// </summary> | |||
/// <param name="stream"> | |||
/// The <see cref="System.IO.Stream" /> to create the image with. Note that this must be some type of stream | |||
@@ -32,7 +32,7 @@ namespace Discord | |||
/// <param name="path">The path to the file.</param> | |||
/// <exception cref="System.ArgumentException"> | |||
/// <paramref name="path" /> is a zero-length string, contains only white space, or contains one or more invalid | |||
/// characters as defined by <see cref="Path.GetInvalidPathChars" />. | |||
/// characters as defined by <see cref="Path.GetInvalidPathChars"/>. | |||
/// </exception> | |||
/// <exception cref="System.ArgumentNullException"><paramref name="path" /> is <c>null</c>.</exception> | |||
/// <exception cref="PathTooLongException"> | |||
@@ -6,7 +6,7 @@ using System.Linq; | |||
namespace Discord | |||
{ | |||
/// <summary> | |||
/// Represents an embed object seen in an <see cref="IUserMessage" />. | |||
/// Represents an embed object seen in an <see cref="IUserMessage"/>. | |||
/// </summary> | |||
[DebuggerDisplay(@"{DebuggerDisplay,nq}")] | |||
public class Embed : IEmbed | |||
@@ -3,7 +3,7 @@ using System.Diagnostics; | |||
namespace Discord | |||
{ | |||
/// <summary> | |||
/// A author field of an <see cref="Embed" />. | |||
/// A author field of an <see cref="Embed"/>. | |||
/// </summary> | |||
[DebuggerDisplay("{DebuggerDisplay,nq}")] | |||
public struct EmbedAuthor | |||
@@ -6,7 +6,7 @@ using System.Linq; | |||
namespace Discord | |||
{ | |||
/// <summary> | |||
/// Represents a builder class for creating a <see cref="EmbedType.Rich"/> <see cref="Embed" />. | |||
/// Represents a builder class for creating a <see cref="EmbedType.Rich"/> <see cref="Embed"/>. | |||
/// </summary> | |||
public class EmbedBuilder | |||
{ | |||
@@ -122,28 +122,28 @@ namespace Discord | |||
} | |||
/// <summary> | |||
/// Gets or sets the timestamp of an <see cref="Embed" />. | |||
/// Gets or sets the timestamp of an <see cref="Embed"/>. | |||
/// </summary> | |||
/// <returns> | |||
/// The timestamp of the embed, or <c>null</c> if none is set. | |||
/// </returns> | |||
public DateTimeOffset? Timestamp { get; set; } | |||
/// <summary> | |||
/// Gets or sets the sidebar color of an <see cref="Embed" />. | |||
/// Gets or sets the sidebar color of an <see cref="Embed"/>. | |||
/// </summary> | |||
/// <returns> | |||
/// The color of the embed, or <c>null</c> if none is set. | |||
/// </returns> | |||
public Color? Color { get; set; } | |||
/// <summary> | |||
/// Gets or sets the <see cref="EmbedAuthorBuilder" /> of an <see cref="Embed" />. | |||
/// Gets or sets the <see cref="EmbedAuthorBuilder" /> of an <see cref="Embed"/>. | |||
/// </summary> | |||
/// <returns> | |||
/// The author field builder of the embed, or <c>null</c> if none is set. | |||
/// </returns> | |||
public EmbedAuthorBuilder Author { get; set; } | |||
/// <summary> | |||
/// Gets or sets the <see cref="EmbedFooterBuilder" /> of an <see cref="Embed" />. | |||
/// Gets or sets the <see cref="EmbedFooterBuilder" /> of an <see cref="Embed"/>. | |||
/// </summary> | |||
/// <returns> | |||
/// The footer field builder of the embed, or <c>null</c> if none is set. | |||
@@ -172,7 +172,7 @@ namespace Discord | |||
} | |||
/// <summary> | |||
/// Sets the title of an <see cref="Embed" />. | |||
/// Sets the title of an <see cref="Embed"/>. | |||
/// </summary> | |||
/// <param name="title">The title to be set.</param> | |||
/// <returns> | |||
@@ -220,7 +220,7 @@ namespace Discord | |||
return this; | |||
} | |||
/// <summary> | |||
/// Sets the image URL of an <see cref="Embed" />. | |||
/// Sets the image URL of an <see cref="Embed"/>. | |||
/// </summary> | |||
/// <param name="imageUrl">The image URL to be set.</param> | |||
/// <returns> | |||
@@ -243,7 +243,7 @@ namespace Discord | |||
return this; | |||
} | |||
/// <summary> | |||
/// Sets the timestamp of an <see cref="Embed" />. | |||
/// Sets the timestamp of an <see cref="Embed"/>. | |||
/// </summary> | |||
/// <param name="dateTimeOffset">The timestamp to be set.</param> | |||
/// <returns> | |||
@@ -255,7 +255,7 @@ namespace Discord | |||
return this; | |||
} | |||
/// <summary> | |||
/// Sets the sidebar color of an <see cref="Embed" />. | |||
/// Sets the sidebar color of an <see cref="Embed"/>. | |||
/// </summary> | |||
/// <param name="color">The color to be set.</param> | |||
/// <returns> | |||
@@ -268,7 +268,7 @@ namespace Discord | |||
} | |||
/// <summary> | |||
/// Sets the <see cref="EmbedAuthorBuilder" /> of an <see cref="Embed" />. | |||
/// Sets the <see cref="EmbedAuthorBuilder" /> of an <see cref="Embed"/>. | |||
/// </summary> | |||
/// <param name="author">The author builder class containing the author field properties.</param> | |||
/// <returns> | |||
@@ -314,7 +314,7 @@ namespace Discord | |||
return this; | |||
} | |||
/// <summary> | |||
/// Sets the <see cref="EmbedFooterBuilder" /> of an <see cref="Embed" />. | |||
/// Sets the <see cref="EmbedFooterBuilder" /> of an <see cref="Embed"/>. | |||
/// </summary> | |||
/// <param name="footer">The footer builder class containing the footer field properties.</param> | |||
/// <returns> | |||
@@ -379,7 +379,7 @@ namespace Discord | |||
/// <summary> | |||
/// Adds a field with the provided <see cref="EmbedFieldBuilder" /> to an | |||
/// <see cref="Embed" />. | |||
/// <see cref="Embed"/>. | |||
/// </summary> | |||
/// <param name="field">The field builder class containing the field properties.</param> | |||
/// <exception cref="ArgumentException">Field count exceeds <see cref="MaxFieldCount"/>.</exception> | |||
@@ -564,7 +564,7 @@ namespace Discord | |||
/// Gets or sets the author name. | |||
/// </summary> | |||
/// <exception cref="ArgumentException"> | |||
/// Author name length is longer than <see cref="MaxAuthorNameLength" />. | |||
/// Author name length is longer than <see cref="MaxAuthorNameLength"/>. | |||
/// </exception> | |||
/// <returns> | |||
/// The author name. | |||
@@ -652,11 +652,11 @@ namespace Discord | |||
/// Builds the author field to be used. | |||
/// </summary> | |||
/// <exception cref="ArgumentException"> | |||
/// <para>Author name length is longer than <see cref="MaxAuthorNameLength" />.</para> | |||
/// <para>Author name length is longer than <see cref="MaxAuthorNameLength"/>.</para> | |||
/// <para><c>- or -</c></para> | |||
/// <para><see cref="Url"/> is not a well-formed <see cref="Uri" />.</para> | |||
/// <para><see cref="Url"/> is not a well-formed <see cref="Uri"/>.</para> | |||
/// <para><c>- or -</c></para> | |||
/// <para><see cref="IconUrl"/> is not a well-formed <see cref="Uri" />.</para> | |||
/// <para><see cref="IconUrl"/> is not a well-formed <see cref="Uri"/>.</para> | |||
/// </exception> | |||
/// <returns> | |||
/// The built author field. | |||
@@ -682,7 +682,7 @@ namespace Discord | |||
/// Gets or sets the footer text. | |||
/// </summary> | |||
/// <exception cref="ArgumentException"> | |||
/// Author name length is longer than <see cref="MaxFooterTextLength" />. | |||
/// Author name length is longer than <see cref="MaxFooterTextLength"/>. | |||
/// </exception> | |||
/// <returns> | |||
/// The footer text. | |||
@@ -743,7 +743,7 @@ namespace Discord | |||
/// </summary> | |||
/// <returns></returns> | |||
/// <exception cref="ArgumentException"> | |||
/// <para><see cref="Text"/> length is longer than <see cref="MaxFooterTextLength" />.</para> | |||
/// <para><see cref="Text"/> length is longer than <see cref="MaxFooterTextLength"/>.</para> | |||
/// <para><c>- or -</c></para> | |||
/// <para><see cref="IconUrl"/> is not a well-formed <see cref="Uri"/>.</para> | |||
/// </exception> | |||
@@ -3,7 +3,7 @@ using System.Diagnostics; | |||
namespace Discord | |||
{ | |||
/// <summary> | |||
/// A field for an <see cref="Embed" />. | |||
/// A field for an <see cref="Embed"/>. | |||
/// </summary> | |||
[DebuggerDisplay("{DebuggerDisplay,nq}")] | |||
public struct EmbedField | |||
@@ -3,7 +3,7 @@ using System.Diagnostics; | |||
namespace Discord | |||
{ | |||
/// <summary> | |||
/// A video featured in an <see cref="Embed" />. | |||
/// A video featured in an <see cref="Embed"/>. | |||
/// </summary> | |||
[DebuggerDisplay("{DebuggerDisplay,nq}")] | |||
public struct EmbedVideo | |||
@@ -23,11 +23,11 @@ namespace Discord | |||
=> new OverwritePermissions(0, ChannelPermissions.All(channel).RawValue); | |||
/// <summary> | |||
/// Gets a packed value representing all the allowed permissions in this <see cref="OverwritePermissions" />. | |||
/// Gets a packed value representing all the allowed permissions in this <see cref="OverwritePermissions"/>. | |||
/// </summary> | |||
public ulong AllowValue { get; } | |||
/// <summary> | |||
/// Gets a packed value representing all the denied permissions in this <see cref="OverwritePermissions" />. | |||
/// Gets a packed value representing all the denied permissions in this <see cref="OverwritePermissions"/>. | |||
/// </summary> | |||
public ulong DenyValue { get; } | |||
@@ -1,7 +1,7 @@ | |||
namespace Discord | |||
{ | |||
/// <summary> | |||
/// Properties that are used to reorder an <see cref="IRole" />. | |||
/// Properties that are used to reorder an <see cref="IRole"/>. | |||
/// </summary> | |||
public class ReorderRoleProperties | |||
{ | |||
@@ -14,7 +14,7 @@ namespace Discord | |||
/// </remarks> | |||
public Optional<string> Name { get; set; } | |||
/// <summary> | |||
/// Gets or sets the role's <see cref="GuildPermission" />. | |||
/// Gets or sets the role's <see cref="GuildPermission"/>. | |||
/// </summary> | |||
public Optional<GuildPermissions> Permissions { get; set; } | |||
/// <summary> | |||
@@ -27,7 +27,7 @@ namespace Discord | |||
/// </summary> | |||
/// <remarks> | |||
/// To clear the user's nickname, this value can be set to <c>null</c> or | |||
/// <see cref="string.Empty" />. | |||
/// <see cref="string.Empty"/>. | |||
/// </remarks> | |||
public Optional<string> Nickname { get; set; } | |||
/// <summary> | |||
@@ -18,14 +18,14 @@ namespace Discord | |||
/// Gets or sets the channel for this webhook. | |||
/// </summary> | |||
/// <remarks> | |||
/// This field is not used when authenticated with <see cref="Discord.TokenType.Webhook" />. | |||
/// This field is not used when authenticated with <see cref="Discord.TokenType.Webhook"/>. | |||
/// </remarks> | |||
public Optional<ITextChannel> Channel { get; set; } | |||
/// <summary> | |||
/// Gets or sets the channel ID for this webhook. | |||
/// </summary> | |||
/// <remarks> | |||
/// This field is not used when authenticated with <see cref="Discord.TokenType.Webhook" />. | |||
/// This field is not used when authenticated with <see cref="Discord.TokenType.Webhook"/>. | |||
/// </remarks> | |||
public Optional<ulong> ChannelId { get; set; } | |||
} | |||
@@ -47,7 +47,7 @@ namespace Discord | |||
/// <summary> | |||
/// Initializes a new <see cref="RequestOptions" /> class with the default request timeout set in | |||
/// <see cref="DiscordConfig" />. | |||
/// <see cref="DiscordConfig"/>. | |||
/// </summary> | |||
public RequestOptions() | |||
{ | |||
@@ -3,7 +3,7 @@ using Discord.Net.Rest; | |||
namespace Discord.Rest | |||
{ | |||
/// <summary> | |||
/// Represents a configuration class for <see cref="DiscordRestClient" />. | |||
/// Represents a configuration class for <see cref="DiscordRestClient"/>. | |||
/// </summary> | |||
public class DiscordRestConfig : DiscordConfig | |||
{ | |||
@@ -71,7 +71,7 @@ namespace Discord.Rest | |||
/// Gets a collection of permission overwrites that was assigned to the created channel. | |||
/// </summary> | |||
/// <returns> | |||
/// A collection of permission <see cref="Overwrite" />. | |||
/// A collection of permission <see cref="Overwrite"/>. | |||
/// </returns> | |||
public IReadOnlyCollection<Overwrite> Overwrites { get; } | |||
} | |||
@@ -62,7 +62,7 @@ namespace Discord.Rest | |||
/// Gets a collection of permission overwrites that was assigned to the deleted channel. | |||
/// </summary> | |||
/// <returns> | |||
/// A collection of permission <see cref="Overwrite" />. | |||
/// A collection of permission <see cref="Overwrite"/>. | |||
/// </returns> | |||
public IReadOnlyCollection<Overwrite> Overwrites { get; } | |||
} | |||
@@ -164,7 +164,7 @@ namespace Discord.Rest | |||
/// <exception cref="ArgumentException"> | |||
/// <paramref name="filePath" /> is a zero-length string, contains only white space, or contains one or more | |||
/// invalid characters as defined by <see cref="System.IO.Path.GetInvalidPathChars" />. | |||
/// invalid characters as defined by <see cref="System.IO.Path.GetInvalidPathChars"/>. | |||
/// </exception> | |||
/// <exception cref="ArgumentNullException"> | |||
/// <paramref name="filePath" /> is <c>null</c>. | |||
@@ -81,7 +81,7 @@ namespace Discord.Rest | |||
/// <inheritdoc /> | |||
/// <exception cref="ArgumentException"> | |||
/// <paramref name="filePath" /> is a zero-length string, contains only white space, or contains one or more | |||
/// invalid characters as defined by <see cref="System.IO.Path.GetInvalidPathChars" />. | |||
/// invalid characters as defined by <see cref="System.IO.Path.GetInvalidPathChars"/>. | |||
/// </exception> | |||
/// <exception cref="ArgumentNullException"> | |||
/// <paramref name="filePath" /> is <c>null</c>. | |||
@@ -98,7 +98,7 @@ namespace Discord.Rest | |||
/// <inheritdoc /> | |||
/// <exception cref="ArgumentException"> | |||
/// <paramref name="filePath" /> is a zero-length string, contains only white space, or contains one or more | |||
/// invalid characters as defined by <see cref="System.IO.Path.GetInvalidPathChars" />. | |||
/// invalid characters as defined by <see cref="System.IO.Path.GetInvalidPathChars"/>. | |||
/// </exception> | |||
/// <exception cref="ArgumentNullException"> | |||
/// <paramref name="filePath" /> is <c>null</c>. | |||
@@ -79,7 +79,7 @@ namespace Discord.Rest | |||
/// <inheritdoc /> | |||
/// <exception cref="ArgumentException"> | |||
/// <paramref name="filePath" /> is a zero-length string, contains only white space, or contains one or more | |||
/// invalid characters as defined by <see cref="System.IO.Path.GetInvalidPathChars" />. | |||
/// invalid characters as defined by <see cref="System.IO.Path.GetInvalidPathChars"/>. | |||
/// </exception> | |||
/// <exception cref="ArgumentNullException"> | |||
/// <paramref name="filePath" /> is <c>null</c>. | |||
@@ -4,7 +4,7 @@ using Model = Discord.API.Attachment; | |||
namespace Discord | |||
{ | |||
/// <summary> | |||
/// An attachment file seen in a <see cref="IUserMessage" />. | |||
/// An attachment file seen in a <see cref="IUserMessage"/>. | |||
/// </summary> | |||
[DebuggerDisplay(@"{DebuggerDisplay,nq}")] | |||
public class Attachment : IAttachment | |||
@@ -107,18 +107,19 @@ namespace Discord.WebSocket | |||
/// <summary> | |||
/// Gets a channel. | |||
/// </summary> | |||
/// <param name="id">The channel snowflake ID.</param> | |||
/// <param name="id">The channel snowflake identifier.</param> | |||
/// <returns> | |||
/// A generic WebSocket-based channel object (voice, text, category, etc.); <c>null</c> when the | |||
/// channel cannot be found. | |||
/// A generic WebSocket-based channel object (voice, text, category, etc.) associated with the identifier; | |||
/// <c>null</c> when the channel cannot be found. | |||
/// </returns> | |||
public abstract SocketChannel GetChannel(ulong id); | |||
/// <summary> | |||
/// Gets a guild. | |||
/// </summary> | |||
/// <param name="id">The guild snowflake ID.</param> | |||
/// <param name="id">The guild snowflake identifier.</param> | |||
/// <returns> | |||
/// A WebSocket-based guild; <c>null</c> when the guild cannot be found. | |||
/// A WebSocket-based guild associated with the snowflake identifier; <c>null</c> when the guild cannot be | |||
/// found. | |||
/// </returns> | |||
public abstract SocketGuild GetGuild(ulong id); | |||
/// <summary> | |||
@@ -5,7 +5,7 @@ using Discord.Rest; | |||
namespace Discord.WebSocket | |||
{ | |||
/// <summary> | |||
/// Represents a configuration class for <see cref="DiscordSocketClient" />. | |||
/// Represents a configuration class for <see cref="DiscordSocketClient"/>. | |||
/// </summary> | |||
public class DiscordSocketConfig : DiscordRestConfig | |||
{ | |||
@@ -48,11 +48,11 @@ namespace Discord.WebSocket | |||
/// </summary> | |||
/// <remarks> | |||
/// This method does NOT attempt to fetch the user if they don't exist in the cache. To guarantee a return | |||
/// from an existing user that doesn't exist in cache, use <see cref="Rest.DiscordRestClient.GetUserAsync" />. | |||
/// from an existing user that doesn't exist in cache, use <see cref="Rest.DiscordRestClient.GetUserAsync"/>. | |||
/// </remarks> | |||
/// <param name="id">The ID of the user.</param> | |||
/// <param name="id">The snowflake identifier of the user.</param> | |||
/// <returns> | |||
/// The user. | |||
/// A user object associated with the snowflake identifier. | |||
/// </returns> | |||
public SocketUser GetUser(ulong id) => GetUserInternal(id); | |||
internal abstract SocketUser GetUserInternal(ulong id); | |||
@@ -142,9 +142,9 @@ namespace Discord.WebSocket | |||
/// </summary> | |||
/// <remarks> | |||
/// This method does NOT attempt to fetch the user if they don't exist in the cache. To guarantee a return | |||
/// from an existing user that doesn't exist in cache, use <see cref="DiscordRestClient.GetUserAsync" />. | |||
/// from an existing user that doesn't exist in cache, use <see cref="DiscordRestClient.GetUserAsync"/>. | |||
/// </remarks> | |||
/// <param name="id">The ID of the user.</param> | |||
/// <param name="id">The snowflake identifier of the user.</param> | |||
/// <returns> | |||
/// The user in the group. | |||
/// </returns> | |||
@@ -155,21 +155,21 @@ namespace Discord.WebSocket | |||
public Task<RestWebhook> CreateWebhookAsync(string name, Stream avatar = null, RequestOptions options = null) | |||
=> ChannelHelper.CreateWebhookAsync(this, Discord, name, avatar, options); | |||
/// <summary> | |||
/// Gets the webhook in this text channel with the provided ID. | |||
/// Gets a webhook available in this text channel. | |||
/// </summary> | |||
/// <param name="id">The ID of the webhook.</param> | |||
/// <param name="id">The identifier of the webhook.</param> | |||
/// <param name="options">The options to be used when sending the request.</param> | |||
/// <returns> | |||
/// A webhook associated with the <paramref name="id"/>, or <c>null</c> if not found. | |||
/// An awaitable <see cref="Task"/> webhook associated with the identifier, or <c>null</c> if not found. | |||
/// </returns> | |||
public Task<RestWebhook> GetWebhookAsync(ulong id, RequestOptions options = null) | |||
=> ChannelHelper.GetWebhookAsync(this, Discord, id, options); | |||
/// <summary> | |||
/// Gets the webhooks for this text channel. | |||
/// Gets the webhooks available in this text channel. | |||
/// </summary> | |||
/// <param name="options">The options to be used when sending the request.</param> | |||
/// <returns> | |||
/// A collection of webhooks. | |||
/// An awaitable <see cref="Task"/> collection of webhooks. | |||
/// </returns> | |||
public Task<IReadOnlyCollection<RestWebhook>> GetWebhooksAsync(RequestOptions options = null) | |||
=> ChannelHelper.GetWebhooksAsync(this, Discord, options); | |||
@@ -530,7 +530,7 @@ namespace Discord.WebSocket | |||
/// </summary> | |||
/// <param name="options">The options to be used when sending the request.</param> | |||
/// <returns> | |||
/// A collection of invites. | |||
/// An awaitable <see cref="Task"/> containing a collection of invites. | |||
/// </returns> | |||
public Task<IReadOnlyCollection<RestInviteMetadata>> GetInvitesAsync(RequestOptions options = null) | |||
=> GuildHelper.GetInvitesAsync(this, Discord, options); | |||
@@ -11,7 +11,7 @@ namespace Discord.WebSocket | |||
/// Gets the ID of the user who added the reaction. | |||
/// </summary> | |||
/// <returns> | |||
/// A user snowflake ID. | |||
/// A user snowflake identifier associated with the user. | |||
/// </returns> | |||
public ulong UserId { get; } | |||
/// <summary> | |||
@@ -25,15 +25,16 @@ namespace Discord.WebSocket | |||
/// Gets the ID of the message that has been reacted to. | |||
/// </summary> | |||
/// <returns> | |||
/// A message snowflake ID. | |||
/// A message snowflake identifier associated with the message. | |||
/// </returns> | |||
public ulong MessageId { get; } | |||
/// <summary> | |||
/// Gets the message that has been reacted to if possible. | |||
/// </summary> | |||
/// <returns> | |||
/// A WebSocket-based message where possible. This value is not always returned. | |||
/// A WebSocket-based message where possible; a value is not always returned. | |||
/// </returns> | |||
/// <seealso cref="Optional{T}"/> | |||
public Optional<SocketUserMessage> Message { get; } | |||
/// <summary> | |||
/// Gets the channel where the reaction takes place in. | |||