【问题标题】:How to setup SharpLink and LavaLink correctly如何正确设置 SharpLink 和 LavaLink
【发布时间】:2019-02-04 08:08:31
【问题描述】:

我正在使用 SharplinkLavaLink,但无法从我的 discord 机器人获取 LavalinkManager 设置和播放音乐。

this._client = new DiscordSocketClient(
    new DiscordSocketConfig {LogLevel = LogSeverity.Verbose});
_lavalinkManager = new LavalinkManager(_client);
_lavalinkManager.Log += LavalinkManager_Log;

在 DiscordClient#Ready 事件中,我执行 await _lavalinkManager.StartAsync(); 并且下面发布的错误日志是由它们引起的。

** 19:16:19 Lavalink    Connecting to Lavalink node at ws://0.0.0.0/
** 19:16:19 Lavalink    Failed to connect to Lavalink node at ws://0.0.0.0/
** 19:16:19 Lavalink    Waiting 6 seconds before reconnecting

还有LavalinkManager_Log 方法,

private Task LavalinkManager_Log(LogMessage arg1)
{
    Console.WriteLine($"** {arg1}");
    return Task.CompletedTask;
}

我已经设置了 lavalink(发布日期 8 月 25 日)并且没有提供 application.yml 文件,希望它能够获取默认设置,并且我现在正在使用 SharpLink 最新的 nuget。

【问题讨论】:

    标签: c# discord discord.net


    【解决方案1】:

    here 所见,application.yml 的默认值是为 WS 服务器使用 0.0.0.0。

    在您的情况下,它无法连接到该服务器,因为它没有运行或位于其他 IP 地址上。我无法从提供的代码中告诉你这一点,这将是你必须自己发现的东西。

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      如果您查看this commit,他们修复了此问题,尽管它尚未在 Nuget 上更新,因此您必须指定配置而不使用默认配置。另一种选择是构建sharplink 项目并获取dll 并将其引用添加到您的项目中。这样,您无需依赖 Nuget 更新即可获得最新功能。

      到目前为止,您必须自己在代码中添加一个与那里的application.yml 对应的配置。还要验证 lavalink 是否确实在运行。尝试在日志中找出listening on port xxxx。您可以像这样添加配置:

      LavalinkManager lavalinkManager = new LavalinkManager(client, new LavalinkManagerConfig
      {
          RESTHost = "localhost",
          RESTPort = 2333,
          WebSocketHost = "localhost",
          WebSocketPort = 2333,
          Authorization = "YOUR_SECRET_AUTHORIZATION_KEY",
          TotalShards = 1 
      });
      

      祝你好运。

      【讨论】:

        猜你喜欢
        • 2014-06-11
        • 2023-03-24
        • 1970-01-01
        • 2016-07-07
        • 2017-03-16
        • 1970-01-01
        • 1970-01-01
        • 2011-04-15
        • 2020-08-20
        相关资源
        最近更新 更多