1

我正在编写一个 Minecraft 插件,(只是对游戏 Minecraft 的修改,但在 Minecraft 服务器上使用,而不是客户端修改)

我想创造一些当玩家输入的东西

“/播放歌曲”

连同 SoundCloud URL,它会找到该 URL 并循环它。

(能够播放 soundcloud 播放列表将不胜感激)

所有其他工作将由我完成。(检查 URL 是否为空,测试播放器是否发送 /playsong 以及有效的 URL 等)

用 // 添加注释告诉我某些代码的作用将不胜感激。

感谢您的阅读。

〜马修274

4

1 回答 1

0

这通常是不可能的。Minecraft 无法播放需要从远程服务器下载的任意歌曲。有几种方法仍然可以做到这一点,但这并不简单。

一种技术是获取歌曲并尝试将其转换为一系列音符以用于/playsound(或音符块)。这并不容易,也不会给出完美的结果,但假设它可行的(尽管我不知道任何细节)。

另一种技术是创建一个资源包,将其发送给客户端,然后让他们播放歌曲。这也是不平凡的,但仍然可行。一般程序是:

  • 从 soundcloud 查找并下载歌曲(我不知道 soundcloud 的 API,但我认为他们有)。
  • 如有必要,将歌曲.ogg.mp3. 可能还有一个图书馆。
  • 使用该声音(和适当的声音索引)创建一个资源包,并暂时将其下载到您的服务器上。
  • 发送资源包 发送链接到该资源包的数据包。
  • 等待客户端以“已接受”的资源包状态响应。
  • 使用命名音效包(或)播放歌曲/playsound

这个过程并不简单,但是如果你在播放列表中保留一组歌曲并在资源包中发送多首歌曲,你应该能够实现它。您将需要ProtocolLib来发送自定义数据包。

很抱歉,我无法为此提供代码,但这是一项复杂的任务,需要几个部分,我都不知道其中的全部细节。

于 2016-04-29T14:43:08.520 回答