【问题标题】:discord Add SetGame/SetStatus不和谐添加 SetGame/SetStatus
【发布时间】:2017-11-18 14:18:57
【问题描述】:

我想知道如何在 C# 中为机器人设置“正在播放”,我使用的是 .NET

在 Discord 上,文字通常在您的名字下,并说明您正在玩的当前游戏,我希望它显示自定义消息,当然我知道机器人不是在玩游戏我只是想让它说出我想要的东西它说,例如“扮演好人”, “玩 osu!”。 “玩谷歌浏览器”,

这是我的代码的一部分,请帮助我。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Discord;
using Discord.Commands;

namespace Kosei_Arima
{
class MyBot
{
    DiscordClient discord;
    CommandService commands;

    Random rand;

    string[] freshestMemes;

    public MyBot()
    {
        rand = new Random();

        freshestMemes = new string[]
        {
            "mem/mem1.jpg", //0
            "mem/mem2.jpg", //1
            "mem/mem3.png", //2
            "mem/mem4.png", //3
            "mem/mem5.png", //4
            "mem/mem6.jpg", //5
            "mem/mem7.jpg", //6
            "mem/mem8.jpg", //7
            "mem/mem9.jpg", //8
            "mem/mem10.jpg", //9
            "mem/mem11.jpg", //10
            "mem/mem12.jpg", //11
            "mem/mem13.jpg", //12
            "mem/mem14.jpg", //13
            "mem/mem15.jpg", //14
            "mem/mem16.jpg", //15
            "mem/mem17.jpg", //16
            "mem/mem18.jpg", //17
            "mem/mem19.jpg", //18
            "mem/mem20.jpg", //19
            "mem/mem21.jpg", //20
            "mem/mem22.png"  //21
        };

        discord = new DiscordClient(x =>
        {
            x.LogLevel = LogSeverity.Info;
            x.LogHandler = Log;
        });

        discord.UsingCommands(x =>
        {
            x.PrefixChar = '-';
            x.AllowMentionPrefix = true;
        });

        commands = discord.GetService<CommandService>();

        RegisterMemeCommand();
        RegisterHelpCommand();
        RegisterPurgeCommand();
        RegisterPruneCommand();
        RegisterDisconnectCommand();
        RegisterEchoCommand();

        OnJoin();
        OnLeave();

        discord.MessageReceived += Discord_MessageReceived;

        discord.ExecuteAndWait(async () =>
        {
            await discord.Connect("TokenGoesHere", TokenType.Bot);
        });
    }

【问题讨论】:

    标签: c# api bots discord


    【解决方案1】:

    您应该能够使用 DiscordClient 的 SetGameAsync(string name, string streamurl = null, StreamType streamtype = StreamType.NotStreaming) 函数来执行此操作(给出具有它们的参数的默认值)。它是异步的,因此您需要等待它(适用于异步函数的所有标准内容都适用于此处)。如果你只想设置游戏,使用方法很简单:

    await discord.SetGameAsync("Google Chrome");
    

    对于 Twitch 流(Discord.net 似乎不支持其他任何东西):

    await discord.SetGameAsync("Overwatch", "https://twitch.tv/yourstreamhere", 
      StreamType.Twitch);
    

    【讨论】:

      【解决方案2】:
              client.ExecuteAndWait(async () =>
              {
                  await client.Connect("your fkin token is here", TokenType.Bot);
                  client.SetGame("<whatever you want>");
              });
      

      【讨论】:

      • 请在您的答案中添加一些上下文。对于提问者来说,仅仅用代码回答并不总是足够的。
      猜你喜欢
      • 1970-01-01
      • 2018-02-05
      • 2020-05-25
      • 2018-08-11
      • 2022-10-17
      • 1970-01-01
      • 2021-05-22
      • 2022-10-24
      • 2017-08-24
      相关资源
      最近更新 更多