Custom Images icon

Custom Images -----

Load custom images into Minecraft




Updates to Minecraft 1.21.4. There were very few changes except for the picking item functionality when getting a map from an image in creative.

In this release, they added a second packet for picking items from entities that seems to replace the other packet. They didn't remove the other packet, but seemed to have stopped using it when picking items in creative.

Using the new packet, it's much more difficult to identify the exact item. Therefore, every feature is restored except for picking the same item if you already have it in your inventory; instead you'll get duplicates as you continue to pick items from the same section of an image. Some may see this as a feature ;)
----------, Dec 6, 2024

As mentioned earlier, this is a basic update for 1.21.3. The protocol we utilize doesn't seem to have changed, thankfully.

Let me know if you find any bugs or similar, but through my testing I didn't find any issues.

Note that this also should retain support for 1.21.1 and possibly 1.21.2, but, as is stated in the main post troubleshooting section, it's not guaranteed.
----------, Nov 24, 2024

This has no changes for Spigot since 2.5.0 would work with Spigot 1.21.1.

For Paper, this update adds an extra compatibility layer to revert to the previous minor version if one isn't officially supported. This will save the need for an update when there is a no-op change like 1.21.1.

When there is a substantial change, errors may occur in which case an update will be required on both Spigot and Paper.
----------, Aug 20, 2024

This adds support for Spigot 1.21 along with tentative support for Paper with their removal of CraftBukkit relocation.

When using Paper you may run into issues such as not deleting images, slow rendering, tab completion not working etc. If you have an issue with deleting images, use the `/image delete near <distance>` command for an alternative delete methods.

I intend on releasing a full Paper version of this plugin at some point, as it is a much better API to work with, but it will likely be a while.
----------, Jul 26, 2024

This updates adds support for Spigot 1.20.6 and also fixes the issue with this build previously where deleting was not working. Note that this update does not work with Paper since it differentiated with this update.

If there are any bugs, please make a discussion post.
----------, Jun 7, 2024

Adds support for 1.20.4 with no other changes.

Thanks for resi23 on Github for submitting a pull request to make this happen!
----------, Dec 29, 2023

This update adds support for 1.20.2. No other changes come with this update.

There is an issue in older builds of Spigot because the SQLite driver was updated and caused an incompatibility with JDBC. This issue was resolved by md_5 and the plugin will now work as expected, but only with the newest version of Spigot.

Therefore, make sure to rebuild your server jar using BuildTools to get the latest version.
----------, Oct 3, 2023

This is a basic update to 1.20.1 directly from 1.19.x.
Thanks to a r esi23 on Github for contributing to make that happen faster.

In addition, another contribution from addstar adds the ability to configure the render and hide distances for images. This is when the image is shown to or hidden from your client when you move a certain distance away.

To use this, simply add the items below to your config.yml:

Code (YAML):
# Image sections within this range will be visible to players
show-distance
: 64
# Image sections beyond this range will be hidden from players
hide-distance
: 128
----------, Jun 17, 2023

This updates creates the module that is required for 1.19.4 support. Except for the added support this update should function the same as the previous releases.

Note that version 1.19 specifically is still unsupported as noted in this update. Please update to 1.19.2 or greater for this plugin to function.
----------, Mar 20, 2023

This is a basic update to 1.19.3 and includes nothing else.

Since there was a package version change between this and the 1.19.2, 2.2.8 can still work on 1.19.2. However, it will continue to break with 1.19 as specified in the last update.
----------, Dec 13, 2022

Important: This build is most likely only compatible with 1.19.2 and no longer 1.19.
All other versions of the game should be unaffected.

This build comes with a couple fixes for the major issues with the 1.19+ build:
  • Fixes when joining the server getting an invalid player move packet error
  • Fixes constructor not found from 1.19.2 when sending action bar messages

It's been a while since these bugs became an issue and since 1.19 came out so many of you may have found workarounds such as ProtocolLib.
----------, Aug 13, 2022

