未为 Guild 类型定义 JDA setSendingHandler

JDA setSendingHandler not defined for type Guild

我正在使用 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。该站点上的文档已过时。它不仅不完整而且略有错误,它也是 JDA 1.x。 JDA 目前处于 3.x 并发生了重大变化。

此外,FilePlayer(和 URLPlayer)已从 JDA 中完全删除,因为它们是不完整且有轻微错误的示例。为了正确实施 AudioSendHandler and player system, consider using Lavaplayer.

Lavaplayer 有一个 JDA 示例目录 here

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