[INACTIVE][MISC] BananaMapRender 1.6 - generate a flatmap image render of your world [1000]

Discussion in 'Inactive/Unsupported Plugins' started by codename_B, Jun 3, 2011.

  1. Offline

    codename_B

    [​IMG]
    [​IMG]
    BananaMapRender
    a lightweight dynmap alternative - fater than ever

    Features:
    • Player names and faces on a map
    • ZOOMING!
    • Gorgeous map rendering
    • Monsters on a map
    • Monster spawners on map
    • Signs on map if the first line of the sign is [BMR]
    • Shows time of day
    • Super light on resources
    • Super fast rendering
    • Full multithreading support
    • Worldguard Regions
    • Worldborder borders (circle and square)
    • Permissions support
    • Configure everything the way you want it
    • MultiWorld support
    • Toggleable icons
    [​IMG]
    Version: 1.6
    Download: Download Link
    Commands: /bmr [value between 1 and 4] /bmr length
    Example Render: Here

    Instructions: These assume that you are running BukkitHTTPD as the web server on your host. If this is the case you don't need to change anything. Otherwise, please configure the correct directory for your web server install.

    • Place in plugins/ folder along with all the included libs and extra folders in the zip. The plugin will not create its own if these do not exist!
    • Start the server, then type bmr 1 into the console - wait for this to complete then continue running your server as normal!
    • Players will automatically generate the entire map over a period of weeks as they explore it, but if you wish, you can forcefully render areas of the map using /bmr in-game.
    • Navigate to http://yourip/worldname/
    • If you wish to have certain signs displaying on the map - have the first line of the sign be
    Code:
    [BMR]
    this
    is a
    sign
    Some more information:
    • The plugin keeps each 512px tile for 1 hour after creation. After this they are flagged for updating, either by your players as they wander around your map, or by you using /bmr [value]
    • Each bmr value is equal to (mcregion file+1)^2 so be careful when using large values as bmr 10 renders over 5k by 5k tiles!
    • The plugin will print a report when it is done rendering. It will look something like this.
    Code:
    2011-08-04 14:31:37 [INFO] Map rendering: 1 1 DONE
    2011-08-04 14:31:37 [INFO] Rendering complete: Took 190s to complete : 288 chunks rendered in total
    
    Live Examples:

    [​IMG]

    Credit Where Due:
    • clone1018 for minotar.net
    • Nijikokun for suggestion I use leaflet as the map system, and for the css and coding help
    • Demonen for all the testing and for writing a couple of functions for me
    • All the folks on the United Banana Empire for being super patient with me as I tested this plugin
    • Protected for doing a complete rewrite of some of my code for 0.3 - thankyou so so so much - I don't know what I'd do without you on my team! ^^
    • K900 for all his anti-noob nyan work :)
    Coming soon: progress on GitHub

    • Fun filters (not done)
    • Fix wierd chrome bugs (possibly done)
    • Flash based site (partially done)
    Changelog:

    • 0.0.1 - 01/06/2011 - released privately to beta testers.
    • 0.1 - 04/06/2011 - released publicly after adding lots of shiny features.
    • 0.2 - 06/06/2011 - implemented multiworld and added more entities.
    • 02.1 - 07/06/2011 - implemented biomes, changed mob formula, changed how ice looks to be more "icey" added sign and mob spawner display.
    • 1.0 - 09/06/2011
    • 1.1 - 15/06/2011 - added all sorts of anti-noob nyanerry - thanks K900!
    • 1.2 - 19/07/2011 - removed NMS references - increased performance - hopefully fixed sign bug
    • 1.5 - 04/08/2011 - new index.html - new rendering method - new chunksnapshot method increased performance - decreased lag
    • 1.6 - 16/08/2011 - reordered rendering logic, cleaned up memory leak, took out the cat, introduced the neighbors to my girlfriend, slowed down rendering so you don't even notice its happening when the server is running. Also it's a lot prettier.
     
  2. Offline

    DamienMine

    So we can count on a quick fix for the current recommended build? I love the idea and implementation of the plugin but sometimes it causes exceptions on my server (Bukkit 953 Server Ver. 1.7.2., running with Multiverse (main map: world, nether (unused) and a custom nether world folder), the usual stuff (Worldedit/Worldguard, Essentials, a few minor plugins).

    The error message is as follows:
    java.lang.NoSuchFieldError: g (seems to match the fix "pulled" by oliverw92)
    at com.ubempire.render.BananaMapRender.getChunksInUse(BananaMapRender.java:160) yada yada yada
     
  3. Offline

    oliverw92

    I fixed it in my pull
     
  4. Offline

    DamienMine

    Excuse my infamiliarity with Java but that still means us "normal folks" need to wait for a compiled/"put-together" version or can we apply the fix ourselves?
     
  5. Offline

    Lolmewn

    Hmm, I liked the old tile rendering more.. That was like "whoosh!" and this is like "poof". Get it? :p
     
  6. Offline

    omerb01

    Can you give the compiled jar file download link?
    Thnaks! :p
     
  7. Offline

    oliverw92

  8. Offline

    keyosuke

    I've been loving this plugin for weeks, but if I could make a feature request I would ask that the void (places with no blocks) should be some other color than white, since snow is also white. It creates a lot of confusing in the Skyland type of world that Multiverse now supports. I realize Skylands world type hasn't been released, but a bunch of us are using it, so if there is some simple trick to make it more mapable, that'd be awesome. If not, still a great plugin.
     
  9. Offline

    DamienMine

    To codename_B and oliverw92:
    Thank you guys! You're awesome!
     
  10. Offline

    bar7737

  11. Offline

    DamienMine

    Hi,

    I can quasi confirm this. On my server there is a chunk with an entire building full of signs (of course none with the [BMR] tag). However when I look at the world/players.js file their texts are stored in there. I can only get my map to work right now when I use the players.js file of one of the nether regions, however BMR is trying to render the map and includes the signs again soon. In the course of this action the world.js (which holds the world name) gets over- and rewritten.

    Hope this error report helps you. Still using the last recommended build and the Dropbox-Jar given by oliverw92.

    Edit:
    Disabling the Signs in the config doesn't help as the sings are still saved in the player.js file.
     
  12. Offline

    bar7737

    What are others using for opacity and fill-opacity to get a visible worldguard region to show up on the map?
     
  13. Offline

    beowulf

    So ... this is lightweight? I think you can see where my BMR render began. Memory went up dramatically at the same time. Is this typical?

    lightweight-bmr-screenshot.PNG
     
  14. Offline

    codename_B

    Well obviously - it needs to load chunks in order to be able to render them - that's a minecraft issue rather than anything else.
     
  15. Offline

    beowulf

    Gotcha. So when you say lightweight, you are referring to the map presentation and not to any method used to throttle the actual map load over a longer period of time. I could maybe help with that if I could get my Java on. Thanks for the answer.
     
  16. Offline

    codename_B

    When I say lightweight I mean server usage when the map isn't being rendered - once the map tiles are rendered - there is no additional CPU usage on those tiles until they need to be updated!
    I don't see how there's any possible way to "fix" this - I unload the chunks after use but there's still a chunk snapshot needing to be kept in memory for 256 chunks per tile rendered. I don't see any way to get around that.
     
  17. Offline

    beowulf

    Understood. I'm thinking more in terms of throttling the render process itself, as it is a lot higher-impact than a full dynmap render. In fact, the difference was pretty much the equivalent of having 10 to 15 players online.

    So I agree that the map is very lightweight when presenting data with the persistence of the rendered tiles. I'm thinking more in terms of could there be tweaks in the config.yml to allow us to throttle the rendering? For a background job like that, I'd rather have it run at 10% CPU for a day than to run it at even 50% for an hour.

    As personal background, in my day job I manage database development for the world's largest domain name registrar and shared web hosting provider (plus we're a big presence with SSL now, too). Really. 10M customers, 48M domains under management, yada yada. So I always think in terms of what has to be done in near-real-time versus what can trickled in the background, and the render itself is something I'd really like to see go more into the background. During the render last night, players lost connections and could not log on due to CPU utilization.

    Anyway, great plugin, and keep up the good work! I appreciate you taking the time to discuss with me.
     
  18. Offline

    morizuki

    do i need apache here? or just put it in the plugins.yml cause mine.. i can't access the map via website.. but it says it's enable..
     
  19. Offline

    DamienMine

    You need to install BukkitHTTPD for it to work, and if you have a firewall you must open the given port.
     
  20. Offline

    morizuki

    what is the given port?
     
  21. Offline

    DamienMine

    The one you set in the server.properties file. You must enter a line called
    http-daemon-port:[YOUR PORT #]
    I use port 50000 which looks like this:
    http-daemon-port:50000

    In the guide to BukkitHTTPD (should be included in the download) there are two examples:

    -Download BukkitHTTP.jar and install in /plugins
    -Run the server once, then stop it.
    -Change the default index.html in /plugins/BukkitHTTPD/index.html to whatever you wish your small html based site to be.
    -Start the server again, once it's started navigate to localhost:8107 (or whatever port you have configured) on the machine the server is hosted on. This should display your index.html. There is several configurable options which you must add to server.properties.

    http-daemon-port: 8107
    server-name=Localhost Test Server
    server-dns=localhost
    text-color=000000

    Remember you should get a DNS (try dyndns.org) and enter the information in the server.properties, this is the second and prolly better example:

    If you want your server to listen on port 80 (ie the standard web port you will need to set it to something like this)
    http-daemon-port: 80
    server-name=MyAwesomeMinecraftServer
    server-dns=my.ip.com
    text-color=FFFFFF

    If you have set up your Dyndns-account then you can enter the adress, like this:
    server-dns=myfantasticminecraftserver.dyndns.org

    Hope that helps you.
     
    morizuki likes this.
  22. Offline

    Bronski

    Confirming the strangeness with signs. I had to disable pretty much everything in order to get a players.js file that was small enough to work. It just kept loading forever before that with no images shown.
     
  23. Offline

    codename_B

    Yeah - it's being looked into - thanks :)
     
  24. Offline

    morizuki

    how do i disable the signs not the [BMR] signs.. i have too many signs in my world and it's covering my entire town with sign..
     
  25. Offline

    codename_B

    You have to disable all signs in the config.
     
  26. Offline

    morizuki

    BMR config?

    i just disable it although it's only BMR Signs in there..
     
  27. Offline

    codename_B

    That's what I mean - for some reason it's picking up all signs instead of BMR signs only. Disable it in the config.
     
  28. Offline

    morizuki

    I've already disable it.. but still.. it's picking up..
     
  29. Offline

    codename_B

    Wierd - redownload the latest one from the first link in the main topic?
     
  30. Offline

    morizuki

    yeah the temporary one right? that's what i've download..
     
  31. Offline

    codename_B

    oh well, with signs disabled in the config it doesn't show any signs for me. Did you restart the server and do a BMR 0 after turning signs off in the config?
     

Share This Page