This update is quite basic to add 1.19 support.

Everything should be the same, but since there are some protocol changes to 1.19, under the hood, there may be some odd bugs here and there.
----------, Jun 11, 2022

A simple update to add support for 1.18.2. Have fun!
----------, Mar 1, 2022

This update brings official support up to 1.18.1.
Thanks to KeyboardKobold on Github for the pull request which was most of the work.
----------, Dec 23, 2021

This update brings a couple notable bug fixes that have been prevalent in 1.17+.

Upward Facing Images 1 Block Lower
When placing an image that is facing upwards (i.e. on the ground), the image would be be placed 1 block lower than intended. This also affected all existing images and moved them down 1 block.

Unfortunately, this was a mistake when visualizing and accidentally pulling the wrong position for each of the image sections. I apologize to everyone who was affected and anyone who modified existing images. This build will automatically fix all images that were affected.

Error when getting an Image as a Map Item
When using the "pick block" functionality in creative to get the map section as an item an error in console would be printed and the item received would be a blank map.

This has been fixed. 1.17 changed the method of creating the image map and we are now forced to do this manually, but it should work the same as before after this update.

Code (Bash):
[ 17: 56: 20 WARN ]: [Images ] Task #259803 for Images v2.2.1 generated an exception
java.lang.NullPointerException: Cannot assign field "h" because "map" is null
at com.andavin.images.v1_17_R1.PacketListener.lambda $handle $0 (PacketListener.java: 104 ) ~ [?:? ]
at com.andavin.images.v1_17_R1.PacketListener$ $Lambda $7 640 /0x0000000000000000.run (Unknown Source ) ~ [?:? ]
at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run (CraftTask.java: 100 ) ~ [patched_1.17.jar:git-Paper- 53 ]
at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftScheduler.mainThreadHeartbeat (CraftScheduler.java: 468 ) ~ [patched_1.17.jar:git-Paper- 53 ]
at net.minecraft.server.MinecraftServer.tickChildren (MinecraftServer.java: 1488 ) ~ [patched_1.17.jar:git-Paper- 53 ]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren (DedicatedServer.java: 477 ) ~ [patched_1.17.jar:git-Paper- 53 ]
at net.minecraft.server.MinecraftServer.tickServer (MinecraftServer.java: 1404 ) ~ [patched_1.17.jar:git-Paper- 53 ]
at net.minecraft.server.MinecraftServer.runServer (MinecraftServer.java: 1180 ) ~ [patched_1.17.jar:git-Paper- 53 ]
at net.minecraft.server.MinecraftServer.lambda $spin $0 (MinecraftServer.java: 320 ) ~ [patched_1.17.jar:git-Paper- 53 ]
at net.minecraft.server.MinecraftServer$ $Lambda $3 703 /0x0000000000000000.run (Unknown Source ) ~ [?:? ]
at java.lang.Thread.run (Thread.java: 853 ) [?:? ]
----------, Jul 22, 2021

This update brings the minorly awaited fix to the error spamming in console and the inability to destroy images or any other issues it may have caused.

If you are still running 1.17 and not 1.17.1, then please do not update to this. You will have the same issue everyone else was having before this update.

Gotta love it when Mojang decides to make a change to something that has been in circulation for 7+ years and then proceeds to revert it back to what it was in the next version.

P.S. I'm sorry that this has been so late. Got married, honeymoon, moved, don't have my testing server/environment fully setup yet etc. I appreciate everyone understanding the delay.
----------, Jul 13, 2021

The last update changed the entire project to be compiled with Java 16. However, this breaks the plugin whenever you use an earlier Java version with an earlier version of Spigot (e.g. Spigot 1.16.5 on Java 8).

This fixes this issue by compiling only the 1.17 part of the plugin with Java 16 and the rest of the code is still compiled with Java 8 as it has been in the past.

Note that if you are already running the last update posted on Java 16 and Spigot 1.17, there is no need to update to this build.
----------, Jun 15, 2021

