Coder Social home page Coder Social logo

loohp / imageframe Goto Github PK

View Code? Open in Web Editor NEW
41.0 3.0 12.0 415 KB

Put images on maps and walls!

Home Page: https://www.spigotmc.org/resources/106031/

License: GNU General Public License v3.0

Java 100.00%
java minecraft papermc spigot-plugin spigotmc

imageframe's Introduction

Build Status

ImageFrame

https://www.spigotmc.org/resources/106031/

Put images on maps and walls!

More information (screenshots, commands, permissions) about the plugin can be found on the Spigot page linked above.

Built against Spigot

Built against Spigot's API (required mc versions are listed on the spigot page above). Plugins built against Spigot usually also work with Paper.

Development Builds

Maven

<repository>
  <id>loohp-repo</id>
  <url>https://repo.loohpjames.com/repository</url>
</repository>
<dependency>
  <groupId>com.loohp</groupId>
  <artifactId>ImageFrame</artifactId>
  <version>VERSION</version>
  <scope>provided</scope>
</dependency>

Replace VERSION with the version number.

Partnerships

Server Hosting

Use the link or click the banner below to get a 25% discount off your first month when buying any of their gaming servers!
It also supports my development, take it as an alternative way to donate while getting your very own Minecraft server as well!

P.S. Using the link or clicking the banner rather than the code supports me more! (Costs you no extra!)

https://www.bisecthosting.com/loohp

https://www.bisecthosting.com/loohp

imageframe's People

Contributors

hsgamer avatar loohp avatar technicallycoded avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

imageframe's Issues

Compatibility with Minecraft 1.20.2

I just tried to do an update on a server to 1.20.2 and the console was spammed with messages from ImageFrame.
Changing it back to 1.20.1 stopped it, will there be an update to support 1.20.2 soon?

[15:58:56] [Server thread/WARN]: [ImageFrame] Task #1537 for ImageFrame v1.7.5.0 generated an exception
java.lang.NoClassDefFoundError: com/comphenix/protocol/ProtocolLibrary
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.lambda$tick$1(AnimatedFakeMapManager.java:96) ~[?:?]
at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftFuture.run(CraftFuture.java:88) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:415) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1243) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:387) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1179) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:996) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:298) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ClassNotFoundException: com.comphenix.protocol.ProtocolLibrary
... 9 more
[15:58:56] [Server thread/WARN]: [ImageFrame] Task #1538 for ImageFrame v1.7.5.0 generated an exception
java.lang.NoClassDefFoundError: com/comphenix/protocol/ProtocolLibrary
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.lambda$tick$1(AnimatedFakeMapManager.java:96) ~[?:?]
at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftFuture.run(CraftFuture.java:88) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:415) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1243) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:387) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1179) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:996) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:298) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ClassNotFoundException: com.comphenix.protocol.ProtocolLibrary
... 9 more
[15:58:56] [Server thread/WARN]: [ImageFrame] Task #1539 for ImageFrame v1.7.5.0 generated an exception
java.lang.NoClassDefFoundError: com/comphenix/protocol/ProtocolLibrary
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.lambda$tick$1(AnimatedFakeMapManager.java:96) ~[?:?]
at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftFuture.run(CraftFuture.java:88) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:415) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1243) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:387) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1179) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:996) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:298) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ClassNotFoundException: com.comphenix.protocol.ProtocolLibrary
... 9 more
[15:58:56] [Server thread/WARN]: [ImageFrame] Task #1540 for ImageFrame v1.7.5.0 generated an exception
java.lang.NoClassDefFoundError: com/comphenix/protocol/ProtocolLibrary
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.lambda$tick$1(AnimatedFakeMapManager.java:96) ~[?:?]
at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftFuture.run(CraftFuture.java:88) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:415) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1243) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:387) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1179) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:996) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:298) ~[spigot-1.20.2-R0.1-SNAPSHOT.jar:3881-Spigot-17ca32d-f71a799]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ClassNotFoundException: com.comphenix.protocol.ProtocolLibrary
... 9 more

Connection Timing Out

I just found this plugin, which seems to be the only one like this with 1.20 support. I uploaded an image to my web server, loaded it successfully in a browser, selected some item frames, then ran /if create test <url> selection. It took a few minutes to show any sign of activity, then spit out the following in the console:

[15:06:36 WARN]: java.util.concurrent.ExecutionException: java.net.ConnectException: Connection timed out
[15:06:36 WARN]:        at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
[15:06:36 WARN]:        at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
[15:06:36 WARN]:        at ImageFrame-1.7.7.0.jar//com.loohp.imageframe.Commands.lambda$onCommand$5(Commands.java:207)
[15:06:36 WARN]:        at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:101)
[15:06:36 WARN]:        at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57)
[15:06:36 WARN]:        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22)
[15:06:36 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[15:06:36 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[15:06:36 WARN]:        at java.base/java.lang.Thread.run(Thread.java:840)
[15:06:37 WARN]: Caused by: java.net.ConnectException: Connection timed out
[15:06:37 WARN]:        at java.base/sun.nio.ch.Net.connect0(Native Method)
[15:06:37 WARN]:        at java.base/sun.nio.ch.Net.connect(Net.java:579)
[15:06:37 WARN]:        at java.base/sun.nio.ch.Net.connect(Net.java:568)
[15:06:37 WARN]:        at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:593)
[15:06:37 WARN]:        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
[15:06:37 WARN]:        at java.base/java.net.Socket.connect(Socket.java:633)
[15:06:37 WARN]:        at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304)
[15:06:37 WARN]:        at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:174)
[15:06:37 WARN]:        at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:183)
[15:06:37 WARN]:        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:533)
[15:06:37 WARN]:        at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:638)
[15:06:37 WARN]:        at java.base/sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:266)
[15:06:37 WARN]:        at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:380)
[15:06:37 WARN]:        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:193)
[15:06:37 WARN]:        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1242)
[15:06:37 WARN]:        at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1128)
[15:06:37 WARN]:        at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:179)
[15:06:37 WARN]:        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665)
[15:06:37 WARN]:        at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
[15:06:37 WARN]:        at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:224)
[15:06:37 WARN]:        at ImageFrame-1.7.7.0.jar//com.loohp.imageframe.utils.HTTPRequestUtils.getInputStream(HTTPRequestUtils.java:69)
[15:06:37 WARN]:        at ImageFrame-1.7.7.0.jar//com.loohp.imageframe.utils.HTTPRequestUtils.download(HTTPRequestUtils.java:73)
[15:06:37 WARN]:        at ImageFrame-1.7.7.0.jar//com.loohp.imageframe.objectholders.URLStaticImageMap.update(URLStaticImageMap.java:208)
[15:06:37 WARN]:        at ImageFrame-1.7.7.0.jar//com.loohp.imageframe.objectholders.URLStaticImageMap.lambda$create$2(URLStaticImageMap.java:92)
[15:06:37 WARN]:        at ImageFrame-1.7.7.0.jar//com.loohp.imageframe.utils.FutureUtils.lambda$callAsyncMethod$5(FutureUtils.java:138)
[15:06:37 WARN]:        ... 6 more

[Suggestion] Some suggestions

I'm wondering if it's possible to add the following features:

Getting maps owned by different players:
This would make it so I could create a map and friends of mine (with correct permissions) could get copies of maps I have made (would likely work like the current get command but I wouldn't have to run it)
Found out you can do the above by doing the following: Name:Map-Name

GUI viewing of created maps and their info:
On our server we have a lot of maps created and wondering if it's possible to have a way to view maps we have created through a GUI (which would also support getting and deleting them)

ERROR

[13:12:40 INFO]: 4Y_abc issued server command: /imageframe create ye https://i0.hdslb.com/bfs/article/e40f52e1123b16849c88895f0faca9c6ac840971.jpg@1256w_2086h_!web-article-pic.webp 1 1
[13:12:40 WARN]: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: zip file closed
[13:12:40 WARN]: at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
[13:12:40 WARN]: at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
[13:12:40 WARN]: at ImageFrame-1.7.5.0.jar//com.loohp.imageframe.Commands.lambda$onCommand$5(Commands.java:204)
[13:12:40 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:101)
[13:12:40 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57)
[13:12:40 WARN]: at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22)
[13:12:40 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[13:12:40 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[13:12:40 WARN]: at java.base/java.lang.Thread.run(Thread.java:840)
[13:12:40 WARN]: Caused by: java.lang.IllegalStateException: zip file closed
[13:12:40 WARN]: at java.base/java.util.zip.ZipFile.ensureOpen(ZipFile.java:840)
[13:12:40 WARN]: at java.base/java.util.zip.ZipFile.getEntry(ZipFile.java:339)
[13:12:40 WARN]: at java.base/java.util.jar.JarFile.getEntry(JarFile.java:517)
[13:12:40 WARN]: at java.base/java.util.jar.JarFile.getJarEntry(JarFile.java:472)
[13:12:40 WARN]: at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:195)
[13:12:40 WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
[13:12:40 WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:155)
[13:12:40 WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:150)
[13:12:40 WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
[13:12:40 WARN]: at ImageFrame-1.7.5.0.jar//com.twelvemonkeys.imageio.plugins.webp.WebPImageReader.readHeader(WebPImageReader.java:307)
[13:12:40 WARN]: at ImageFrame-1.7.5.0.jar//com.twelvemonkeys.imageio.plugins.webp.WebPImageReader.getNumImages(WebPImageReader.java:345)
[13:12:40 WARN]: at ImageFrame-1.7.5.0.jar//com.twelvemonkeys.imageio.ImageReaderBase.checkBounds(ImageReaderBase.java:190)
[13:12:40 WARN]: at ImageFrame-1.7.5.0.jar//com.twelvemonkeys.imageio.plugins.webp.WebPImageReader.readHeader(WebPImageReader.java:105)
[13:12:40 WARN]: at ImageFrame-1.7.5.0.jar//com.twelvemonkeys.imageio.plugins.webp.WebPImageReader.getWidth(WebPImageReader.java:368)
[13:12:40 WARN]: at ImageFrame-1.7.5.0.jar//com.twelvemonkeys.imageio.plugins.webp.WebPImageReader.read(WebPImageReader.java:414)
[13:12:40 WARN]: at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1470)
[13:12:40 WARN]: at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1365)
[13:12:40 WARN]: at ImageFrame-1.7.5.0.jar//com.loohp.imageframe.objectholders.URLStaticImageMap.update(URLStaticImageMap.java:207)
[13:12:40 WARN]: at ImageFrame-1.7.5.0.jar//com.loohp.imageframe.objectholders.URLStaticImageMap.lambda$create$2(URLStaticImageMap.java:92)
[13:12:40 WARN]: at ImageFrame-1.7.5.0.jar//com.loohp.imageframe.utils.FutureUtils.lambda$callAsyncMethod$5(FutureUtils.java:138)

[Feature request] Start creating maps from a specific ID

Hi, after trying your plugin I noticed something that would be really nice to address.

Is it possible to add in the config file something that let you state from what map ID start creating the maps of the plugin?
For example, if you state that you want to start from ID #100000, the plugin will ignore all previous IDs and start creating files in the world folder like map_100000.dat, map_100001.dat, and so on.

This should allow storing those maps on the world folder in a more organized way, instead of having survival / treasure maps combined with custom maps like: "map_1.dat" is a treasure map, "map_2.dat" is a custom map created with the plugin. As is not possible to have the custom maps on a different folder completely separated from the normal maps, this could be the closest solution to this small issue.

cannot be loaded?

every single time i try to make an imagemap i just get this message
image

Could not load

minecraft version:1.17.2 spigot

Could not load 'plugins\ImageFrame-1.3.1.0.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Unsupported API version 1.19
        at org.bukkit.craftbukkit.v1_17_R1.util.CraftMagicNumbers.checkSupported(CraftMagicNumbers.java:304) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:141) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:394) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:301) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at org.bukkit.craftbukkit.v1_17_R1.CraftServer.loadPlugins(CraftServer.java:409) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at net.minecraft.server.dedicated.DedicatedServer.init(DedicatedServer.java:233) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1010) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:305) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at java.lang.Thread.run(Thread.java:833) [?:?]

Multiword incompatibility issue

Hi! I love this plugin, it's simple and very useful, but I found a big issue.

Imagine a scenario: There's a multiworld server(thet uses MultiverseCore), that has a lobby, a survival world and few minigames. There's a GIF, that displays something, located in the lobby. When a player joins, he looks around, sees the GIF, and goes to the survival world or to a minigame. Then, he gets bored, goes to the lobby, and sees - the GIF now doesn't display at all! The GIF starts displaying again only when he rejoins the server. You get the point - if a player enters a world with a GIF, goes somewhere else, and then returns to the world with a GIF - it stops working until the player rejoins. I hope this will be fixed, because it's a bit annoying.

Thank you in advance!

Bedrock users can only generate the first frame of a gif

I have a private Minecraft server that I set up for a while to play some "modded" survival using plugins and datapack with some friends, one of those plugins we have installed is GeyserMC, which allows Bedrock users to play on the server.

Recently, we have switched from ImageToMap to ImageFrame, and it has been having positive reactions! With anyone being able to create and view their ImageMaps properly (animated or not), but for some reason, players who are playing on Bedrock when trying to make an animated ImageMap can only generate the first frame and nothing else. It doesn't throw errors or something from any of the plugins on the console, so I'm showcasing by typing the same command on Java and Bedrock (via Windows 10).

Java Bedrock
baguidomine-java baguidomine-bedrock

If you need anything, please let me know!

Delayed animated gifs are incredibly inefficient storage-wise

