如何正确设置 SharpLink 和 LavaLink
How to setup SharpLink and LavaLink correctly
我正在使用 Sharplink and LavaLink,但无法通过我的 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。
如 here 所示,application.yml 的默认设置是将 0.0.0.0 用于 WS 服务器。
在您的情况下,它无法连接到该服务器,因为它不是 运行 或在其他 IP 地址上。我不能从提供的代码中告诉你这一点,这将是你必须自己发现的东西。
希望对您有所帮助
如果您查看 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
});
祝你好运。
我正在使用 Sharplink and LavaLink,但无法通过我的 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。
如 here 所示,application.yml 的默认设置是将 0.0.0.0 用于 WS 服务器。
在您的情况下,它无法连接到该服务器,因为它不是 运行 或在其他 IP 地址上。我不能从提供的代码中告诉你这一点,这将是你必须自己发现的东西。
希望对您有所帮助
如果您查看 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
});
祝你好运。