Spigot 1.17 should now be fully supported. This update, however, required me to compile the plugin with Java 16 rather than the previous Java 8.

I tested this build on 1.17 as well as 1.16.5 so it should work on all other versions since there was no changes to others, but there could possibly be incompatibilities due to the different Java version.

Please, let me know any issues you have :)
----------, Jun 15, 2021

This update adds the ability to place horizontal images in any cardinal direction; that is, north, south, east and west while looking up or down.

down.png up.png

Since version 2.0 horizontal images have been supported, but only while facing north; as you can see above they now work in any direction. Note that this is still exclusive to 1.13+
----------, Nov 21, 2020

A simple update that adds a feature that many people have requested over the last long while.

Blank space in images where there are no pixels will now not be rendered. In fact, the item frame and maps themselves are no longer rendered at all while only the pixels show hovering in air.

Invisible Frames Enabled/Disabled:
invisible.png visible.png

Note that this feature is only supported in 1.16+. Many people believed that it was available before this, however, I have tested all 1.8 to 1.16 versions and only 1.16+ versions display this behavior.

If you do not wish this feature to be active, as it does make the images impossibly thin and invisible from the back, I have added a configuration option to disable it:
Code (YAML):
# Item frames and maps will appear invisible behind
# the image giving the effect that the pixels are
# floating without anything behind them while also
# not rendering blank space on an image.
# NOTE: only supported in 1.16+
invisible-frames
: false
Simply insert the above into your config.yml located within the Images plugin folder and restart your server.
----------, Nov 20, 2020

This update simply adds support for 1.16.4. Everything should work identically to what it has.

Note that support for 1.16.3 remains despite the main plugin post's statements on the highest version available.
----------, Nov 4, 2020

This update simply adds support for 1.16.2. Everything should work completely as it did before.

Note that, as stated in the main plugin post troubleshooting section, only the highest minor version of each major version is supported. Therefore, support for 1.16.1 is removed with this build. If you are still on 1.16.1, then wait to update this plugin until you update to 1.16.2.
----------, Aug 13, 2020

This is a small update to fix a bug in the previous one that doesn't allow the plugin to load on any version before 1.16 since the API version was set incorrectly.

My apologies for this issue.
----------, Jul 6, 2020

Delete Near Command
The delete near command does what you'd expect; deletes images within a specified range around the player. Usage is simple. Stand around images you would like to delete and run the command:
Code (Text):
/image delete near 5
The above command will delete all images within 5 blocks of the player. Adjust the range for more or less precision.

This is an alternative to the right click to delete a specific image since there has been many issues concerning the normal delete method. This may not be applicable to most users, but for some could be quite useful.

Database Transfer Command
The database transfer command allows you to transfer all images from one database to another supported. For example, transferring from SQLite to MySQL.
Code (Text):
/image transfer mysql
The above command will transfer all images from your current database (as long as it is not already MySQL) to a configured MySQL database.

In order to transfer to MySQL you must have the address and login info configured for the database in the config.yml, but leave the database type as your current one.

Once you run the command, as long as everything goes smoothly, the server will be shut down.
After the shutdown you should then change the config.yml database type to the new database you wish to use.

If you need more info on how to configure a database
Please see the Database spoiler on the main plugin page or the config.yml comments

Small Quality of Life
I also fixed the command /images to be /image. This will allow tab complete to work when using /image instead of the alias /images.

As always, if there are any bugs please let me know!
----------, Jul 5, 2020

1.16.1 Support
This is a tentative update to support 1.16.1. It hasn't gone through my entire round of testing on every version of Minecraft, but it does work on 1.16.1.

There may be bugs with this so let me know if you have issues due to the 1.16 incompatibility or bugs it may cause on other versions; although I don't see that happening.

URL Image Pasting Support
This update also comes along with a small feature added: URL pasting.
Basically, just use the same command as always, but instead of the image file name you will paste the direct link to the image.

