【问题标题】:C# Discord Bot - Upload Local ImageC# Discord Bot - 上传本地图像
【发布时间】:2018-10-22 02:24:13
【问题描述】:

我使用 C# 创建了这个机器人来帮助我的联盟在手机游戏中脱颖而出。我们正在使用不和谐进行交流。我的机器人的功能之一是设置“Raid Lane”,这样人们就可以声称他们将要走的路。我们的联盟在我们的不和谐中散布了一个图像集,我希望在机器人为该难度设置突袭通道时发布每个突袭的相关图像。目前我有:

var embed = new EmbedBuilder();
            embed.WithTitle("Ultimus Raid - Level 40");

embed.WithImageUrl("https://cdn.discordapp.com/attachments/430797829078908928/441255069518921728/Lvl40raid.png");

await ReplyAsync("", false, embed);

这有点用。我可以看到图片,但有时在我离开并重新打开 discord 后,我看到的只是标题。在我的程序运行的后端有一个 websocket 错误。我试图通过使用本地图像而不是来自 url 来解决这个问题,以防万一出现问题。我没有运气让我的机器人发布本地图像。我试过了

embed.WithImageUrl("C:/Users/Administrator/Desktop/DiscordBot/Pictures/Lvl40raid.png");

以及用 \ 代替 /。还尝试了embed.ImageUrl = ... 命令。

【问题讨论】:

    标签: c# discord discord.net


    【解决方案1】:

    这对我有用(使用 discord.net):

    var guild = _client.Guilds.Single(g => g.Name == "guild name");
    var channel = guild.TextChannels.Single(ch => ch.Name == "channel name");
    await channel.SendFileAsync("C:\\Pictures\\something.png","Caption goes here");
    

    【讨论】:

    • 谢谢,这为我指明了正确的方向。我的命令在不同的模块中,所以我无法访问客户端来分解公会和频道。但由于模块设置为采用 SocketCommandContext,我能够将上下文拆分为客户端和消息。最终为我工作的是 await Context.Channel.SendFileAsync("file\\location","Title",false,null)
    【解决方案2】:

    虽然Paul's answer 将完成工作,但如果您想在调用机器人的频道中发送文件,您可以使用:

    await Context.Channel.SendFileAsync("{FILEPATH}", "CAPTION");
    

    【讨论】:

      猜你喜欢
      • 2019-10-25
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 2020-05-13
      • 2019-06-07
      • 2016-12-02
      • 1970-01-01
      • 2020-10-18
      相关资源
      最近更新 更多