如何正确设置SharpLink和LavaLink

时间:2018-08-29 13:51:31

标签: c# discord discord.net

我正在使用SharplinkLavaLink,但无法进行LavalinkManager设置并无法播放不和谐的bot播放音乐。

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。

2 个答案:

答案 0 :(得分:1)

如果您查看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 
});

祝你好运。

答案 1 :(得分:0)

here所示,application.yml的缺省值对于WS服务器使用0.0.0.0。

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

希望这会有所帮助