For example:
Code (Text):
/image create https://somewebsite/image.jpg
this works from my testing, but again let me know if there are issues.
----------, Jun 26, 2020

A quick fix for an existing bug that was just found where a potion with the right ID matching a map that the potion was near can cause the creative pick block function to throw an error and stall out an entire player processing thread.

This is extremely unlikely, but could happen. In addition to the fix, a safeguard has been put in place to prevent this from stalling out the processing thread if there are issues in the future.

EDIT: For some reason Spigot isn't uploading the updated JAR file. To fix this I'm reposting the update and I will check the JAR immediately; go ahead and re-download this if you want the fix or have any issues.
----------, Feb 22, 2020

A quick fix for an existing bug that was just found where a potion with the right ID matching a map that the potion was near can cause the creative pick block function to throw an error and stall out an entire player processing thread.

This is extremely unlikely, but could happen. In addition to the fix, a safeguard has been put in place to prevent this from stalling out the processing thread if there are issues in the future.
----------, Feb 20, 2020

A quick fix for an existing bug that was just found where a potion with the right ID matching a map that the potion was near can cause the creative pick block function to throw an error and stall out an entire player processing thread.

This is extremely unlikely, but could happen. In addition to the fix, a safeguard has been put in place to prevent this from stalling out the processing thread if there are issues in the future.
----------, Feb 19, 2020

Bug Fixes & Changes
  • Fix incompatibility with other plugins due to overriding some core Minecraft code
  • Update to build using Minecraft 1.15.2
  • Update main post to add extra instructions
  • Add link to plugin source page and welcoming contributions
Please always update to the latest minor version of your server's major version before reporting bugs. For example, if you are running 1.13 you should be running 1.13.2 or for 1.8 it should be 1.8.8.

As always, if there are any issues with this update please let me know via a discussion post or direct message and I will get it fixed as soon as possible.
----------, Feb 19, 2020

This update simply brings support for 1.15. As this is a relatively minor game release, changes wise, I don't expect many issues. It should be a drag and drop with no issues in transferring images across versions.

However, there is one issue that 1.15 has presented. Unexpected behavior in the client has caused Spigot to give an unusual event causing the attempt to delete images to be cancelled before it can be processed.
I have reported this bug to Spigot and, from the response that I received, it looks like it can't be fixed at the moment by the API.

Therefore, left clicking to cancel a deletion has been removed for the foreseeable future for 1.15 and the ability to rerun the deletion command has been added in order to cancel deletions.

Despite the simplicity, if there are issues after updating to this build please let me know via a discussion post or PM and I will see about getting them fixed as soon as I can.
----------, Dec 14, 2019

Bug Fixes
This update should address the issue that keeps cropping up where if you die the images do not refresh again on respawn. I had this done a long ago, but unfortunately haven't had a chance to get it finalized and uploaded.
In addition, this should address random errors that happen for certain people such as loading chunks asynchronously etc.

ProtocolLib Support
This update also adds support for ProtocolLib. By no means is it required, however, it can increase stability of the packet handling primarily used when deleting images.

Therefore, if ProtocolLib is installed on the server already along with CustomImages it will now be detected and used over the internal packet handling in order to increase stability.

Also, for plugins that are incompatible with the way that CustomImages does packet handling (there have been several such as when getting an error about PlayerConnectionProxy) using ProtocolLib would be a way to remove the incompatibility and be able to use both CustomImages and the offending plugin.
----------, Dec 8, 2019

In the legacy version of the plugin an unintended feature existed where, in creative, a player could execute the "pick block" functionality and retrieve the map item with the an image still present on it for that specific block which they clicked. With the update this feature was inherently unsupported due to the nature of the new image forms.
  1. This update brings back the feature as a, not too significant, but cool little addon.
  2. In addition, a bug has been fixed where sound updates when creating images would cause an error.
  3. Finally, the PlotSquared issue with worlds not loading till after images were initialized has been moved from a side build, posted in the discussion, thread to the main download.
