J4asper.DSharpPlus.BetterPagination
1.0.2
See the version list below for details.
dotnet add package J4asper.DSharpPlus.BetterPagination --version 1.0.2
NuGet\Install-Package J4asper.DSharpPlus.BetterPagination -Version 1.0.2
<PackageReference Include="J4asper.DSharpPlus.BetterPagination" Version="1.0.2" />
paket add J4asper.DSharpPlus.BetterPagination --version 1.0.2
#r "nuget: J4asper.DSharpPlus.BetterPagination, 1.0.2"
// Install J4asper.DSharpPlus.BetterPagination as a Cake Addin #addin nuget:?package=J4asper.DSharpPlus.BetterPagination&version=1.0.2 // Install J4asper.DSharpPlus.BetterPagination as a Cake Tool #tool nuget:?package=J4asper.DSharpPlus.BetterPagination&version=1.0.2
BetterPagination
This NuGet package provides an enhanced pagination experience for DSharpPlus, offering a better visual interface for navigating between paginated content.
Installation
NuGet
To install the package, open the terminal in your project and run the following command, replacing 1.0.0
with the latest version:
dotnet add package J4asper.DSharpPlus.BetterPagination --version 1.0.0
Alternatively, you can search for J4asper.DSharpPlus.BetterPagination
in your IDE’s NuGet Package Manager.
From Source
To build the package from source, follow these steps:
Clone the repository:
git clone https://github.com/j4asper/DSharpPlus.BetterPagination.git
In your project’s
.csproj
file, add the following reference:<ProjectReference Include="../DSharpPlus.BetterPagination/DSharpPlus.BetterPagination/DSharpPlus.BetterPagination.csproj" />
Documentation
This package adds an extension method, SendBetterPaginatedMessageAsync
, to the SlashCommandContext class, enabling easy pagination in your bot commands.
SendBetterPaginatedMessageAsync Parameters
context
(SlashCommandContext
):
The context of the slash command invocation, containing user information and the interaction context. This is required to send the initial response and track the user interaction.
More info onSlashCommandContext
pages
(IReadOnlyList<Page>
):
A read-only list ofPage
objects. EachPage
object contains the embed and optional components (buttons, select menus, etc.) to be displayed on a specific page of the paginated message. The content of each page is encapsulated in thePage
object.additionalComponents
(IReadOnlyList<DiscordComponent>?
, optional):
Optional additional components (e.g., buttons, select menus) that can be added to the message. This can be used to add custom interactive elements like menus, or other buttons. Default isnull
.isEphemeral
(bool
, optional):
A flag indicating whether the paginated message should be sent as an ephemeral message. If set totrue
, the message will only be visible to the user who invoked the command. Default isfalse
.allowUsageByAnyone
(bool
, optional):
A flag indicating whether any user can interact with the pagination buttons, or if the interaction should be restricted to the invoking user only. If set tofalse
, only the user who invoked the command will be able to interact with the buttons. Default isfalse
.
Example Usage
Here’s an example of how to use the package to send a paginated message within a command:
[Command("example")]
[Description("This is a paginated example command")]
public async ValueTask PaginatedExampleCommand(SlashCommandContext context)
{
var embedPageOne = new DiscordEmbedBuilder()
.WithDescription("This is page 1");
var embedPageTwo = new DiscordEmbedBuilder()
.WithDescription("This is page 2");
List<Page> pages =
[
new() { Embed = embedPageOne },
new() { Embed = embedPageTwo }
];
// Send the paginated message
await context.SendBetterPaginatedMessageAsync(pages);
}
In this example:
- Two pages are created using
DiscordEmbedBuilder
, each with different content. - These pages are added to a
List<Page>
, which is passed to theSendBetterPaginatedMessageAsync
method to send a paginated message. - Users can navigate between pages using the forward and back buttons that are automatically added to the message.
Example of paginated message with 4 pages and an additional button.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. |
-
net9.0
- DSharpPlus (>= 5.0.0-nightly-02406)
- DSharpPlus.Commands (>= 5.0.0-nightly-02406)
- DSharpPlus.Interactivity (>= 5.0.0-nightly-02406)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.