I wanted to use an animated .gif for displaying information, as the information wouldn't fit on a single reasonably-sized image frame, and I didn't have enough space in the area I wanted to place it. The .gif has 6 individual pictures with 15 seconds of wait time between each image change. It is rendered on image frames 5 wide and 4 tall. I would expect this to produce about 120 picture files, if every individual picture was split into 20 parts. Instead, it is stored as 46020 image files (88.4MB instead of the gif's original 172KB). It stores the entire 5x4 picture 2301 times. 45900 images are duplicates of other images.

I guess the problem is that one "snapshot" of the animation is taken for every frame ImageFrame is to render, not accounting for the existence of .gif delay. There must be a better way, by storing the .gif timing data, and only each unique image.

Animated .gif for debugging purposes:
FactionInfo

[Feature Request] Allow Console to execute Refresh Command

I encountered a roadblock to the development of a feature where it would require regular updates of the maps. The command works perfectly when I run in the game but I cannot always manually update it. I understand that console should not be able to execute creation commands but I think it is reasonable to have the console allowed to run the refresh command which would allow cool implementations of dynamic displays. Hope you consider this suggestion. Thanks!

Add copyright/trademark for maps with paid use

Can you please add a command to copyright/ trademark maps for players that have custom map art that does not want to be duplicated!

Even better if the command can require a cost to do it for survival options for players copyright their own map art.

Folia 1.20.1 server Imageframer 1.7.6

[04:33:29 ERROR]: Thread Folia Async Scheduler Thread #190 failed main thread check: Chunk getEntities call
java.lang.Throwable: null
at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:15) ~[kaiiju-1.20.1.jar:git-Kaiiju-"c2b7aec"]
at net.minecraft.server.level.ServerLevel.getEntities(ServerLevel.java:2673) ~[?:?]
at net.minecraft.server.level.ServerLevel.getEntityOrPart(ServerLevel.java:2112) ~[?:?]
at com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:23) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getNewEntityTracker(EntityUtilities.java:216) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackerEntry(EntityUtilities.java:267) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getTrackedPlayers(EntityUtilities.java:181) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackers(EntityUtilities.java:164) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.getEntityTrackers(PacketFilterManager.java:414) ~[ProtocolLib.jar:?]
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:93) ~[ImageFrame-1.7.6.0.jar:?]
at com.loohp.imageframe.objectholders.Scheduler.lambda$runTaskTimerAsynchronously$12(Scheduler.java:168) ~[ImageFrame-1.7.6.0.jar:?]
at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217) ~[kaiiju-1.20.1.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]
[04:33:29 WARN]: [ImageFrame] Async task for ImageFrame v1.7.6.0 generated an exception
java.lang.IllegalStateException: Unable to invoke method public net.minecraft.world.entity.Entity net.minecraft.server.level.WorldServer.b(int)
at com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:25) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getNewEntityTracker(EntityUtilities.java:216) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackerEntry(EntityUtilities.java:267) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getTrackedPlayers(EntityUtilities.java:181) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackers(EntityUtilities.java:164) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.getEntityTrackers(PacketFilterManager.java:414) ~[ProtocolLib.jar:?]
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:93) ~[ImageFrame-1.7.6.0.jar:?]
at com.loohp.imageframe.objectholders.Scheduler.lambda$runTaskTimerAsynchronously$12(Scheduler.java:168) ~[ImageFrame-1.7.6.0.jar:?]
at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217) ~[kaiiju-1.20.1.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.IllegalStateException: Asynchronous Chunk getEntities call!
at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:16) ~[kaiiju-1.20.1.jar:git-Kaiiju-"c2b7aec"]
at net.minecraft.server.level.ServerLevel.getEntities(ServerLevel.java:2673) ~[?:?]
at net.minecraft.server.level.ServerLevel.getEntityOrPart(ServerLevel.java:2112) ~[?:?]
at com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:23) ~[ProtocolLib.jar:?]
... 11 more
[04:33:29 ERROR]: Thread Folia Async Scheduler Thread #189 failed main thread check: Chunk getEntities call
java.lang.Throwable: null
at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:15) ~[kaiiju-1.20.1.jar:git-Kaiiju-"c2b7aec"]
at net.minecraft.server.level.ServerLevel.getEntities(ServerLevel.java:2673) ~[?:?]
at net.minecraft.server.level.ServerLevel.getEntityOrPart(ServerLevel.java:2112) ~[?:?]
at com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:23) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getNewEntityTracker(EntityUtilities.java:216) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackerEntry(EntityUtilities.java:267) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getTrackedPlayers(EntityUtilities.java:181) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackers(EntityUtilities.java:164) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.getEntityTrackers(PacketFilterManager.java:414) ~[ProtocolLib.jar:?]
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:93) ~[ImageFrame-1.7.6.0.jar:?]
at com.loohp.imageframe.objectholders.Scheduler.lambda$runTaskTimerAsynchronously$12(Scheduler.java:168) ~[ImageFrame-1.7.6.0.jar:?]
at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217) ~[kaiiju-1.20.1.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]
[04:33:29 WARN]: [ImageFrame] Async task for ImageFrame v1.7.6.0 generated an exception
java.lang.IllegalStateException: Unable to invoke method public net.minecraft.world.entity.Entity net.minecraft.server.level.WorldServer.b(int)
at com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:25) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getNewEntityTracker(EntityUtilities.java:216) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackerEntry(EntityUtilities.java:267) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getTrackedPlayers(EntityUtilities.java:181) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackers(EntityUtilities.java:164) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.getEntityTrackers(PacketFilterManager.java:414) ~[ProtocolLib.jar:?]
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:93) ~[ImageFrame-1.7.6.0.jar:?]
at com.loohp.imageframe.objectholders.Scheduler.lambda$runTaskTimerAsynchronously$12(Scheduler.java:168) ~[ImageFrame-1.7.6.0.jar:?]
at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217) ~[kaiiju-1.20.1.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.IllegalStateException: Asynchronous Chunk getEntities call!
at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:16) ~[kaiiju-1.20.1.jar:git-Kaiiju-"c2b7aec"]
at net.minecraft.server.level.ServerLevel.getEntities(ServerLevel.java:2673) ~[?:?]
at net.minecraft.server.level.ServerLevel.getEntityOrPart(ServerLevel.java:2112) ~[?:?]
at com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:23) ~[ProtocolLib.jar:?]
... 11 more

error folia 1.20.2

[15:37:22 WARN]: [ImageFrame] Async task for ImageFrame v1.7.6.0 generated an exception
java.lang.IllegalStateException: Unable to invoke method public net.minecraft.world.entity.Entity net.minecraft.server.level.WorldServer.b(int)
at com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:25) ~[ProtocolLib .jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getNewEntityTracker(EntityUtilities.java:216) ~[ProtocolLib .jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackerEntry(EntityUtilities.java:267) ~[ProtocolLib .jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getTrackedPlayers(EntityUtilities.java:181) ~[ProtocolLib .jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackers(EntityUtilities.java:164) ~[ProtocolLib .jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.getEntityTrackers(PacketFilterManager.java:414) ~[ProtocolLib .jar:?]
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:93) ~[ใ€ๅ›พ็‰‡ใ€‘ImageFrame-1.7.6.0.jar:?]
at com.loohp.imageframe.objectholders.Scheduler.lambda$runTaskTimerAsynchronously$12(Scheduler.java:168) ~[ใ€ๅ›พ ็‰‡ใ€‘ImageFrame-1.7.6.0.jar:?]
at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217) ~[folia-1.20.2.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:840) ~[?:?]
Caused by: java.lang.IllegalStateException: Asynchronous Chunk getEntities call!
at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:15) ~[folia-1.20.2.jar:git-Folia-"1e5e215"]
at net.minecraft.server.level.ServerLevel.getEntities(ServerLevel.java:2813) ~[?:?]
at net.minecraft.server.level.ServerLevel.getEntityOrPart(ServerLevel.java:2245) ~[?:?]
at com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:23) ~[ProtocolLib .jar:?]
... 11 more
[15:37:22 ERROR]: Thread Folia Async Scheduler Thread #13 failed main thread check: Chunk getEntities call
java.lang.Throwable: null
at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:14) ~[folia-1.20.2.jar:git-Folia-"1e5e215"]
at net.minecraft.server.level.ServerLevel.getEntities(ServerLevel.java:2813) ~[?:?]
at net.minecraft.server.level.ServerLevel.getEntityOrPart(ServerLevel.java:2245) ~[?:?]
at com.comphenix.protocol.reflect.accessors.DefaultMethodAccessor.invoke(DefaultMethodAccessor.java:23) ~[ProtocolLib .jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getNewEntityTracker(EntityUtilities.java:216) ~[ProtocolLib .jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackerEntry(EntityUtilities.java:267) ~[ProtocolLib .jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getTrackedPlayers(EntityUtilities.java:181) ~[ProtocolLib .jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackers(EntityUtilities.java:164) ~[ProtocolLib .jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.getEntityTrackers(PacketFilterManager.java:414) ~[ProtocolLib .jar:?]
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:93) ~[ใ€ๅ›พ็‰‡ใ€‘ImageFrame-1.7.6.0.jar:?]
at com.loohp.imageframe.objectholders.Scheduler.lambda$runTaskTimerAsynchronously$12(Scheduler.java:168) ~[ใ€ๅ›พ ็‰‡ใ€‘ImageFrame-1.7.6.0.jar:?]
at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217) ~[folia-1.20.2.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:840) ~[?:?]

Treasure maps isn't generating properly

Minecraft version: 1.20.1
Paper version: git-Paper-98
Plugin version: 1.7.4.0

Problem:
Marine chests, which sometimes include treasure maps, will generate an empty map item renamed to treasure map instead.
This empty map doesn't show location of the treasure and upon using creates new normal map

This bug appeared the same day this plugin was installed on a server

This error hundreds of times a second in my console

1WUydxXcUl

I had to remove the plugin because this error was happening hundreds of times and spamming the console. Not sure if it's a bug or what's going on

Edit: Running version 1.7.7.0 on 1.20.4

Edit 2: seems like this is the issue according to one of the players:
7DSfYMmTPI

ClassNotFoundE

Still unable to load

1.17.1

Could not load 'plugins\ImageFrame-1.3.2.0.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: it/unimi/dsi/fastutil/objects/Object2IntMap
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:149) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:394) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:301) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at org.bukkit.craftbukkit.v1_17_R1.CraftServer.loadPlugins(CraftServer.java:409) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at net.minecraft.server.dedicated.DedicatedServer.init(DedicatedServer.java:233) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1010) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:305) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.NoClassDefFoundError: it/unimi/dsi/fastutil/objects/Object2IntMap
        at java.lang.Class.forName0(Native Method) ~[?:?]
        at java.lang.Class.forName(Class.java:467) ~[?:?]
        at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:67) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:145) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        ... 7 more
Caused by: java.lang.ClassNotFoundException: it.unimi.dsi.fastutil.objects.Object2IntMap
        at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:147) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:99) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
        at java.lang.Class.forName0(Native Method) ~[?:?]
        at java.lang.Class.forName(Class.java:467) ~[?:?]
        at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:67) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:145) ~[spigot-1.17.1.jar:3284a-Spigot-3892929-0ab8487]
        ... 7 more

Plugin ImageFrame v1.7.6.0 has failed to register events

[16:12:10 ERROR]: [ImageFrame] Plugin ImageFrame v1.7.6.0 has failed to register events for class com.loohp.imageframe.listeners.Events$ModernEvents because org/bukkit/event/world/EntitiesLoadEvent does not exist.
[16:12:10 ERROR]: [ImageFrame] Plugin ImageFrame v1.7.6.0 has failed to register events for class com.loohp.imageframe.objectholders.AnimatedFakeMapManager$ModernEvents because org/bukkit/event/world/EntitiesLoadEvent does not exist.
[16:12:10 WARN]: java.lang.NoSuchMethodException: net.minecraft.server.v1_16_R3.WorldServer.a(java.lang.String,net.minecraft.server.v1_16_R3.WorldMap)
[16:12:10 WARN]: at java.base/java.lang.Class.getMethod(Class.java:2227)
[16:12:10 WARN]: at com.loohp.imageframe.utils.MapUtils.(MapUtils.java:145)
[16:12:10 WARN]: at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.handleEntity(AnimatedFakeMapManager.java:230)
[16:12:10 WARN]: at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.(AnimatedFakeMapManager.java:75)
[16:12:10 WARN]: at com.loohp.imageframe.ImageFrame.onEnable(ImageFrame.java:279)
[16:12:10 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263)
[16:12:10 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370)
[16:12:10 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500)
[16:12:10 WARN]: at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServer.java:518)
[16:12:10 WARN]: at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServer.java:432)
[16:12:10 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.loadWorld(MinecraftServer.java:599)
[16:12:10 WARN]: at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:298)
[16:12:10 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1074)
[16:12:10 WARN]: at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291)
[16:12:10 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)

Tab-completing just a : character causes an exception

When producing tab-completions for /if get :, /if delete :, /if setaccess : or /if clone :, an exception is produced. The exception might be produced for other commands' tab-completion as well.

[02:04:54 ERROR]: Exception when EpicKnarvik97 attempted to tab complete if get :
org.bukkit.command.CommandException: Unhandled exception during tab completion for command '/if get :' in plugin ImageFrame v1.7.7.0
        at org.bukkit.command.PluginCommand.tabComplete(PluginCommand.java:150) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.command.Command.tabComplete(Command.java:93) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.command.SimpleCommandMap.tabComplete(SimpleCommandMap.java:240) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_20_R2.CraftServer.tabCompleteCommand(CraftServer.java:2485) ~[paper-1.20.2.jar:git-Paper-318]
        at org.bukkit.craftbukkit.v1_20_R2.CraftServer.tabComplete(CraftServer.java:2457) ~[paper-1.20.2.jar:git-Paper-318]
        at org.bukkit.craftbukkit.v1_20_R2.command.BukkitCommandWrapper.getSuggestions(BukkitCommandWrapper.java:74) ~[paper-1.20.2.jar:git-Paper-318]
        at com.mojang.brigadier.tree.ArgumentCommandNode.listSuggestions(ArgumentCommandNode.java:71) ~[brigadier-1.1.8.jar:git-Paper-318]
        at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:602) ~[paper-1.20.2.jar:?]
        at com.mojang.brigadier.CommandDispatcher.getCompletionSuggestions(CommandDispatcher.java:582) ~[paper-1.20.2.jar:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleCustomCommandSuggestions$5(ServerGamePacketListenerImpl.java:808) ~[?:?]
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.20.2.jar:git-Paper-318]
        at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
        at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1324) ~[paper-1.20.2.jar:git-Paper-318]
        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:193) ~[paper-1.20.2.jar:git-Paper-318]
        at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1301) ~[paper-1.20.2.jar:git-Paper-318]
        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1294) ~[paper-1.20.2.jar:git-Paper-318]
        at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
        at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1272) ~[paper-1.20.2.jar:git-Paper-318]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1160) ~[paper-1.20.2.jar:git-Paper-318]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.20.2.jar:git-Paper-318]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]
Caused by: java.lang.IllegalArgumentException: name cannot be empty
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143) ~[guava-32.1.2-jre.jar:?]
        at org.bukkit.craftbukkit.v1_20_R2.CraftServer.getOfflinePlayer(CraftServer.java:2028) ~[paper-1.20.2.jar:git-Paper-318]
        at org.bukkit.Bukkit.getOfflinePlayer(Bukkit.java:1453) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
        at com.loohp.imageframe.utils.ImageMapUtils.extractImageMapPlayerPrefixedName(ImageMapUtils.java:45) ~[ImageFrame-1.7.7.0.jar:?]
        at com.loohp.imageframe.utils.ImageMapUtils.getImageMapNameSuggestions(ImageMapUtils.java:76) ~[ImageFrame-1.7.7.0.jar:?]
        at com.loohp.imageframe.utils.ImageMapUtils.getImageMapNameSuggestions(ImageMapUtils.java:61) ~[ImageFrame-1.7.7.0.jar:?]
        at com.loohp.imageframe.Commands.onTabComplete(Commands.java:1471) ~[ImageFrame-1.7.7.0.jar:?]
        at org.bukkit.command.PluginCommand.tabComplete(PluginCommand.java:141) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
        ... 22 more

update youer plugin in paper 1.20.4

[14:20:18 ERROR]: Could not pass event EntityDamageByEntityEvent to ImageFrame v1.7.7.0
java.lang.NoSuchMethodError: 'void org.bukkit.event.entity.EntityDamageByEntityEvent.(org.bukkit.entity.Entity, org.bukkit.entity.Entity, org.bukkit.event.entity.EntityDamageEvent$DamageCause, double)'
at ImageFrame-1.7.7.0.jar/com.loohp.imageframe.utils.PlayerUtils.isDamageAllowed(PlayerUtils.java:39) ~[ImageFrame-1.7.7.0.jar:?]
at ImageFrame-1.7.7.0.jar/com.loohp.imageframe.objectholders.CombinedMapItemHandler.lambda$handleItemFrameBreak$11(CombinedMapItemHandler.java:324) ~[ImageFrame-1.7.7.0.jar:?]
at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90) ~[?:?]
at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1602) ~[?:?]
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129) ~[?:?]
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527) ~[?:?]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513) ~[?:?]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230) ~[?:?]
at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196) ~[?:?]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.base/java.util.stream.ReferencePipeline.allMatch(ReferencePipeline.java:637) ~[?:?]
at ImageFrame-1.7.7.0.jar/com.loohp.imageframe.objectholders.CombinedMapItemHandler.handleItemFrameBreak(CombinedMapItemHandler.java:324) ~[ImageFrame-1.7.7.0.jar:?]
at ImageFrame-1.7.7.0.jar/com.loohp.imageframe.objectholders.CombinedMapItemHandler.onDamageHanging(CombinedMapItemHandler.java:265) ~[ImageFrame-1.7.7.0.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor1237.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[leaf-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:72) ~[leaf-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:60) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:616) ~[leaf-api-1.20.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.callEvent(CraftEventFactory.java:265) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:1213) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:1198) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:1129) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.callNonLivingEntityDamageEvent(CraftEventFactory.java:1266) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.handleNonLivingEntityDamageEvent(CraftEventFactory.java:1270) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at org.bukkit.craftbukkit.v1_20_R3.event.CraftEventFactory.handleNonLivingEntityDamageEvent(CraftEventFactory.java:1256) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at net.minecraft.world.entity.decoration.ItemFrame.hurt(ItemFrame.java:186) ~[?:?]
at net.minecraft.world.entity.decoration.HangingEntity.skipAttackInteraction(HangingEntity.java:188) ~[?:?]
at net.minecraft.world.entity.player.Player.attack(Player.java:1295) ~[?:?]
at net.minecraft.server.level.ServerPlayer.attack(ServerPlayer.java:2411) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl$4.a(ServerGamePacketListenerImpl.java:2879) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundInteractPacket$1.dispatch(ServerboundInteractPacket.java:24) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundInteractPacket.dispatch(ServerboundInteractPacket.java:80) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleInteract(ServerGamePacketListenerImpl.java:2801) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundInteractPacket.handle(ServerboundInteractPacket.java:67) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundInteractPacket.handle(ServerboundInteractPacket.java:12) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:54) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1461) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:181) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1439) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1367) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1342) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1232) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:306) ~[leaf-1.20.4.jar:git-Leaf-"a5953c0"]
at java.base/java.lang.Thread.run(Thread.java:833) ~[?:?]

Having Issues with looping error upon player joining

This is looping every time a player joins in the server and only ends when they leave. Is there something that can be done to fix the error?

[17:02:42 WARN]: [ImageFrame] Plugin ImageFrame v1.7.7.0 generated an exception while executing task 126 java.lang.IllegalStateException: Item does not have map associated - check hasMapView() first! at com.google.common.base.Preconditions.checkState(Preconditions.java:512) ~[guava-32.1.2-jre.jar:?] at org.bukkit.craftbukkit.v1_20_R3.inventory.CraftMetaMap.getMapView(CraftMetaMap.java:152) ~[paper-1.20.4.jar:git-Paper-393] at com.loohp.imageframe.utils.MapUtils.getItemMapView(MapUtils.java:304) ~[ImageFrame-1.7.7.0.jar:?] at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:243) ~[ImageFrame-1.7.7.0.jar:?] at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.20.4.jar:git-Paper-393] at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.20.4.jar:git-Paper-393] at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.20.4.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] at java.lang.Thread.run(Thread.java:833) ~[?:?]

NullPointerException on BiConsumer.accept(Object, Object)

So recently my server hit its disk space capacity limit, so I extended the partition size but after booting up the server again it seems about a dozen or so out of the 509 total imageframes gave exceptions in the console. The exceptions all looked identical to eachother. here is one.
[09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/INFO]: [ImageFrame] Unable to load ImageMap data in /home/opc/plugins/ImageFrame/data/387 [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: java.lang.reflect.InvocationTargetException [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:578) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at ImageFrame-1.7.3.3.jar//com.loohp.imageframe.objectholders.ImageMap.load(ImageMap.java:77) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at ImageFrame-1.7.3.3.jar//com.loohp.imageframe.objectholders.ImageMapManager.loadMaps(ImageMapManager.java:234) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at ImageFrame-1.7.3.3.jar//com.loohp.imageframe.ImageFrame.lambda$onEnable$1(ImageFrame.java:242) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at org.bukkit.craftbukkit.v1_19_R3.scheduler.CraftTask.run(CraftTask.java:101) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at org.bukkit.craftbukkit.v1_19_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at java.base/java.lang.Thread.run(Thread.java:1623) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: Caused by: javax.imageio.IIOException: Can't read input file! [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1308) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at ImageFrame-1.7.3.3.jar//com.loohp.imageframe.objectholders.URLAnimatedImageMap.load(URLAnimatedImageMap.java:133) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) [09:43:59] [Craft Scheduler Thread - 6 - ImageFrame/WARN]: ... 10 more

After going through each exception and deleting each plugins/imageframe/data/ folder that generated an exception, the only exception left were about 2 of the following that were files located in world/data/map_.dat

[09:43:11] [Server thread/ERROR]: Error loading saved data: map_234 java.lang.ArrayIndexOutOfBoundsException: arraycopy: length -1 is negative at java.lang.System.arraycopy(Native Method) ~[?:?] at java.io.PushbackInputStream.unread(PushbackInputStream.java:247) ~[?:?] at net.minecraft.world.level.storage.DimensionDataStorage.isGzip(DimensionDataStorage.java:115) ~[?:?] at net.minecraft.world.level.storage.DimensionDataStorage.readTagFromDisk(DimensionDataStorage.java:88) ~[?:?] at net.minecraft.world.level.storage.DimensionDataStorage.readSavedData(DimensionDataStorage.java:65) ~[?:?] at net.minecraft.world.level.storage.DimensionDataStorage.get(DimensionDataStorage.java:53) ~[?:?] at net.minecraft.server.level.ServerLevel.getMapData(ServerLevel.java:1928) ~[?:?] at org.bukkit.craftbukkit.v1_19_R3.CraftServer.getMap(CraftServer.java:1709) ~[paper-1.19.4.jar:git-Paper-538] at org.bukkit.craftbukkit.v1_19_R3.CraftServer.getMap(CraftServer.java:259) ~[paper-1.19.4.jar:git-Paper-538] at org.bukkit.Bukkit.getMap(Bukkit.java:868) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.v1_19_R3.inventory.CraftMetaMap.getMapView(CraftMetaMap.java:153) ~[paper-1.19.4.jar:git-Paper-538] at com.loohp.imageframe.utils.MapUtils.getItemMapView(MapUtils.java:287) ~[ImageFrame-1.7.3.3.jar:?] at com.loohp.imageframe.listeners.Events.onChunkLoad(Events.java:249) ~[ImageFrame-1.7.3.3.jar:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor275.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:git-Paper-538] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?] at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.19.4.jar:git-Paper-538] at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[paper-1.19.4.jar:git-Paper-538] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:615) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?] at net.minecraft.world.level.chunk.LevelChunk.loadCallback(LevelChunk.java:910) ~[?:?] at net.minecraft.world.level.chunk.LevelChunk.onChunkLoad(LevelChunk.java:861) ~[?:?] at io.papermc.paper.chunk.system.scheduling.NewChunkHolder.handleFullStatusChange(NewChunkHolder.java:1311) ~[paper-1.19.4.jar:git-Paper-538] at io.papermc.paper.chunk.system.scheduling.ChunkHolderManager.processPendingFullUpdate(ChunkHolderManager.java:1057) ~[paper-1.19.4.jar:git-Paper-538] at io.papermc.paper.chunk.system.scheduling.ChunkHolderManager.processTicketUpdates(ChunkHolderManager.java:1041) ~[paper-1.19.4.jar:git-Paper-538] at io.papermc.paper.chunk.system.scheduling.ChunkHolderManager.processTicketUpdates(ChunkHolderManager.java:926) ~[paper-1.19.4.jar:git-Paper-538] at net.minecraft.server.level.ServerChunkCache.runDistanceManagerUpdates(ServerChunkCache.java:583) ~[?:?] at net.minecraft.server.level.ServerChunkCache$MainThreadExecutor.pollTask(ServerChunkCache.java:1005) ~[?:?] at net.minecraft.server.level.ServerChunkCache.pollTask(ServerChunkCache.java:579) ~[?:?] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1330) ~[paper-1.19.4.jar:git-Paper-538] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1312) ~[paper-1.19.4.jar:git-Paper-538] at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1389) ~[paper-1.19.4.jar:git-Paper-538] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1174) ~[paper-1.19.4.jar:git-Paper-538] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[paper-1.19.4.jar:git-Paper-538] at java.lang.Thread.run(Thread.java:1623) ~[?:?]

Now after deleting those files, I now get random NullPointerExceptions. Here is what they look like

[23:01:54 WARN]: [ImageFrame] Plugin ImageFrame v1.7.3.3 generated an exception while executing task 1835737 java.lang.NullPointerException: Cannot invoke "java.util.function.BiConsumer.accept(Object, Object)" because "completionCallback" is null at com.loohp.imageframe.objectholders.RateLimitedPacketSendingManager.queue(RateLimitedPacketSendingManager.java:65) ~[ImageFrame-1.7.3.3.jar:?] at com.loohp.imageframe.utils.MapUtils.sendImageMap(MapUtils.java:240) ~[ImageFrame-1.7.3.3.jar:?] at com.loohp.imageframe.utils.MapUtils.sendImageMap(MapUtils.java:169) ~[ImageFrame-1.7.3.3.jar:?] at com.loohp.imageframe.utils.MapUtils.sendImageMap(MapUtils.java:145) ~[ImageFrame-1.7.3.3.jar:?] at com.loohp.imageframe.objectholders.ImageMap.send(ImageMap.java:218) ~[ImageFrame-1.7.3.3.jar:?] at com.loohp.imageframe.objectholders.ImageMap.send(ImageMap.java:213) ~[ImageFrame-1.7.3.3.jar:?] at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.lambda$tick$7(AnimatedFakeMapManager.java:193) ~[ImageFrame-1.7.3.3.jar:?] at org.bukkit.craftbukkit.v1_19_R3.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.19.4.jar:git-Paper-538] at org.bukkit.craftbukkit.v1_19_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.19.4.jar:git-Paper-538] at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.19.4.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] at java.lang.Thread.run(Thread.java:1623) ~[?:?]

Currently Using:
Paper-1.19.4-538
ImageFrame-1.7.3.3
Oracle Cloud VM Hosting

Error enabling ImageFrame v1.7.6.0

I have stumbled upon an error while adding the plugin to my server with paper-1.20.2-240. I also got the latest version of ProtocolLib. I get this error while running any command:

image

When I look into the latest error logs for ImageFrame, I get:

$ cat logs/latest.log | grep Image

[15:17:38] [Server thread/INFO]: [ImageFrame] Loading server plugin ImageFrame v1.7.6.0
[15:17:41] [Server thread/INFO]: [ImageFrame] Enabling ImageFrame v1.7.6.0
[15:17:41] [Server thread/ERROR]: Error occurred while enabling ImageFrame v1.7.6.0 (Is it up to date?)
        at com.loohp.imageframe.objectholders.RateLimitedPacketSendingManager.<init>(RateLimitedPacketSendingManager.java:51) ~[ImageFrame-1.7.6.0.jar:?]
        at com.loohp.imageframe.ImageFrame.onEnable(ImageFrame.java:280) ~[ImageFrame-1.7.6.0.jar:?]
[15:17:41] [Server thread/INFO]: [ImageFrame] Disabling ImageFrame v1.7.6.0
[15:17:41] [Server thread/INFO]: [ImageFrame] Unable to save ImageMapManager data in /usr/local/minecraft/DrgnCraft/plugins/ImageFrame/data/deletedMaps.bin
[15:17:41] [Server thread/WARN]: java.nio.file.NoSuchFileException: plugins/ImageFrame/data/deletedMaps.bin
[15:17:41] [Server thread/WARN]:        at ImageFrame-1.7.6.0.jar//com.loohp.imageframe.objectholders.ImageMapManager.saveDeletedMaps(ImageMapManager.java:290)
[15:17:41] [Server thread/WARN]:        at ImageFrame-1.7.6.0.jar//com.loohp.imageframe.objectholders.ImageMapManager.close(ImageMapManager.java:107)
[15:17:41] [Server thread/WARN]:        at ImageFrame-1.7.6.0.jar//com.loohp.imageframe.ImageFrame.onDisable(ImageFrame.java:295)
[15:17:41] [Server thread/INFO]: [ImageFrame] ImageFrame has been Disabled!
org.bukkit.command.CommandException: Cannot execute command 'imageframe' in plugin ImageFrame v1.7.6.0 - plugin is disabled.

And when I look into the latest error logs for ProtocolLib, I get:

$ cat logs/latest.log | grep Protocol

[15:28:36] [Server thread/INFO]: [ProtocolLib] Loading server plugin ProtocolLib v5.1.0
[15:28:36] [Server thread/WARN]: [ProtocolLib] Version (MC: 1.20.2) has not yet been tested! Proceed with caution.
[15:28:37] [Server thread/ERROR]:   [ProtocolLib] INTERNAL ERROR: Cannot load ProtocolLib.
  at https://github.com/dmulloy2/ProtocolLib/issues with the following data:
        at ProtocolLib.jar//com.comphenix.protocol.reflect.FuzzyReflection.getField(FuzzyReflection.java:352)
        at ProtocolLib.jar//com.comphenix.protocol.injector.packet.PacketRegistry.createNewRegister(PacketRegistry.java:188)
        at ProtocolLib.jar//com.comphenix.protocol.injector.packet.PacketRegistry.initialize(PacketRegistry.java:292)
        at ProtocolLib.jar//com.comphenix.protocol.injector.packet.PacketRegistry.getClientPacketTypes(PacketRegistry.java:327)
        at ProtocolLib.jar//com.comphenix.protocol.injector.PacketFilterManager.<init>(PacketFilterManager.java:120)
        at ProtocolLib.jar//com.comphenix.protocol.injector.PacketFilterBuilder.build(PacketFilterBuilder.java:121)
        at ProtocolLib.jar//com.comphenix.protocol.ProtocolLib.onLoad(ProtocolLib.java:183)
    com.comphenix.protocol.ProtocolLib@2e4cacfd[
      commandProtocol=<null>
      file=plugins/ProtocolLib.jar
      dataFolder=plugins/ProtocolLib
      classLoader=PluginClassLoader{plugin=ProtocolLib v5.1.0, pluginEnabled=false, url=plugins/ProtocolLib.jar}
      configFile=plugins/ProtocolLib/config.yml
    ProtocolLib v5.1.0
[15:28:37] [Server thread/INFO]: [ProtocolLib] Enabling ProtocolLib v5.1.0
[15:28:37] [Server thread/ERROR]: *** ProtocolLib does not support plugin reloaders! ***
[15:28:37] [Server thread/INFO]: [ProtocolLib] Disabling ProtocolLib v5.1.0
java.lang.NoClassDefFoundError: com/comphenix/protocol/ProtocolLibrary
Caused by: java.lang.ClassNotFoundException: com.comphenix.protocol.ProtocolLibrary

Could not find entity trackers for CraftItemFrame

[21:57:01 WARN]: [ImageFrame] Plugin ImageFrame v1.7.6.0 generated an exception while executing task 47
java.lang.IllegalArgumentException: Could not find entity trackers for CraftItemFrame{item=ItemStack{STONE x 1}, rotation=NONE}
at com.comphenix.protocol.injector.EntityUtilities.getTrackedPlayers(EntityUtilities.java:183) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackers(EntityUtilities.java:164) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.getEntityTrackers(PacketFilterManager.java:414) ~[ProtocolLib.jar:?]
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:93) ~[ImageFrame-1.7.6.0.jar:?]
at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.20.2.jar:git-Paper-217]
at org.bukkit.craftbukkit.v1_20_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.20.2.jar:git-Paper-217]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.20.2.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]

AnimatedFakeMapManager using an unreasonable amount of server tick since 1.7.3 update

Ever since updating to 1.7.3 ImageFrame::Task: com.loohp.imageframe.objectholders.AnimatedFakeMapManager$$Lambda$7623 (interval:1) is taking up a large portion of the server tick (24.01% on the latest timings report) despite the server not having any animated maps.

It would be nice if all animation functionality could be disabled in the configuration, since we're not actually utilizing it on the server.

GIFs not working, JAVA

I'm not entirely sure if its just me being stupid but gifs just don't work.

Every time me or anyone on my server tries to add a gif there able to create the map but once they place it it is just stuck on the first frame of the gif and doesn't animate. we have tried gifs from all different sources and none of them have worked. we even tried looking into the code but none of us understand it so it wasn't any help. I am also on java edition

Null Pointer Exception

Purpur 1.20.1

[15:08:14 WARN]: [ImageFrame] Plugin ImageFrame v1.7.7.0 generated an exception while executing task 27
java.lang.NullPointerException: Cannot invoke "it.unimi.dsi.fastutil.objects.ReferenceArrayList.get(int)" because "this.wrapped" is null
at it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet$SetIterator.next(ReferenceOpenHashSet.java:514) ~[fastutil-8.5.9.jar:?]
at com.comphenix.protocol.injector.EntityUtilities.getEntityTrackers(EntityUtilities.java:167) ~[ProtocolLib.jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.getEntityTrackers(PacketFilterManager.java:414) ~[ProtocolLib.jar:?]
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.getEntityTrackers(AnimatedFakeMapManager.java:93) ~[ImageFrame-1.7.7.0.jar:?]
at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:126) ~[ImageFrame-1.7.7.0.jar:?]
at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[purpur-1.20.1.jar:git-Purpur-2050]
at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[purpur-1.20.1.jar:git-Purpur-2050]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[purpur-1.20.1.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.lang.Thread.run(Thread.java:1589) ~[?:?]

[Feature Request] Command Block Compatibility

I would like the ability to swap maps out using command blocks. Probably could be done by adding a command that would work like the "get" command with a built-in selection.
Example:
/imageframe place <name> <x1> <y1> <z1> <x2> <y2> <z2>
Also, I would like to be able to run /imageframe refresh [name] from command blocks, kind of like with #16
Thank you! I absolutly love your plugin <3

Plugin won't start with Paper 1.20.4

[20:18:22 INFO]: [ImageFrame] Enabling ImageFrame v1.7.6.0                                                     
[20:18:22 INFO]: [ImageFrame] This version of minecraft is unsupported! (Unsupported)                          
[20:18:22 INFO]: [ImageFrame] ImageFrame has hooked into ViaVersion!                                           
[20:18:22 ERROR]: Error occurred while enabling ImageFrame v1.7.6.0 (Is it up to date?)                        
java.lang.NoClassDefFoundError: com/comphenix/protocol/ProtocolLibrary                                         
        at com.loohp.imageframe.objectholders.RateLimitedPacketSendingManager.<init>(RateLimitedPacketSendingMa
nager.java:51) ~[ImageFrame-1.7.6.0.jar:?]                                                                     
        at com.loohp.imageframe.ImageFrame.onEnable(ImageFrame.java:280) ~[ImageFrame-1.7.6.0.jar:?]           
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.20.4-R0.1-SNAPSHOT.j
ar:?]
        at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.j
ava:190) ~[paper-1.20.4.jar:git-Paper-378]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104)
 ~[paper-1.20.4.jar:git-Paper-378]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507) ~[paper-api-1.20.4-
R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_20_R3.CraftServer.enablePlugin(CraftServer.java:637) ~[paper-1.20.4.jar:gi
t-Paper-378]
        at org.bukkit.craftbukkit.v1_20_R3.CraftServer.enablePlugins(CraftServer.java:548) ~[paper-1.20.4.jar:g
it-Paper-378]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:673) ~[paper-1.20.4.jar:git-Pap
er-378]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:433) ~[paper-1.20.4.jar:git-Pape
r-378]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:308) ~[paper-1.20.4.j
ar:git-Paper-378]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1132) ~[paper-1.20.4.jar:git-Pap
er-378]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:321) ~[paper-1.20.4.jar:git-
Paper-378]
        at java.lang.Thread.run(Thread.java:833) ~[?:?] 
Caused by: java.lang.ClassNotFoundException: com.comphenix.protocol.ProtocolLibrary
        at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:197) ~[paper-api-1.20.4-R
0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:164) ~[paper-api-1.20.4-R0
.1-SNAPSHOT.jar:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
        ... 14 more
[20:18:22 INFO]: [ImageFrame] Disabling ImageFrame v1.7.6.0
[20:18:22 INFO]: [ImageFrame] ImageFrame has been Disabled!

Limit to gifs?

yo is there a limit to the amount of gifs one can have cause i got 9 working ones but every other one that i added is stuck on the first frame. other people are able to add there own gifs that work but after i placed 9 i cant seem to place any more working ones.
no one else on my server has placed more then like 4 gifs im the only one with 9 gifs and the rest that i placed just dont work

Server becomes unresposive while loading maps

So I migrated from imageonmap to imageframe and i really like the result, but while loading the maps, the server seems to get unresponsive and displays this occasionally:
imagen
I also realised that ram usage is generally high even with low player count, perhaps all images are loaded to memory?

Folia 1.20.4 Accessing entity state off owning region's thread

java.lang.Throwable: null
        at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:78) ~[folia-1.20.4.jar:git-Folia-"e97b1ee"]
        at org.bukkit.craftbukkit.v1_20_R3.entity.CraftItemFrame.getHandle(CraftItemFrame.java:169) ~[folia-1.20.4.jar:git-Folia-"e97b1ee"]
        at org.bukkit.craftbukkit.v1_20_R3.entity.CraftItemFrame.getHandle(CraftItemFrame.java:14) ~[folia-1.20.4.jar:git-Folia-"e97b1ee"]
        at org.bukkit.craftbukkit.v1_20_R3.entity.CraftEntity.isInWorld(CraftEntity.java:939) ~[folia-1.20.4.jar:git-Folia-"e97b1ee"]
        at org.bukkit.craftbukkit.v1_20_R3.entity.CraftEntity.isValid(CraftEntity.java:393) ~[folia-1.20.4.jar:git-Folia-"e97b1ee"]
        at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.lambda$buildAllItemFrameInfo$0(AnimatedFakeMapManager.java:111) ~[ImageFrame-1.7.7.2.jar:?]
        at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.buildAllItemFrameInfo(AnimatedFakeMapManager.java:122) ~[ImageFrame-1.7.7.2.jar:?]
        at com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:145) ~[ImageFrame-1.7.7.2.jar:?]
        at com.loohp.imageframe.objectholders.Scheduler.lambda$runTaskTimerAsynchronously$12(Scheduler.java:168) ~[ImageFrame-1.7.7.2.jar:?]
        at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217) ~[folia-1.20.4.jar:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]
[00:12:18 WARN]: java.lang.IllegalStateException: Accessing entity state off owning region's thread
[00:12:18 WARN]:        at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:79)
[00:12:18 WARN]:        at org.bukkit.craftbukkit.v1_20_R3.entity.CraftItemFrame.getHandle(CraftItemFrame.java:169)
[00:12:18 WARN]:        at org.bukkit.craftbukkit.v1_20_R3.entity.CraftItemFrame.getHandle(CraftItemFrame.java:14)
[00:12:18 WARN]:        at org.bukkit.craftbukkit.v1_20_R3.entity.CraftEntity.isInWorld(CraftEntity.java:939)
[00:12:18 WARN]:        at org.bukkit.craftbukkit.v1_20_R3.entity.CraftEntity.isValid(CraftEntity.java:393)
[00:12:18 WARN]:        at ImageFrame-1.7.7.2.jar//com.loohp.imageframe.objectholders.AnimatedFakeMapManager.lambda$buildAllItemFrameInfo$0(AnimatedFakeMapManager.java:111)
[00:12:18 WARN]:        at ImageFrame-1.7.7.2.jar//com.loohp.imageframe.objectholders.AnimatedFakeMapManager.buildAllItemFrameInfo(AnimatedFakeMapManager.java:122)
[00:12:18 WARN]:        at ImageFrame-1.7.7.2.jar//com.loohp.imageframe.objectholders.AnimatedFakeMapManager.run(AnimatedFakeMapManager.java:145)
[00:12:18 WARN]:        at ImageFrame-1.7.7.2.jar//com.loohp.imageframe.objectholders.Scheduler.lambda$runTaskTimerAsynchronously$12(Scheduler.java:168)
[00:12:18 WARN]:        at io.papermc.paper.threadedregions.scheduler.FoliaAsyncScheduler$AsyncScheduledTask.run(FoliaAsyncScheduler.java:217)
[00:12:18 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[00:12:18 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[00:12:18 WARN]:        at java.base/java.lang.Thread.run(Thread.java:840)```

This happen with both itemframe and glow item frame

Maps imported from ImageMaps are scaled up twice

Aloha !

When importing previous maps from ImageMaps with /if adminmigrate ImageMaps, most images are correctly imported, but overscaled two times. See attached pictures.
image
image

The first one was a 2x1 image, the second a 3x4. Both image files were scaled to the proper aspect ratios before importing them in ImageMaps as it did not handle blank spaces with transparency like ImageFrame does, but with black bands. Thus I'm fairly certain these maps were appropriately scaled under ImageMaps and should be here too.

Thanks by advance for all your help, and for this otherwise amazing plugin !

Stacktrace when doing specific command

[14:06:49] [Server thread/INFO]: LioPro_3p issued server command: /imageframe create BatistaPaiting https://imgur.com/P1ecjZc 4 4 combined

I know this is because the image doesn't link directly to the img but i think this full error is not nice

[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Unable to read or download image, does this url directly links to an image? (https://imgur.com/P1ecjZc)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2073)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at ImageFrame-1.6.2.0.jar//com.loohp.imageframe.Commands.lambda$onCommand$5(Commands.java:184)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at org.bukkit.craftbukkit.v1_19_R2.scheduler.CraftTask.run(CraftTask.java:101)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at org.bukkit.craftbukkit.v1_19_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at java.base/java.lang.Thread.run(Thread.java:833)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: Caused by: java.lang.RuntimeException: Unable to read or download image, does this url directly links to an image? (https://imgur.com/P1ecjZc)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at ImageFrame-1.6.2.0.jar//com.loohp.imageframe.objectholders.URLStaticImageMap.update(URLStaticImageMap.java:208)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at ImageFrame-1.6.2.0.jar//com.loohp.imageframe.objectholders.URLStaticImageMap.lambda$create$2(URLStaticImageMap.java:91)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	at ImageFrame-1.6.2.0.jar//com.loohp.imageframe.utils.FutureUtils.lambda$callAsyncMethod$1(FutureUtils.java:62)
[14:06:50] [Craft Scheduler Thread - 14995 - ImageFrame/WARN]: 	... 6 more

Add a link search

For example, the command will look like this: /if info <url>/<id>

When executing the command, information about the map will be displayed

Server hangs if you stop it before images load

If you stop the server before images load, it will hang for couple of minutes before shutting down.
Also, images start to load after couple of minutes, which could be weird for image-based servers. Perhaps a configurable option to set the delay would be a good option?

Long loading of images and long shutdown of the server

When the server is turned off, the plugin turns off for a very long time, sometimes about 30-40 seconds. This leads to big problems when using some proxy plugins. Is it possible to do something with loading and unloading so that shutdown takes 1 second like other plugins?

Console have some error text

It may happer some times per day:

[Server thread/ERROR]: Could not pass event InventoryClickEvent to ImageFrame v1.7.4.2
java.lang.IllegalStateException: Item does not have map associated - check hasMapView() first!
at com.google.common.base.Preconditions.checkState(Preconditions.java:512) ~[guava-32.1.1-jre.jar:?]
at org.bukkit.craftbukkit.v1_20_R1.inventory.CraftMetaMap.getMapView(CraftMetaMap.java:152) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at com.loohp.imageframe.utils.MapUtils.getItemMapView(MapUtils.java:286) ~[ImageFrame-1.7.4.2.jar:?]
at com.loohp.imageframe.listeners.Events.onClick(Events.java:63) ~[ImageFrame-1.7.4.2.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor1507.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[leaf-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:77) ~[leaf-api-1.20.1-R0.1-SNAPSHOT.jar:git-Leaf-"6b48ad4"]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:72) ~[leaf-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:60) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:617) ~[leaf-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleContainerClick(ServerGamePacketListenerImpl.java:3320) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:58) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:23) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:51) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1346) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:187) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1324) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1317) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1294) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1183) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:307) ~[leaf-1.20.1.jar:git-Leaf-"6b48ad4"]
at java.lang.Thread.run(Thread.java:1623) ~[?:?]

Error when trying to update an image with a gif

[01:28:37 INFO]: evanonym0us issued server command: /imageframe refresh news https://cdn.discordapp.com/attachments/879791400747679834/1187204763071303780/ezgif-4-d1820d7894.gif
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Thread-17"
[01:28:55 WARN]: java.lang.OutOfMemoryError: Java heap space
[01:28:55 WARN]: Exception in thread "Thread-13" java.lang.OutOfMemoryError: Java heap space
[01:28:56 WARN]: java.lang.OutOfMemoryError: Java heap space
[01:28:56 INFO]: [CoreProtect] Disabling CoreProtect v22.2
[01:28:56 INFO]: [CoreProtect] Finishing up data logging. Please wait...
[01:28:56 ERROR]: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH - git-Paper-334 (MC: 1.20.4) ---
[01:28:55 WARN]: [ImageFrame] Plugin ImageFrame v1.7.7.0 generated an exception while executing task 22
java.lang.OutOfMemoryError: Java heap space
[01:28:57 ERROR]: The server has not responded for 14 seconds! Creating thread dump
[01:28:57 ERROR]: ------------------------------
[01:28:57 ERROR]: Server thread dump (Look for plugins here before reporting to Paper!):
[01:28:59 ERROR]: Ticking entity: minecraft:bat, entity class: net.minecraft.world.entity.ambient.EntityBat
[01:29:00 ERROR]: Entity status: removed: false, valid: true, alive: true, is passenger: false
[01:29:00 ERROR]: Entity UUID: e0dbfc3b-2572-4bb7-8595-1d1ee269f646
[01:29:01 ERROR]: Position: world: 'world' at location (612.4384248926783, 60.10000002384186, -20.75)
[01:29:02 ERROR]: Velocity: (0.0, -0.0784000015258789, 0.0) (in blocks per tick)
[01:29:03 ERROR]: Entity AABB: AABB[612.1884248926783, 60.10000002384186, -21.0] -> [612.6884248926783, 61.0, -20.5]
[01:29:04 ERROR]: ------------------------------
[01:29:04 ERROR]: Current Thread: Server thread
[01:29:04 ERROR]: PID: 28 | Suspended: false | Native: false | State: RUNNABLE
[01:29:04 ERROR]: Stack:
[01:29:05 ERROR]: io.papermc.paper.chunk.system.entity.EntityLookup.getAllCopy(EntityLookup.java:198)
[01:29:05 ERROR]: net.minecraft.server.MinecraftServer.lambda$tickChildren$16(MinecraftServer.java:1644)
[01:29:05 ERROR]: net.minecraft.server.MinecraftServer$$Lambda$12581/0x00007f6ec9ff0230.accept(Unknown Source)
[01:29:05 ERROR]: [email protected]/java.util.LinkedHashMap$LinkedValues.forEach(LinkedHashMap.java:647)
[01:29:05 ERROR]: [email protected]/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092)
[01:29:05 ERROR]: net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1643)
[01:29:05 ERROR]: net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:446)
[01:29:05 ERROR]: net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1518)
[01:29:05 ERROR]: net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1214)
[01:29:05 ERROR]: net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:321)
[01:29:05 ERROR]: net.minecraft.server.MinecraftServer$$Lambda$6231/0x00007f6ec8b7a548.run(Unknown Source)
[01:29:05 ERROR]: [email protected]/java.lang.Thread.run(Thread.java:840)
[01:29:05 ERROR]: ------------------------------
[01:29:05 ERROR]: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---
[01:29:05 ERROR]: ------------------------------
[01:29:06 INFO]: [CoreProtect] 0 items left to log. Please wait...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.