java - Spigot API playSound
问题描述
所以我正在尝试使用 spigot api 创建一个 minecraft 插件,我玩得很开心!我正在尝试制作一个向播放器播放音乐光盘的 /play 命令。我在尝试向播放器播放音乐时遇到了问题。我正在使用这个:player.playSound(player.getLocation(), Sound.MUSIC_DISC_PIGSTEP, 500.0f, 1.0f);
这很好用,但由于某种原因,当我进入下界等新维度时,音乐停止播放。有没有办法阻止这种情况?或者有解决办法吗?谢谢大家的帮助!
(我 13 岁,对 Java 很陌生,如果真的很明显,我很抱歉)
解决方案
playSound方法只会在该播放器使用时播放某个区域中的声音,但是由于您使用 500 的音量,它覆盖了非常非常大的区域,因此播放器将继续听到声音,除非他们移动得很远或改变维度。请注意,音量值通常介于 min 0.0 和 max 1.0 之间,任何超过 1.0 的值只会增加可以听到声音的距离。
我能想到的唯一真正的解决方法是playSound
在玩家改变维度或远离声音位置后再次使用。例如,您可以使用 aPlayerChangedWorldEvent
来检测玩家何时移动,然后再次播放声音。
事件监听器参考:https ://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/player/PlayerChangedWorldEvent.html
如果您不确定如何使用事件监听器,那么这里有一个很棒的教程:https ://www.spigotmc.org/wiki/using-the-event-api/
推荐阅读
- java - 在 Java 中处理现有文本文件中的字段
- python - 如何使用参数创建数据块作业
- azure - Azure:创建授权令牌以访问 Azure 资源管理 API
- podio - Podio.NET.dll 中出现“System.NullReferenceException”类型的异常
- ruby-on-rails - 在 postgres 中插入值,但它们被解释为列
- vba - 使用 VBA 将电子表格传输到 Access 数据库
- c++ - 如何在 ROS 中使用 PCL 可视化 kinect 数据的表面法线?
- django - dockerized django 项目中的芹菜
- apache-spark-sql - Spark SQL 可以在 GROUP BY 聚合中使用 FIRST_VALUE 和 LAST_VALUE(但这不是标准的)
- c# - OleDbCommand 使用错误的路径