diff --git a/src/main/java/com/oliverdunk/jukeboxapi/api/JukeboxAPI.java b/src/main/java/com/oliverdunk/jukeboxapi/api/JukeboxAPI.java index d37a7d4..864155c 100644 --- a/src/main/java/com/oliverdunk/jukeboxapi/api/JukeboxAPI.java +++ b/src/main/java/com/oliverdunk/jukeboxapi/api/JukeboxAPI.java @@ -43,6 +43,7 @@ public static void play(Player player, final Media media){ parameters.put("url", media.getURL()); parameters.put("pan", media.getPan() + ""); parameters.put("volume", media.getVolume() + ""); + parameters.put("looping", media.isLooping() + ""); Bukkit.getScheduler().runTaskAsynchronously(Jukebox.getInstance(), new Runnable() { public void run() { if(media.getType() == ResourceType.MUSIC) Jukebox.getInstance().getRequestHandler().makeRequest("music", parameters); diff --git a/src/main/java/com/oliverdunk/jukeboxapi/api/models/Media.java b/src/main/java/com/oliverdunk/jukeboxapi/api/models/Media.java index 19b6134..f0647b9 100644 --- a/src/main/java/com/oliverdunk/jukeboxapi/api/models/Media.java +++ b/src/main/java/com/oliverdunk/jukeboxapi/api/models/Media.java @@ -14,6 +14,8 @@ public class Media { @Getter @Setter private int volume = 100; //Pan left to right, -100 to 100 @Getter @Setter private int pan = 0; + //If the music track should loop once complete (not applicable for sounds) + @Getter @Setter private boolean looping; public Media(ResourceType type, String URL){ setType(type); diff --git a/src/main/java/com/oliverdunk/jukeboxapi/commands/JukeboxCommand.java b/src/main/java/com/oliverdunk/jukeboxapi/commands/JukeboxCommand.java index e5e5e1f..e83e9f6 100644 --- a/src/main/java/com/oliverdunk/jukeboxapi/commands/JukeboxCommand.java +++ b/src/main/java/com/oliverdunk/jukeboxapi/commands/JukeboxCommand.java @@ -70,6 +70,7 @@ private boolean help(CommandSender sender){ sender.sendMessage("/jukebox sound "); sender.sendMessage("/jukebox region add "); sender.sendMessage("/jukebox region remove "); + sender.sendMessage("/jukebox stop "); return true; } diff --git a/src/main/java/com/oliverdunk/jukeboxapi/listeners/RegionListener.java b/src/main/java/com/oliverdunk/jukeboxapi/listeners/RegionListener.java index b41d84a..a8dd29b 100644 --- a/src/main/java/com/oliverdunk/jukeboxapi/listeners/RegionListener.java +++ b/src/main/java/com/oliverdunk/jukeboxapi/listeners/RegionListener.java @@ -51,6 +51,10 @@ public void onMove(PlayerMoveEvent e){ if(playing.containsKey(e.getPlayer().getUniqueId().toString()) && playing.get(e.getPlayer().getUniqueId().toString()).equals(highestRegion.getId())) return; + if(playing.containsKey(e.getPlayer().getUniqueId().toString()) && + utils.getURL(playing.get(e.getPlayer().getUniqueId().toString())).equals( + utils.getURL(highestRegion.getId()))) return; + playing.put(e.getPlayer().getUniqueId().toString(), highestRegion.getId()); Media media = new Media(ResourceType.MUSIC, utils.getURL(highestRegion.getId()));