----------, Oct 29, 2019

Simply some small improvements:
  • The ci command alias has been removed as it collides with the clearinventory command from Essentials
  • Refresh images on a more consistent basis to ensure that they are loaded promptly
----------, Oct 23, 2019

This is a full rewrite of the entire way that this plugin works. The main post should include updated instructions on how to use the plugin. The basic functionality will remain.

Basic Example.png


What's Changed:
  • All Minecraft versions 1.8+ are now natively supported
  • The way that images are displayed is completely done on the client and the server ignores all interaction with them. This means that if you break a block or punch it in creative mode etc. nothing will happen (i.e. images cannot be modified by accident).
  • You can now scale images in-game by using the create command with a percentage to scale. See the main post spoiler for more information: Scaling Example.png
  • Horizontally placed images are now supported on 1.13+ if you are facing north: Horizontal Example.png
  • Permissions have changed to images.command.*
  • The options command is now the list command
  • Locking images to the creator is now possible
  • Full SQLite and MySQL database support with a third raw byte file for niche circumstances
  • Images are no longer bound to the image file. This means that if you change out the image file, in-game images will not update to the new one. The data for the image itself is stored in the database. There may be a command in the future to update these kinds of images if it is desired.
Import Legacy Images
To import images from a previous version of the plugin the command /image import is provided:
  1. Follow the installation instructions on the main post. Make sure that the database is configured as desired before proceeding.
  2. Optionally take a backup of your world folder. The import will delete all physical item frames that are associated with Custom Images in the worlds and therefore cannot be undone unless the world is restored.
  3. Start your server and execute the /image import command and then type it again to confirm that you wish to import.
  4. Do not shut down your server at this time. This could take several minutes without updates and will lag the server; be patient and wait for it to finish.
  5. When the import is complete a message in chat will let you know how many images were imported.
  6. After importing you may go into the Images folder and either save the data.yml for later or delete it. This is a legacy file that used to be used to store the data for images.
If you wish to donate to support development, you may use the link below to do so. Anything is appreciated :)

[​IMG]
----------, Sep 26, 2019

Add a soft dependency on Multiverse-Core and Plotsquared. This will make Custom Images load after those plugins and therefore prevent errors from the world that the image belongs to not yet being loaded.

This was mentioned in one of the latest discussion posts and this update is to address those issues.
----------, May 30, 2019

Added support for 1.14 and re-added support for 1.13. In testing this was stable, however, if you do find issues feel free to let me know. Hopefully at some point I will have to time to do a backend rewrite and make this overall better.
----------, May 21, 2019

Added support for 1.14 and re-added support for 1.13. In testing this was stable, however, if you do find issues feel free to let me know.
----------, May 21, 2019

A small patch that allows the current functionality in 1.13. This may not fix all of the issues as 1.13 is quite large, but it addresses the main issue with images not rendering. This is still not guaranteed to be stable as 1.13 is still in development.
----------, Aug 2, 2018

Fixed the issue when you place a block next to the photo or directly in front of it that you can't break it. Also, if you accidentally place an image too close to another one it will no longer destroy part of the other image.

In addition, added the feature to make floating images:

2018-02-12_23.14.27.png

Note that if you have a lot of these it has the potential of lagging the server slightly. Just a fair warning, however, it probably will have no noticeable effect.
----------, Feb 13, 2018

Added support for spaces in file names. Caution, if using tab it may mess you up since the spaces in the names will add more arguments than should be there.
----------, Feb 10, 2018

Added support for Spigot 1.8 and added support for both JPG and JPEG file extensions. Also, fixed the color in the action bar text from 1.9-1.11.
----------, Feb 10, 2018

Resource Information
Author:
----------
Total Downloads: 358,926
First Release: Feb 9, 2018
Last Update: Dec 6, 2024
Category: ---------------
All-Time Rating:
21 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings