首页 > 解决方案 > Spigot API playSound

问题描述

所以我正在尝试使用 spigot api 创建一个 minecraft 插件,我玩得很开心!我正在尝试制作一个向播放器播放音乐光盘的 /play 命令。我在尝试向播放器播放音乐时遇到了问题。我正在使用这个:player.playSound(player.getLocation(), Sound.MUSIC_DISC_PIGSTEP, 500.0f, 1.0f); 这很好用,但由于某种原因,当我进入下界等新维度时,音乐停止播放。有没有办法阻止这种情况?或者有解决办法吗?谢谢大家的帮助!

(我 13 岁,对 Java 很陌生,如果真的很明显,我很抱歉)

标签: javabukkit

解决方案


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/


推荐阅读