From 3e7ab0915f570fe471727096d16ad6ec082b71c3 Mon Sep 17 00:00:00 2001 From: Mihail Gribkov <61027276+Misha-133@users.noreply.github.com> Date: Mon, 27 May 2024 14:50:38 +0300 Subject: [PATCH] [Docs] Document Polls (#2930) * poll docs * oopsie --- docs/guides/polls/images/poll.png | Bin 0 -> 14672 bytes docs/guides/polls/polls.md | 61 +++++++++++++++++++ docs/guides/polls/samples/create-poll.cs | 40 ++++++++++++ docs/guides/polls/samples/end-poll.cs | 4 ++ docs/guides/polls/samples/get-poll-voters.cs | 4 ++ docs/guides/toc.yml | 2 + 6 files changed, 111 insertions(+) create mode 100644 docs/guides/polls/images/poll.png create mode 100644 docs/guides/polls/polls.md create mode 100644 docs/guides/polls/samples/create-poll.cs create mode 100644 docs/guides/polls/samples/end-poll.cs create mode 100644 docs/guides/polls/samples/get-poll-voters.cs diff --git a/docs/guides/polls/images/poll.png b/docs/guides/polls/images/poll.png new file mode 100644 index 0000000000000000000000000000000000000000..de985a09780c5dcf20e3cefccbebbd9dc1e91872 GIT binary patch literal 14672 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 E0kSKc=l}o! literal 0 HcmV?d00001 diff --git a/docs/guides/polls/polls.md b/docs/guides/polls/polls.md new file mode 100644 index 00000000..1415e0fc --- /dev/null +++ b/docs/guides/polls/polls.md @@ -0,0 +1,61 @@ +--- +uid: Guides.Polls +title: Polls +--- + +# Polls in Discord.Net + +Polls are... Polls! + +![example poll](images/poll.png) + +This guide will explain how to use polls in your applications. + +> [!NOTE] +> To get contents of polls sent by users other than your bot you need to enable `GatewayIntent.MessageContent` intent. + +## Creating polls + +A poll is part of a message; to send one you need to pass a [PollProperties] object into the `poll` parameter of any method that can be used to send messages. (ex. `SendMessageAsync`, `RespondAsync`, etc) + +[!code-csharp[Creating polls](samples/create-poll.cs)] + +> [!WARNING] +> Due to limitations of the Discord API it's not possible to send attachments in a messages with a poll. + +> [!NOTE] +> It is not possible to modify polls after them being created. + + +## Managing polls + +### Ending polls +You can expire polls early by calling `EndPollAsync` on an [IUserMessage] with a poll. + +[!code-csharp[Ending polls](samples/end-poll.cs)] + +### Getting poll answer voters +To get voters for a specific answer call `GetPollAnswerVotersAsync(answerId)` on an [IUserMessage] with a poll. + +[!code-csharp[Getting poll answer voters](samples/get-poll-voters.cs)] + +### Retrieving poll results +You can get results of a poll by simply getting an [IUserMessage] and checking the `IUserMessage.Poll.Results` property. Alteratively you can check the results on a `MessageUpdated` gateway event. + + +## Gateway events + +### Poll votes +You can receive information about poll votes live using following events: +- `PollVoteAdded` +- `PollVoteRemoved` + +> [!NOTE] +> These events are only sent if the client has `GatewayIntents.GuildMessagePolls` or `GatewayIntents.DirectMessagePolls` intents enabled. It will receive events for polls in guild or dm channels respectively. + +### Poll expiry +On poll expiry the `MessageUpdated` event is fired. + + +[PollProperties]: xref:Discord.PollProperties +[IUserMessage]: xref:Discord.IUserMessage \ No newline at end of file diff --git a/docs/guides/polls/samples/create-poll.cs b/docs/guides/polls/samples/create-poll.cs new file mode 100644 index 00000000..80eada26 --- /dev/null +++ b/docs/guides/polls/samples/create-poll.cs @@ -0,0 +1,40 @@ + +// Create a poll +var poll = new PollProperties +{ + // Set the question + Question = new () + { // Text of the question + Text = "Discord.Net is awesome!" + }, + // Set the duration of the poll in hours + Duration = 69, + // Add answers to the poll + // You can add from 1 to 10 answers + Answers = [ + // An answer can consist of text and an emoji + new PollMediaProperties + { // Text for the answer + Text = "Yes!", + // Emoji for the answer + // Can be a custom emoji or unicode one + // Remember that bot must be in the guild where the custom emoji is + Emoji = Emote.Parse("<:wires:1214532316999974962>") + }, + // Or just text + new PollMediaProperties + { + Text = "Of course!", + } + ], + // You can allow users to select multiple answers + // By default, it's set to false + AllowMultiselect = true, + // Also you can set the layout of the poll + // By default, it's set to Default + // At this time, it's the only available layout type + LayoutType = PollLayout.Default +}; + +// Send the poll to the text channel +await textChannel.SendMessageAsync(poll: poll); \ No newline at end of file diff --git a/docs/guides/polls/samples/end-poll.cs b/docs/guides/polls/samples/end-poll.cs new file mode 100644 index 00000000..d005533a --- /dev/null +++ b/docs/guides/polls/samples/end-poll.cs @@ -0,0 +1,4 @@ +// Get a message with a poll +var message = await channel.GetMessageAsync(id) as IUserMessage; +// End the poll +await message.EndPollAsync(); \ No newline at end of file diff --git a/docs/guides/polls/samples/get-poll-voters.cs b/docs/guides/polls/samples/get-poll-voters.cs new file mode 100644 index 00000000..9b241546 --- /dev/null +++ b/docs/guides/polls/samples/get-poll-voters.cs @@ -0,0 +1,4 @@ +// Get the id of the first answer in the poll +var answerId = message.Poll.Answers.First().AnswerId; +// Get the list of voters who voted for the first answer +var voters = await message.GetPollAnswerVotersAsync(answerId).FlattenAsync(); \ No newline at end of file diff --git a/docs/guides/toc.yml b/docs/guides/toc.yml index f2cefda8..e1aec569 100644 --- a/docs/guides/toc.yml +++ b/docs/guides/toc.yml @@ -130,5 +130,7 @@ topicUid: Guides.BearerToken - name: Voice topicUid: Guides.Voice.SendingVoice +- name: Polls + topicUid: Guides.Polls - name: Deployment topicUid: Guides.Deployment