Как мне сделать команду для сохранения пользовательского ввода на 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] в списке аргументов. Он сообщает разработчику, что пользователь передаст команду со строкой после нее.

Другие вопросы по тегам