我正在使用JDA(Java)为Discord创建一个机器人。尝试让我的机器人在语音通道中播放音乐时遇到问题。

问题在下面的代码中

public static void startPlaying(net.dv8tion.jda.core.entities.Guild guild) {
    //Player player = getMyURLPlayer(guild.getJDA());
    FilePlayer player = getMyFilePlayer();

    //DiscordBot.bot.getAudioManager(guild).setSendingHandler(player);
    guild.setSendingHandler(player);
    System.out.println("Player.play is getting executed...");
    player.play();
}


在上面的代码中,根据eclipse,以下行是不正确的

guild.setSendingHandler(player);


它说

The method setSendingHandler(FilePlayer) is undefined for the type Guild

最佳答案

我假设您正在根据发布的代码引用http://jda.readthedocs.io/en/latest/pages/audio.html。该站点上的文档已过期。它不仅不完整且略有不正确,而且还适用于JDA1.x。 JDA当前在3.x中,并且发生了重大变化。

此外,由于JDA中的FilePlayer(和URLPlayer)不完整且示例存在问题,因此已从JDA中完全删除。为了正确实现AudioSendHandler和播放器系统,请考虑使用Lavaplayer

Lavaplayer具有JDA here的示例目录

如果您有任何疑问,请随时加入JDA Discord Guild并提问。还有一个专门用于Lavaplayer支持的频道。

10-04 11:40