Как мне сделать команду для сохранения пользовательского ввода на Discord Bot в C#?
У меня есть бот Discord, который я сделал с Discord.net.
В настоящее время у меня есть команда, которая отправляет строку, но я хотел создать команду, которая разместила строку, ранее введенную пользователем.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
using Microsoft.Extensions.DependencyInjection;
using Discord;
using Discord.Commands;
using Discord.WebSocket;
namespace SuccubusBot.Modules
{
public class Ping : ModuleBase<SocketCommandContext>
{
[Command("hold")]
public async Task PingAsync()
{
string oneL = "L";
await ReplyAsync(oneL);
}
}
}
Мой единственный опыт получения пользовательского ввода связан с консольными проектами, поэтому я не уверен, что здесь делать.
1 ответ
Решение
Простая команда, которая выводит то, что пользовательский ввод может быть написано так:
[Command("say")]
public async Task Say([Remainder] string echo)
{
// ReplyAsync is a method on ModuleBase
await ReplyAsync(echo);
}
Пример использования будет (если ваши команды начинаются с префикса "!"):
!say Hello
Бот будет выводить по каналам, которые ему разрешено набирать:
Hello
Ключ в этом - [Remainder] в списке аргументов. Он сообщает разработчику, что пользователь передаст команду со строкой после нее.