Inactive [MECH/FUN/WEB] MusicService - Internet music on your land! [1.2.5-R1.0]

Discussion in 'Inactive/Unsupported Plugins' started by palisade, Mar 21, 2012.

  1. Offline


    Hey I'm glad that you finally add World Guard support. Keep up the good work.
  2. Offline


    Made a fix to the refresh not working, in release 1.4.5.

    Thanks. :)

    Also, worth noting that one of people using my plugin has 40 to 80 people testing it right now on their server. Things seem to be going smoothly so far.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 24, 2016
  3. Offline


    I am not sure why but the plugin doesn't seem to want to load in for me. I get this error message.

    21:14:12 [INFO] Starting minecraft server version 1.2.5
    21:14:12 [INFO] Loading properties
    21:14:12 [INFO] Starting Minecraft server on *:25565
    21:14:12 [INFO] This server is running CraftBukkit version git-Bukkit-1.2.5-R1.0
    -b2149jnks (MC: 1.2.5) (Implementing API version 1.2.5-R1.0)
    21:14:13 [SEVERE] Could not load 'plugins\MusicService.jar' in folder 'plugins'
    org.bukkit.plugin.UnknownDependencyException: Factions
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(
    at org.bukkit.craftbukkit.CraftServer.<init>(
    at net.minecraft.server.ServerConfigurationManager.<init>(ServerConfigur
    at net.minecraft.server.MinecraftServer.init(
  4. Offline


    Are you using MusicService 1.4.5?

    I've made Factions a soft-dependency in version 1.4.5 so that factions.jar is completely optional. And, I've tested that removing the factions.jar on my side doesn't cause any errors to show up in the log here.

    Not sure why it would be causing problems for you. Unless you were running on the old MusicService 1.2.4 which I think had a required factions dependency.
  5. Offline


    Yes.. that is exactly what was wrong.. It fixed the problem. Thank you.. I was just curious do you think it would be possible to get it working with dropbox?
  6. Offline


    Glad that worked for you.

    Regarding dropbox, that would be a solid no. The reason is that dropbox has a limit to how many people can connect to a public dropbox link, and that number is very low if I recall correctly. Which means your dropbox links would become invalid pretty quickly. Which is why it is a bad idea to host public files for people on dropbox.
  7. Offline



    Thanks for you help this is a awesome plugin you have here.
  8. Offline


    Thanks! [cake]
  9. Offline


    Hey sorry to bother you again but I have another small problem.

    I have my web server setup with apache like you suggested in that youtube video.

    Everything seems to be setup correctly but when I go to pickmusic in the server. It doesn't create the 'insert-minecraft-username'.html in the music folder for some odd reason. I am most likely doing something wrong but I have no clue what It could be. I have the ability to go the music.html page and it shows this

    User: #USER

    Status: In faction land, streaming station...

    It also seems that when I pick the music something happens so the config.yml file contents get deleted completed only to leave this.

    I am not sure if that is supposed to happen or not. If you can help me out that would be awesome but I understand if its out of your control.
  10. Offline


    With the brand new version you don't need the apache webserver anymore. I wrote my own webserver inside the plugin itself now. And, I no longer store the files in a directory I store them in memory instead. Which is far more secure than giving remote users access to your file system anyways, besides being much faster and easier for an admin to set up as well.

    I'm not sure why the config.yml is being deleted, that does not happen here.

    Try shutting your server down before you hand modify the config.yml and see if that helps.
  11. Offline


    It's too bad it can't play .midi, .wav, or any format..
  12. Offline


    I got rid of the server and I fixed the config problem its because I had a space in it.

    I updated to the new Music Service.jar
    When you say put this in the config.yml file ... do you mean you literally copy and paste
    Or do I put my own domain there? I guess I am confused.

    wwwPort: 8888
  13. Offline


    You can convert midis, wavs, etc. to mp3 or ogg and then set up a shoutcast or icecast stream of your own to stream them.

    Yes you want to put your own domain and/or IP address there. And, the port you want to host on, I give 8888 as an example.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 24, 2016
  14. Offline


    The new version is awesome. But can you make that if you set a radio to a WorldGuard region, the music still plays in their sub-regions? It would be awesome if you can set that as an option for only some regions.

    Otherwise, the plugin is working properly, it is awesome. :D
  15. Offline


    Subregions should be able to play music. Did you set their priorities up? I honor the worldguard region priority system.

    Granted I never tested it myself.

    Oh, though I just realized, if you make the larger region high priority it would supersede all the others. That might be the situation you have.
  16. Offline


    Thachan on bukkitdev (aka tkorpe on github, Thasan on bukkit forums) let me know that there is a bug in the icecast code, he has contributed a fix. I'll be fixing that later tonight when I get home from work. He's also provided some improvements, including; merging the commands into one command, making permissions for all commands default to op so you'll be forced to allow musicservice.* if you want users to have access to any of the commands (I'm hoping this won't just generate more support questions), generating a default config.yml file, and some refactoring.

    UPDATE: I didn't release last night because I found some show stopper bugs which I've fixed. Also, finding music only showed results for shoutcast and not icecast. So, now I'm writing code to handle showing both. Though, there are two problems with this:

    1) There are quite a lot of Icecast stations that don't have the icecast.png that I look for to determine if they're icecast. I have no other way of knowing they're icecast other than that. This is a pretty serious problem, because I default back to shoutcast and then the station fails to play correctly leading users to think that the plugin doesn't work at all.

    I decided maybe I could base it on whether they were searched for on and then assume they were icecast, however then only the person responsible for setting the station would know since I only hold their html page in memory. Anyone else who comes into the area will have no idea the station is icecast.

    Potential Solution: I think I'm going to settle on storing the station type (shoutcast or icecast) into the yml files along with the IP and port. This also means that I'm breaking the config.yml format. So, I need to also write code that detects if you already have a config.yml filled with stations, and then attempts to port your stations over to the new yml format. Unfortunately, this solution doesn't work if you set an icecast music station manually and there is no icecast.png file at the station for me to check. I might have to introduce set and find commands specifically for icecast and shoutcast separately in the end to solve this. Meaning I'll have to leave it up to the users to figure out which is which. :(

    All of this means that the next plugin release is going to take longer than I had anticipated.

    2) The search takes quite a bit longer because two http queries have to respond for potentially quite a lot of entries on either or's search results. This means the user is waiting longer, so I'm probably going to send them a message that says, "Please wait, searching..." At the moment, they have no way of knowing what is going on. Alternatively, I might separate the shoutcast and icecast searches into two different commands. Though, I really liked the idea of combining them. However, I would think that users who prefer one over the other might like two commands instead. So, I might go that route instead. As it stands, I already have the combined search command finished; albeit with this lag, lack of notification, and the stations don't play correctly if the icecast.png is missing.

    Also, I am probably going to reintroduce the findmusic and pickmusic commands that Thachan removed. I'll keep his new commands too, but I want to keep the old ones so that the users who are already used to the old commands aren't confused when they don't exist anymore. They'll both do exactly the same thing still.

    The new command structure is:
    /music find <searchString>
    /music pick <number>
    /music set <streamIpPort>
    /music reload

    However, I can't use the alias /m that Thachan chose because it is used for sending private messages between players in essentials, which most server admins, myself included, have. Instead I'm going to use /ms for the shortened version of /music.

    One solution to the icecast.png not responding is that I could attempt to open status.xsl in my Java code inside the actual plugin. However, this will slow things down because now I have to perform an http get on the server.

    The advantage to using the png was it could be performed on the client-side in the browser instead of from the server. I can't check the existence of the status page on the client side because modern browsers do not allow cross-site scripting because they're dangerous and were used in malware delivery in the past. However, the browsers do let you check if an image has been loaded successfully, which is a feature I was relying on to detect the icecast streams. It was a clever workaround until I found out it doesn't work for all icecast streams.

    Phew, hope that clears up where I am at right now with the next release.

    UPDATE 2: It turns out the icecast stations that don't provide an icecast.png for me to check against are also missing the status page as well.

    Therefore, I think the only real way to find out if it is an icecast stream would be to actually open a connection to the icecast stream itself and parse it to find out. I'm guessing there's something in the stream that makes it obvious it is an icecast server. Failing that, it is going to have to be up to the users to say this is a shoutcast or icecast.

    Also, when I add youtube support, I'm going to need a way to search only youtube. Therefore it makes sense to have separate commands for each protocol.
  17. Offline


  18. Offline


    I took down the videos because they were no longer relevant to the new plugin. It is now as simple as drop the jar in your plugins directory, jot a few lines into the config.yml and open the webpage in your browser. Not sure if I should make a video for that.

    I can though, if that helps. It would probably be after I finish this next release though, since some things are going to change like the commands.
  19. Offline


    Ok, thanks

    Anyone got a server working with this? If so, may I have the IP? I'd love to try it out.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 24, 2016
  20. Offline


    I would like a version of this plugin which takes sound files from a specified directory and plays them (maybe in random order) sporadically or in a loop in an area. This might require spout, but I'd be fine with that.
  21. Offline


    This plugin can do that actually. You just need to get the station streaming software DNAS (or SAM) on This will let you stream your own music and even your microphone so you can DJ.

    Also, once I fix the support (in our next plugin release), you'll be able to use their software as well for that.

    UPDATE: Speaking of which 1.4.8 is out now, shoutcast and icecast should work normally now. Now you can use the free software from to host your own icecast streams if you want.
  22. Offline


    I see, I did not express my intentions clearly, sorry^^

    I was actually referring to a version of the plugin which doesn't require any complexe additional software (except spout, if defined as such), because it's a real struggle to set another additional server up and have every player to be logged in there additionally to being on the server. Imo having music playing on my lands is, unfortunately, not worth the effort.
  23. Offline


    I get
    07.05 20:13:50 [Server] INFO ... 14 more
    07.05 20:13:50 [Server] INFO at org.bukkit.command.PluginCommand.execute(
    07.05 20:13:50 [Server] INFO at blakesteel.MusicService.MusicService.onCommand(
    07.05 20:13:50 [Server] INFO at blakesteel.MusicService.MusicService.commandSetShout(
    07.05 20:13:50 [Server] INFO at blakesteel.MusicService.MusicService.setStation(
    07.05 20:13:50 [Server] INFO at blakesteel.MusicService.MusicService.setMusicOnFactionLand(
    07.05 20:13:50 [Server] INFO at blakesteel.MusicService.SupportFactions.isPlayerFactionAdmin(
    07.05 20:13:50 [Server] INFO Caused by: java.lang.NullPointerException
    07.05 20:13:50 [Server] INFO at
    07.05 20:13:50 [Server] INFO at
    07.05 20:13:50 [Server] INFO at net.minecraft.server.MinecraftServer.w(
    07.05 20:13:50 [Server] INFO at net.minecraft.server.NetworkListenThread.a(
    07.05 20:13:50 [Server] INFO at net.minecraft.serverhook.NetServerHandlerProxy.a(
    07.05 20:13:50 [Server] INFO at net.minecraft.server.NetServerHandler.a(
    07.05 20:13:50 [Server] INFO at net.minecraft.server.NetworkManager.b(
    07.05 20:13:50 [Server] INFO at net.minecraft.server.Packet3Chat.handle(
    07.05 20:13:50 [Server] INFO at net.minecraft.serverhook.NetServerHandlerProxy.a(
    07.05 20:13:50 [Server] INFO at net.minecraft.server.NetServerHandler.a(
    07.05 20:13:50 [Server] INFO at
    07.05 20:13:50 [Server] INFO at net.minecraft.server.NetServerHandler.handleCommand(
    07.05 20:13:50 [Server] INFO at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
    07.05 20:13:50 [Server] INFO at org.bukkit.command.SimpleCommandMap.dispatch(
    07.05 20:13:50 [Server] INFO at org.bukkit.command.PluginCommand.execute(
    07.05 20:13:50 [Server] INFO org.bukkit.command.CommandException: Unhandled exception executing command 'music' in plugin MusicService v1.4.9
    07.05 20:13:50 [Server] SEVERE null
    When trying to type /music setshout <URL i put in> i also tried an ip
  24. Offline


    Okay, I think I may have fixed that exception you got.

    Also, I believe it was caused because you aren't an admin of a faction. You have to create a faction first and claim some land and then you can use the setshout command while standing in your land.

    I'll release a new 1.5.1 version of the plugin with this fix in it.


    i've verified that i don't get the exception now on my side, also that stream i use in the screenshot works try that command:

    /ms setshout

    It's a shoutcast stream that has parodies of minecraft.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 24, 2016
  25. Offline


    Does it matter if i use hamachi? And didnt port forward
  26. Offline


    k thanks and also this plugin is great including the part that you don't need spout. Bump
  27. Offline


    I've never used hamachi, so I'm not certain. If you find out, let me know.

    I'm guessing that means it worked for you. Thanks btw. :)
  28. Offline


    Does this work with spout? if so how?
  29. Offline


    It does not currently use or require spout.
  30. Offline


    Is it possible to have a world wide radio enabled? I would like for everyone on my server to listen to my radio station, without having to be inside any region (of course I could try to region my entire world, but that would be a stress test for the server itself ...)

    Or in case I have not followed the features completely, just confirm or not, if I can do what I asked for :)

    edit okay. figured it out, can play certain music for wilderness, right.

    Well I have another question for you. I looked through the source code (sizeable plugin, I gotta say,) but how did you actually manage the streaming part?

Share This Page