Discord.Net.Extensions 1.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Discord.Net.Extensions --version 1.1.0                
NuGet\Install-Package Discord.Net.Extensions -Version 1.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Discord.Net.Extensions" Version="1.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Discord.Net.Extensions --version 1.1.0                
#r "nuget: Discord.Net.Extensions, 1.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Discord.Net.Extensions as a Cake Addin
#addin nuget:?package=Discord.Net.Extensions&version=1.1.0

// Install Discord.Net.Extensions as a Cake Tool
#tool nuget:?package=Discord.Net.Extensions&version=1.1.0                

Discord.Net.Extensions

This package introduces a number of features that assist Discord.Net as a library. It attempts to make work for the developer easier, by introducing extensions that perfectly support development needs.

Practices

The naming of this package follows that of Discord.Net:

using Discord;
using Discord.Extensions;

Because the package is seperate, and not a part of the library itself, it levels down a single name on the namespace. It does still follow the naming of Discord.Net itself however:

using Discord.Interactions;
using Discord.Extensions.Interactions;

Depending on the namespace of the type you're looking to target, its extensions will be in the matching Extensions namespace.

Features

Core

Formatting support

Inside the DiscordFormattingExtensions class a large amount of formatting extensions exists, allowing developers to customize messages with ease.

Rest

In progress...

Websocket

In progress...

Webhook

In progress...

Commands

In progress...

Interactions

Generic Context Generation

For each type of Interaction a method has been introduced to automatically generate generic IInteractionContext, supporting the use-case of XInteractionContext<XInteraction>

Type converters for commands, modals & components.

  • TypeReaders

    • Color
    • TimeSpan*
    • Guid
    • IEmote**
  • TypeConverters

    • Color
    • TimeSpan*
    • UInt64***
    • IEmote**
  • ComponentTypeConverters

    • Color
    • TimeSpan*
    • IEmote**

* The TimeSpan converters run through a reader far more advanced than a simple TryParse. It supports formatting such as: 1d16h10m up to 10 weeks, 4 months & 7 seconds. Parsing does not respect order, and works in any format.

** The IEmote converters support Emoji and Emote. Both can be parsed from this parser. However, the parameter implementation will have to be IEmote as well, regardless of the underlying type.

*** The UInt64 (ulong) converter is introduced because the Int64 (number) parameter from discord does not support unsigned positive characters up to the height of Discord snowflake ID's.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Release 1.1, Supporting Discord.Net 3.6.1+