ImageOnMap
Have you ever wanted to view an image on a map ingame? ImageOnMap allows you to do it! (Inspired by ImgMap)
Features
ImageOnMap allows you to load a picture from the Internet to a Minecraft map.
- Loads an image from a URL onto a map. PNG, JPEG and GIF are supported.
- These images will be saved on your server and reloaded at restart.
- Big pictures will be cut automatically into several parts! As example, a 1024x1024 picture will be cut in 16 maps.
- Your image will be centered.
- You can put your map in an item frame.
This plugin is a free software lisensed under the GNU General Public License (version 3 or above). The source code is published on GitHub.
The latest version is only compatible with Minecraft 1.15+.
- For Minecraft 1.13 and 1.14, use 4.0-pre1.
- For older versions, please use ImageOnMap 3.1 (warning: unchecked by the BukkitDev staff—if you're unsure, use 3.0 here in BukkitDev, it's the same but without permissions).
Support and bug requests
If you need help with ImageOnMap, the preferred way is our Discord server. We speak English and French. You should read the FAQ first!
If you want to report a bug or suggest features, by far the best option for us is GitHub issues, which you should use whenever possible. If you absolutely can't use GitHub, use the support options above.
We're a team behind ImageOnMap (and others), and private messages from Spigot can only be read by one person. So you should not send help requests, suggestions or bug reports using Spigot or BukkitDev PMs. Any PM received after June 28, 2020 with any of these topics will be ignored.
Quick guide
- Ensure that you have a free slot in your inventory, as ImageOnMap will give you a map.
- Type /tomap URL, where URL is a link to the picture you want to render (see the section below).
- Enjoy your picture! You can place it in an item frame to make a nice poster if you want.
German speakers, you can watch this video (thanks to StarlessMiner)
English speakers? (thanks to Arma)
Another tutorial in English (thanks to ltjim007)
Commands and Permissions
/tomap <url>
Renders an image and gives a map to the player with it.
- This command can only be used by a player.
- The link must be complete, do not forget that the chat limit is 240 characters.
- You can use an URL shortener like tinyURL or bitly.
- If you want a picture in one map, type resize after the link.
- If you want to resize to multiple maps, add the witth and height after resize: e.g. /tomap url resize 2 4
- You can change the scaling method by replacing the resize keyword in the /tomap command by:
- resize-stretched to stretch the image to the surface (the image could be distorted); or
- resize-covered to ensure the image covers the whole surface (the image will never be distorted, but some parts may be lost near the borders).
- Permission: imageonmap.new (or imageonmap.userender—legacy, but will be kept in the plugin).
/maps
Opens a GUI to see, retrieve and manage the user's maps.
- This command can only be used by a player.
- Opens a GUI listing all the maps in a paginated view.
- A book is displayed too to see some usage statistics (maps created, quotas).
- A user can retrieve a map by left-clicking it, or manage it by right-clicking.
- Maps can be renamed (for organization), deleted (but they won't render in-game anymore!), or partially retrieved (for posters maps containing more than one map).
- Permission: imageonmap.list, plus imageonmap.get, imageonmap.rename and imageonmap.delete for actions into the GUI.
/maptool <new|list|get|delete|explore|migrate>
Main command to manage the maps. The less used in everyday usage, too.
- The commands names are pretty obvious.
- /maptool new is an alias of /tomap.
- /maptool explore is an alias of /maps.
- /maptool migrate migrates the old maps when you upgrade from IoM <= 2.7 to IoM 3.0. You HAVE TO execute this command to retrieve all maps when you do such a migration.
- Permissions:
- imageonmap.new for /maptool new;
- imageonmap.list for both /maptool list and /maptool explore;
- imageonmap.get for /maptool get;
- imageonmap.delete for /maptool delete;
- imageonmap.administrative for /maptool migrate.
About the permissions
All permissions are by default granted to everyone, with the exception of imageonmap.administrative. We believe that in most cases, servers administrators want to give the availability to create images on maps to every player.
Negate a permission using a plugin manager to remove it, if you want to restrict this possibility to a set of users.
You can grant imageonmap.* to users, as this permission is a shortcut for all user permissions (excluding imageonmap.administrative).
Configuration
# Plugin language. Empty: system language.
# Available: en_US (default, fallback) and fr_FR.
lang:
# Allows collection of anonymous statistics on plugin environment and usage
# The statistics are publicly visible here: https://bstats.org/plugin/bukkit/ImageOnMap
collect-data: true
# Images rendered on maps consume Minecraft maps ID, and there are only 32 767 of them.
# You can limit the maximum number of maps a player, or the whole server, can use with ImageOnMap.
# 0 means unlimited.
map-global-limit: 0
map-player-limit: 0
Changelog
3.0
The 3.0 release is a complete rewrite of the original ImageOnMap plugin, now based on zLib, which adds many features and fixes many bugs.
This new version is not compatible with the older ones, so your older maps will not be loaded. Run the/maptool migrate command (as op or in the console) in order to get them back in this new version.
You will find amongst the new features:
- New Splatter maps, making it easy to deploy and remove big posters in one click!
- No more item tags when maps are put in item frames!
- Internationalization support (only french and English are supported, for now; contributions are welcome)
- Map Quotas (for players and the whole server)
- A new map Manager (based on an inventory interface), to list, rename, get and delete your maps
- Improvements on the commands system (integrated help and autocompletion)
- Asynchronous maps rendering (your server won't freeze anymore when rendering big maps, and you can queue multiple map renderings !)
- UUID management (which requires to run /maptool migrate)
3.1
- Fixed permissions support by adding a full set of permissions for every action of the plugin.
4.0 pre-release 1
- Added 1.13.2 and 1.14 compatibility
- Dropped compatibility with 1.12 and lower
- Improved some UIs
- Added support for images' resize to a specific size: you can do /tomap https://url/image.png resize 2 2 to get a 2×2 frames image.
- Status messages are sent in the action bar instead of the chat
- Added back statistics (you can opt-out in plugins/bStats/config.yml)
- Added an update checker
4.0 pre-release 2
- 1.15 compatibility (now building against a 1.15-compatible zLib version).
- This version is only compatible with Minecraft 1.15 and later—for older Minecraft versions, please use 4.0-pre1 or older.
- Improved some translations in French (thanks to Gabriel C.).
4.0
- You can now place a map on the ground or on a ceiling.
- Languages with non-english characters now display correctly (fixed UTF-8 encoding bug).
- Splatter maps no longer throw an exception when placed.
- When a player place a splatter map, other players in the same area see it entirely, including the bottom-left corner.
- Added Russian and German translations (thx to Danechek and squeezer).
4.2.0 The permission and cliffhanger update ⋅ Part I
- 1.17 support.
- Permissions to limit the number of map/image used/owned is now available. (permissions imageonmap.mapLimit.XX and imageonmap.imageLimit.XX where XX is an integer and will define the limit allowed for the player).
- Added a whitelist for trusted image hosting websites. Add an images-hostnames-whitelist list in config.yml, and write every URL prefix you want to allow. If you want to allow everything, remove the images-hostnames-whitelist list entirely, or empty it. There is also a permission to ignore the allow list: imageonmap.bypasswhitelist.
Code (YAML):images-hostnames-whitelist:
- i.imgur.com
- cdn.discord.com - Images are now protected against non player based interaction. (Bye bye sneaky skeleton that used to grief art!)
- Now by default when deploying a map the item frame turn invisible and returned to visible hen removing the map from the frame (there is a permission to allow this behavior: imageonmap.placeinvisiblesplattermap).
- Bug fixes & optimizations.
- Dropped migrator (no more error when reloading or when sometimes loading the server).
- Fixed an issue when resizing with resize 0 0.
- Fixed a map loading issue. (map did not render at all if they weren't in a player inventory.
- Added a fix for map loading on paper. (map did not render fully on paper).
4.2.1 The permission and cliffhanger update ⋅ Part II
- 1.18 support.
- Fixed a lag issue caused by the map loading changes of 4.2.0.
- Fixed an issue with map part not working properly.
- Fixed an issue in survival where an incorrect amount of map were consumed.
- Fixed an issue where image map folder was not created and cause issues.
Data collection
We use bStats to collect basic data about the usage of this plugin*. This can be disabled in the plugins/bStats/config.yml file.
@Mooribus
Is your code up to date in GitHub? I could have a look at the new loading method.
@Etsija
If you use the broken version and set "send-entire-map" to value > 0 it will works.. But not for "old" maps.
I dunno why some maps already rendered doesn't load with the new method. :/
Am I right that with the current (corrected) version, there's not yet any means to see the images "superfast"? Because someone has said something about putting the copy of the map to a chest (where?) but to me, that hasn't helped in any way.
@DaWe35
Install a plugin which logs changes like logblock.
@Etsija
Yes... I'll try modifying a bit the new method. The old method consumes a large amount of memories because all maps are loaded on startup, it's not very good to use it.
@Mooribus
@Mooribus: your fix seems to have fixed the image showing problem. Now all the images are shown again in itemframes.
Anyway, are you back to square one now with the "fast image showing" method, since the new loading method didn't seem to work?
We still don't understand, DaWe35. Seems like someone has removed yout itemframes totally from the wall, and this plugin surely is not the cause for it.
@Mooribus
Yesterday: http://minehd.szervere.eu/bukkit/1.png Today: http://minehd.szervere.eu/bukkit/2.png
Can you test this version ?
http://cloud.zcraft.fr/public.php?service=files&t=7d5ba82e7682e89178ef9c3a68b61bd2
It's a quick fix that activates the old loading method (don't use send-entire-map with this build !).
@Mooribus
I think he might be referring to the problem I've already reported - that the maps already put to itemframes ("on the wall") are not anymore seen with the newest plugin version.
@DaWe35
I don't understand, what is the problem ?
Why are removed from the maps on the wall?
@Etsija
Sorry, I'm a bit busy these days :/ . I'll update with a beta soon.
@Mooribus: when can we hope to see the fix to this plugin?
A new plugin of mine is using ImageOnMaps. Not a very hard plugin to code but it should be helpful to a few people:
http://dev.bukkit.org/bukkit-plugins/easyasabc/
@Mooribus
No other plugins in use which use maps. Other than your plugin, the handling of maps is as in vanilla bukkit.
@Etsija
Ok thanks ! :)
Have you another plugin which uses maps?
(I'll fix this issue ASAP)
It seems like the plugin has somehow lost its connection to all the maps (.png files) which have already been downloaded to the server and put to the itemframes with an earlier version of this plugin. These pictures could be repaired by taking them piece-by-piece with "/maptool get" to hand and once again putting them to itemframes, but it would require a LOT of work.
config.yml: http://pastebin.com/YNvDZLML (We haven't touched it at all by ourselves.)
map.yml: http://pastebin.com/NEqVP8Fm
@Etsija
What version of craftbukkit / spigot you use ? This build is working fine on my server, and the version number is correct in plugin.yml (3.1.1). :/
I will do more tests later.
Please try the build there:
http://cloud.zcraft.fr/public.php?service=files&t=7d5ba82e7682e89178ef9c3a68b61bd2 and tell me what works (map on item frame, on hand, /maptool, etc). Also can you paste your map.yml / config.yml?
Did some more testing, and yes, v2.7 is the last version where the images are shown. 3.0.1 and newer are totally broken: no images at all are seen anymore, but as soon as I revert back to 2.7, everything is working again.
Please fix.
With your 3.1 build it gets even worse. Not only do the pictures still not work, but now the server log is totally spammed with these messages:
The file size is back to 39kB though, so it does seem the earlier bukkit.dev version had a problem (its size was all of a sudden 177kB). But when starting, the plugin still announces to be of version 3.1, not 3.1.1. You should pay attention to properly update the version number in plugin.yml, otherwise the users will get confused.