Giter VIP home page Giter VIP logo

billygalbreath / pl3xmap Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 3.0 26.46 MB

Pl3xMap is a minimalistic and lightweight world map viewer for Minecraft servers using the vanilla Minecraft rendering style

Home Page: https://modrinth.com/plugin/pl3xmap

License: MIT License

Java 90.20% HTML 0.20% JavaScript 1.06% TypeScript 7.78% SCSS 0.76%
hacktoberfest minecraft paper papermc purpur purpurmc bluemap dynmap fabric fabricmc

pl3xmap's Introduction

Pl3xMap

Pl3xMap

Build Status Downloads Join us on Discord

MIT License CodeFactor Grade

bStats Servers Stargazers Forks Watchers

Pl3xMap is the original minimalistic and lightweight world map viewer
for Minecraft servers using the vanilla Minecraft rendering style.

Features

  • Ultra-fast render times. Get your map rendered in minutes, not next week.
  • Simple vanilla-like top down 2D view, designed for navigation.
  • Player markers showing yaw rotation, health, and armor.
  • Addons and integrations for many popular plugins.
  • Multiple render types including built-in basic, night, biomes, inhabited, and flowermap.
  • Easy to set up and configure.
  • Up-to-date Leaflet front-end for a better browser experience.
  • Robust API to create your own addons and/or integrations with ease.

Supported Platforms

Downloads

Downloads are available on Modrinth.

Download on Modrinth

Demo

You can demo Pl3xMap (and it's top competitors) at:

https://pl3x.net/demo/

Support the Developers

BillyGalbreath on:

JLyne on:

bStats

bStats Graph Data

Developers

Maven

<repository>
  <id>modrinth-repo</id>
  <url>https://api.modrinth.com/maven/</url>
</repository>

<dependency>
  <groupId>maven.modrinth</groupId>
  <artifactId>pl3xmap</artifactId>
  <version>1.20.1-444</version>
  <scope>provided</scope>
</dependency>

Gradle

repositories {
    exclusiveContent {
        forRepository { maven { url = "https://api.modrinth.com/maven" } }
        filter { includeGroup "maven.modrinth" }
    }
}

dependencies {
    compileOnly 'maven.modrinth:pl3xmap:1.20.1-444'
}

Building from source

To build this project ensure npm is installed and on your PATH.

Then just run the following command:

./gradlew build

The compiled jars will be in build/libs/

pl3xmap's People

Contributors

0x7d8 avatar antbrl avatar billygalbreath avatar jlyne avatar joeyak avatar roan-v avatar spongecade avatar tbluef avatar u5b avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

pl3xmap's Issues

SWM Support

When trying to use Pl3xMap and SWM together, Pl3xMap spams console with "Player is in unloaded world" exceptions while being in a SWM world.

[18:59:01 WARN]: java.lang.IllegalStateException: Player is in an unloaded world!
[18:59:01 WARN]:        at Pl3xMap-1.19.3-320.jar//net.pl3x.map.player.BukkitPlayer.getWorld(BukkitPlayer.java:59)
[18:59:01 WARN]:        at Pl3xMap-1.19.3-320.jar//net.pl3x.map.task.UpdateSettingsData.lambda$parsePlayers$0(UpdateSettingsData.java:49)
[18:59:01 WARN]:        at java.base/java.util.concurrent.ConcurrentHashMap.forEach(ConcurrentHashMap.java:1603)
[18:59:01 WARN]:        at java.base/java.util.Collections$UnmodifiableMap.forEach(Collections.java:1553)
[18:59:01 WARN]:        at Pl3xMap-1.19.3-320.jar//net.pl3x.map.task.UpdateSettingsData.parsePlayers(UpdateSettingsData.java:39)
[18:59:01 WARN]:        at Pl3xMap-1.19.3-320.jar//net.pl3x.map.task.UpdateSettingsData.parseSettings(UpdateSettingsData.java:145)
[18:59:01 WARN]:        at Pl3xMap-1.19.3-320.jar//net.pl3x.map.task.UpdateSettingsData.run(UpdateSettingsData.java:31)
[18:59:01 WARN]:        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[18:59:01 WARN]:        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
[18:59:01 WARN]:        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
[18:59:01 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[18:59:01 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[18:59:01 WARN]:        at java.base/java.lang.Thread.run(Thread.java:833)

Maps are not displayed in configured order/with configured display names

My worlds are configured the following way in config/pl3xmap/config.yml:

<snip beginning of file with commented config options>
  world:
    enabled: true
    render:
      renderers:
        basic: overworld_basic
        night: overworld_night
        biomes: overworld_biomes
        inhabited: inhabited
        flowermap: flowermap
    ui:
      display-name: Overworld
      order: 0
  world_nether:
    render:
      renderers:
        basic: nether_basic
        night: nether_night
        biomes: nether_biomes
        inhabited: inhabited
      skylight: 0
    ui:
      display-name: The Nether
      order: 1
  world_the_end:
    render:
      renderers:
        basic: the_end_basic
        night: the_end_night
        biomes: the_end_biomes
        inhabited: inhabited
      skylight: 0
    ui:
      display-name: The End
      order: 2

In the browser, this is how the maps are displayed:
image
the_end is displayed above the_nether but its order field is greater than that of the_nether.

The configured display names are not used in the UI either.

web-address config option ignored in /pl3xmap command

I've configured a web address and a nonstandard port:

settings:
  debug-mode: false
  language-file: lang-en.yml
  web-address: https://example.com/minecraft/map/
  <snip>
  internal-webserver:
    enabled: true
    bind: 0.0.0.0
    port: 8005
<snip>

When I run the /pl3xmap command on the server, the reply is

[Pl3xMap] View the map at 'http://localhost:8080/'

I expected the server to reply something like

[Pl3xMap] View the map at 'https://example.com/minecraft/map/'

Dying breaks player position

After dying, the player who died vanishes from the browser map as expected.

After respawning however, the player is displayed with zero armor and hearts in their spawn location, facing southwards. The player marker in the browser does not rotate nor move when the player does.
image

Using the /pl3xmap reload command fixes this.

This bug occurred with build 423.

Server Crash after new Paper Plugin API

Server crashes on recent Purpur and Paper builds that incorporate Paper's new plugin API

Startup Log

Crash Report

Removing the pl3xmap plugin resolved this issue

Server Version:

[21:08:47 INFO]: Current: git-Purpur-1927 (MC: 1.19.3)*
Previous: git-Purpur-1916 (MC: 1.19.3)
* You are running the latest version

Issues with startup

Server is extremely slow to start due to Pl3xMap. I tried deleting the folder and restarting I have also updated to build 440 with no luck.
Below is a small snippet of the error. It runs through Retried waiting for GClocker for several minutes.

`[14:28:57] [Pl3xMap-Renderer-3/INFO]: [Pl[62.371s][warning][gc,alloc] Pl3xMap-Renderer-2: Retried waiting for GCLocker too often allocating 131074 words
3xMap] [WARN] Could not read tile image: plugins\Pl3xMap\web\tiles\world\2\flowermap-1_-1.png
[14:28:57] [Pl3xMap-Renderer-3/WARN]: javax.imageio.IIOException: Caught exception during read:
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at java.desktop/com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1854)
Pl3xMap-Renderer-2: Retried waiting for GCLocker too often allocating 131074 words
[62.374s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131074 words
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at java.desktop/javax.imageio.ImageReader.read(ImageReader.java:938)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at net.pl3x.map.core.image.io.IO$Type.read(IO.java:99)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at net.pl3x.map.core.image.TileImage.getBuffer(TileImage.java:122)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at net.pl3x.map.core.image.TileImage.saveToDisk(TileImage.java:102)
[warning][gc,alloc] Pl3xMap-Renderer-2: Retried waiting for GCLocker too often allocating 131074 words
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at net.pl3x.map.core.renderer.Renderer.saveData(Renderer.java:87)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at net.pl3x.map.core.renderer.task.RegionScanTask.saveImages(RegionScanTask.java:127)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at net.pl3x.map.core.renderer.task.RegionScanTask.run(RegionScanTask.java:93)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
Pl3xMap-Renderer-2: Retried waiting for GCLocker too often allocating 131074 words
[14:28:57] [Pl3xMap-Renderer-3/WARN]: at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
[14:28:57] [Pl3xMap-Renderer-3/WARN]: Caused by: java.lang.OutOfMemoryError: Java heap space
[14:28:57] [Pl3xMap-Renderer-2/WARN]: java.lang.OutOfMemoryError: Java heap space
[14:28:57] [Pl3xMap-Renderer-2/WARN]: java.lang.OutOfMemoryError: Java heap space
[14:28:57] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[14:28:57] [Pl3xMap-Renderer-2/WARN]: java.lang.OutOfMemoryError: Java heap space
[14:28:57] [Pl3xMap-Renderer-2/WARN]: java.lang.OutOfMemoryError: Java heap space

[62.679s][warning][gc,alloc] Pl3xMap-Renderer-4: Retried waiting for GCLocker too often allocating 131074 words
[14:28:57] [Pl3xMap-Renderer-4/WARN]: java.lang.OutOfMemoryError: Java heap space
[65.507s][warning][gc,alloc] XNIO-1 I/O-9: Retried waiting for GCLocker too often allocating 5313 words
[69.947s][warning][gc,alloc] XNIO-1 task-5: Retried waiting for GCLocker too often allocating 256 words
[69.949s][warning][gc,alloc] TerminalConsoleWriter: Retried waiting for GCLocker too often allocating 256 words
[14:29:04] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 7166ms or 143 ticks behind
[69.970s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131076 words
[14:29:04] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[70.292s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131076 words
[14:29:05] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[70.593s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131076 words
[14:29:05] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[70.887s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131076 words
[14:29:05] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[70.892s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131074 words
[14:29:05] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[71.188s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131074 words
[14:29:06] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[71.193s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131074 words
[14:29:06] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[71.200s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131074 words
[14:29:06] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[71.204s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131074 words
[14:29:06] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[14:29:07] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[73.181s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 63934 words
[73.186s][warning][gc,alloc] Pl3xMap-Renderer-5: Retried waiting for GCLocker too often allocating 10259 words
[73.464s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 63934 words
[74.446s][warning][gc,alloc] Pl3xMap-Renderer-2: Retried waiting for GCLocker too often allocating 65536 words
[80.031s][warning][gc,alloc] Pl3xMap-Renderer-2: Retried waiting for GCLocker too often allocating 65536 words
[80.303s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 63933 words
[82.547s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 63930 words
[84.453s][warning][gc,alloc] Pl3xMap-Renderer-2: Retried waiting for GCLocker too often allocating 65536 words
[84.453s][warning][gc,alloc] pool-26-thread-1: Retried waiting for GCLocker too often allocating 256 words
[85.813s][warning][gc,alloc] Pl3xMap-Renderer-0: Retried waiting for GCLocker too often allocating 65536 words
[87.697s][warning][gc,alloc] Pl3xMap-Renderer-0: Retried waiting for GCLocker too often allocating 65536 words
[91.825s][warning][gc,alloc] Netty Server IO #0: Retried waiting for GCLocker too often allocating 256 words
[91.825s][warning][gc,alloc] MVStore background writer nio:D:/Spigot Server/Server/plugins/BanManager/local_bans.mv.db: Retried waiting for GCLocker too often allocating 335 words
[91.825s][warning][gc,alloc] XNIO-1 task-3: Retried waiting for GCLocker too often allocating 331 words
[94.272s][warning][gc,alloc] XNIO-1 task-5: Retried waiting for GCLocker too often allocating 331 words
[120.099s][warning][gc,alloc] XNIO-1 task-5: Retried waiting for GCLocker too often allocating 333 words
[120.642s][warning][gc,alloc] XNIO-1 task-6: Retried waiting for GCLocker too often allocating 1067 words
[129.877s][warning][gc,alloc] Netty Server IO #0: Retried waiting for GCLocker too often allocating 12758 words
[154.657s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 64620 words
[14:30:31] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[158.268s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[14:30:33] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[161.331s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131076 words
[14:30:36] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[164.875s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131076 words
[14:30:40] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[14:30:43] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[169.473s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[14:30:44] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[169.485s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[14:30:44] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[169.503s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[14:30:44] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[169.798s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[169.802s][warning][gc,alloc] Server thread: Retried waiting for GCLocker too often allocating 256 words
[14:30:44] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[169.818s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[14:30:45] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[170.104s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[14:30:45] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[170.115s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[170.135s][warning][gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131076 words
[14:30:45] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[170.409s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[warning][14:30:45] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[gc,alloc] Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131074 words
[14:30:45] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
Pl3xMap-Renderer-3: Retried waiting for GCLocker too often allocating 131074 words
[14:30:45] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[170.418s]>[warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[14:30:45] [Pl3xMap-Renderer-3/WARN]: java.lang.OutOfMemoryError: Java heap space
[14:30:45] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[170.717s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[14:30:45] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[172.675s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[172.949s][warning][gc,alloc] Pl3xMap-Renderer-0: Retried waiting for GCLocker too often allocating 65536 words
[174.840s][warning][gc,alloc] XNIO-1 task-5: Retried waiting for GCLocker too often allocating 256 words
[14:30:48] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space
[175.386s][warning][gc,alloc] Pl3xMap-Renderer-1: Retried waiting for GCLocker too often allocating 131074 words
[14:30:52] [Pl3xMap-Renderer-1/WARN]: java.lang.OutOfMemoryError: Java heap space`

[BUG] Incorrect Logic in Option#isDefault

Summary of Issue:

According to the the javadoc comment for Option#isDefault (jd reference), the method should return true only if all the properties of that option are null (or default values).

However, in all the implementations I checked, the method returns true when all the properties are not default.
I'll use Fill as an example option.

   public boolean isDefault() {
        return isEnabled() != null &&
                getType() != null &&
                getColor() != null;
    }

This return true if enabled is was initialized to a boolean, a type was specified, and a color was specified (meaning all the properties were set).

Indirect Bugs Caused by This

Trying to use the Options builder results in an incorrect options instance because the builder checks each time if an option is default and if so will set the field to null. Hence, when all properties of an option are set (thus Option#isDefault will return true), the option field will be set to null in the builder and not be applied when built.

Expected Behavior

I expect the method to return true if all the properties of that option are null. I believe the logic should be changed to something like:

   public boolean isDefault() {
        return isEnabled() == null &&
                getType() == null &&
                getColor() == null;
    }

Antivirus yells at me whenever I try to load the modrinth page.

Every time I load the modrinth page for Pl3xMap v2, I get
An infected file attempted to run on your device.
Threat name: Exploit.CVE-2016-3714.Gen.3
Path: /Users/**user**/Library/Caches/Firefox/Profiles/2b33tdxu.default-release/cache2/entries/4CD8796841042CB58C4020B7B5F22E40EDCA947C=>(URL)
We deleted the file to prevent malicious commands from being executed on your device.
from BitDefender.

This does not happen on ANY other webpage I have encountered.

[1.19] Confusion

I can't seem to connect to Pl3xMap on my browser.

I've set my IP in Pl3xMap's config to public, private, even to 0.0.0.0 and I still cannot connect.
I'm using Pterodactyl so could that be the problem?

Again.. Strange message after updating to 337

After updating i am getting this message while rendering

[09:53:21 WARN]: [Pl3xMapโ€‹] Could not read tile image: plugins/Pl3xMap/web/tiles/Survival/3/biomes/0_0.png
[09:53:21 WARN]: javax.imageio.IIOException: Error skipping PNG metadata
[09:53:21 WARN]: at java.desktop/com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:752)
[09:53:21 WARN]: at java.desktop/com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1416)
[09:53:21 WARN]: at java.desktop/com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1847)
[09:53:21 WARN]: at java.desktop/javax.imageio.ImageReader.read(ImageReader.java:938)
[09:53:21 WARN]: at Pl3xMap-1.19.4-337.jar//net.pl3x.map.image.io.Png.read(Png.java:30)
[09:53:21 WARN]: at Pl3xMap-1.19.4-337.jar//net.pl3x.map.image.Image.getBuffer(Image.java:94)
[09:53:21 WARN]: at Pl3xMap-1.19.4-337.jar//net.pl3x.map.image.Image.saveToDisk(Image.java:78)
[09:53:21 WARN]: at Pl3xMap-1.19.4-337.jar//net.pl3x.map.image.Image$Holder.save(Image.java:163)
[09:53:21 WARN]: at Pl3xMap-1.19.4-337.jar//net.pl3x.map.render.Renderer.saveData(Renderer.java:73)
[09:53:21 WARN]: at Pl3xMap-1.19.4-337.jar//net.pl3x.map.render.ScanTask.lambda$scanRegion$3(ScanTask.java:122)
[09:53:21 WARN]: at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
[09:53:21 WARN]: at Pl3xMap-1.19.4-337.jar//net.pl3x.map.render.ScanTask.lambda$scanRegion$4(ScanTask.java:122)
[09:53:21 WARN]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[09:53:21 WARN]: at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[09:53:21 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[09:53:21 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[09:53:21 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[09:53:21 WARN]: Caused by: java.io.EOFException
[09:53:21 WARN]: at java.desktop/javax.imageio.stream.ImageInputStreamImpl.readInt(ImageInputStreamImpl.java:251)
[09:53:21 WARN]: at java.desktop/com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:723)
[09:53:21 WARN]: ... 16 more

Pl3xMap crashing 1.20.1 Mohist server (plugin)

Server fails to load Pl3xMap as a plugin. (I realised that Pl3xMap-Banners was only available as a plugin.)

[24Jun2023 18:01:20.769] [Server thread/ERROR] [Minecraft/]: Error occurred while enabling Pl3xMap v1.20.1-452 (Is it up to date?)
java.lang.NoSuchMethodError: 'net.minecraft.core.IdMap

Full log: https://pastebin.com/rZ4Qqf1c

Strange message and then crash

Hi! If i fullrenden my map (20k by 20k) i get this strange message:

[20:26:11 WARN]: java.lang.RuntimeException: java.io.EOFException: Unexpected end of ZLIB input stream
[20:26:11 WARN]: at Pl3xMap-1.19.4-332.jar//net.pl3x.map.render.builtin.BlockInfoRenderer.saveData(BlockInfoRenderer.java:118)
[20:26:11 WARN]: at Pl3xMap-1.19.4-332.jar//net.pl3x.map.render.ScanTask.lambda$scanRegion$3(ScanTask.java:122)
[20:26:11 WARN]: at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
[20:26:11 WARN]: at Pl3xMap-1.19.4-332.jar//net.pl3x.map.render.ScanTask.lambda$scanRegion$4(ScanTask.java:122)
[20:26:11 WARN]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[20:26:11 WARN]: at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[20:26:11 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[20:26:11 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[20:26:11 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[20:26:11 WARN]: Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
[20:26:11 WARN]: at java.base/java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:244)
[20:26:11 WARN]: at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
[20:26:11 WARN]: at java.base/java.util.zip.GZIPInputStream.read(GZIPInputStream.java:117)
[20:26:11 WARN]: at java.base/java.io.InputStream.readNBytes(InputStream.java:409)
[20:26:11 WARN]: at java.base/java.io.InputStream.readAllBytes(InputStream.java:346)
[20:26:11 WARN]: at Pl3xMap-1.19.4-332.jar//net.pl3x.map.util.FileUtil.readGzip(FileUtil.java:183)
[20:26:11 WARN]: at Pl3xMap-1.19.4-332.jar//net.pl3x.map.render.builtin.BlockInfoRenderer.saveData(BlockInfoRenderer.java:90)
[20:26:11 WARN]: ... 8 more

And then my server crashes. What is this?

Pl3xmap marker format

What is the marker file format like? I'm using the fabric version and I wanted to create some markers in the config/pl3xmap/markers folder for people's houses, but couldn't figure out the format from the code.

Error on boot

Hello, When attempting to boot my server with Pl3xMap-1.19.4-384 installed the console will give the following error on startup.
https://paste.helpch.at/bifofogegu.md

Then after that it will proceed to start spamming the following in console:
[22:29:15 WARN]: java.lang.ArrayIndexOutOfBoundsException

The server is running Pufferfish+ 1.19.4 build #54 with the following plugins installed:

  • Chunky v1.3.52
  • ChunkyBorder v1.1.42
  • Multiverse-Core v4.3.2
  • Pl3xMap v 1.19.4-394
  • ProtocolLib
  • Vault
  • WorldEdit v7.2.14
  • WorldGuard v7.0.8-beta-01

New heightmap which acts like vanilla & water/lava dithering added back

I would love it if you were able to implement a new heightmap that acts like vanilla
(or works exactly like the already implemented vanilla renderer just not a replica of the in-game vanilla map style)

So for example the shading would be from top/down like vanilla instead of the shading being left/right like the old school heightmap.
The heightmap could be called something like "vanilla" or "vanilla-esque" heightmap

Also it would be great if you added back the vanilla water/lava dithering which could be toggled per-dimension.
All of these features would epic af if you implement them, especially the last one (option for per-dimension heightmaps)



It would be interesting if you could add the ability to change the heightmap per-dimension because then you could add options like this

  minecraft:overworld:
    enabled: true
    dithering:
      water: true
      lava: false
    heightmap: overworld_vanilla_esque
    render:
      renderers:
        basic: overworld_basic
        night: overworld_night
        biomes: overworld_biomes
        inhabited: inhabited
        flowermap: flowermap
    ui:
      display-name: Overworld
      order: 0
  minecraft:the_nether:
    dithering:
      water: false
      lava: true
    heightmap: nether_modern
    render:
      renderers:
        basic: nether_basic
        night: nether_night
        biomes: nether_biomes
        inhabited: inhabited
      skylight: 0
    ui:
      display-name: The Nether
      order: 1
  minecraft:the_end:
    dithering:
      water: false
      lava: false
    heightmap: the_end_old_school
    render:
      renderers:
        basic: the_end_basic
        night: the_end_night
        biomes: the_end_biomes
        inhabited: inhabited
      skylight: 0
    ui:
      display-name: The End
      order: 2

[Fabric] Pl3xmap prevents server termination

On fabric, Pl3xmap prevents server termination
After all save handling has been done, the server will hang until killed

Steps to reproduce

Fresh fabric install, fabric API, and pl3xmap
Start server
Stop server
Server completes saving and hangs

Logs:
rhythmic@rhythmic-computer:~/Applications/fabric tests$ bash start.sh 
WARNING: Using incubator modules: jdk.incubator.vector
Starting net.fabricmc.loader.impl.game.minecraft.BundlerClassPathCapture
[13:38:04] [main/INFO]: Loading Minecraft 1.20.1 with Fabric Loader 0.14.21
[13:38:04] [main/WARN]: Warnings were found!
 - Mod 'Pl3xMap' (pl3xmap) 1.20.1-447 recommends any version of better-fabric-console, which is missing!
	 - You should install any version of better-fabric-console for the optimal experience.
[13:38:04] [main/INFO]: Loading 58 mods:
	- fabric-api 0.83.1+1.20.1
	   |-- fabric-api-base 0.4.29+b04edc7a77
	   |-- fabric-api-lookup-api-v1 1.6.34+4d8536c977
	   |-- fabric-biome-api-v1 13.0.10+b3afc78b77
	   |-- fabric-block-api-v1 1.0.9+e022e5d177
	   |-- fabric-blockrenderlayer-v1 1.1.39+b3afc78b77
	   |-- fabric-client-tags-api-v1 1.0.20+b3afc78b77
	   |-- fabric-command-api-v1 1.2.32+f71b366f77
	   |-- fabric-command-api-v2 2.2.11+b3afc78b77
	   |-- fabric-commands-v0 0.2.49+df3654b377
	   |-- fabric-containers-v0 0.1.61+df3654b377
	   |-- fabric-content-registries-v0 4.0.7+b3afc78b77
	   |-- fabric-convention-tags-v1 1.5.3+b3afc78b77
	   |-- fabric-crash-report-info-v1 0.2.18+aeb40ebe77
	   |-- fabric-data-generation-api-v1 12.1.11+b3afc78b77
	   |-- fabric-dimensions-v1 2.1.51+b3afc78b77
	   |-- fabric-entity-events-v1 1.5.21+b3afc78b77
	   |-- fabric-events-interaction-v0 0.6.0+b3afc78b77
	   |-- fabric-events-lifecycle-v0 0.2.61+df3654b377
	   |-- fabric-game-rule-api-v1 1.0.38+b04edc7a77
	   |-- fabric-item-api-v1 2.1.26+b3afc78b77
	   |-- fabric-item-group-api-v1 4.0.7+b3afc78b77
	   |-- fabric-key-binding-api-v1 1.0.36+fb8d95da77
	   |-- fabric-keybindings-v0 0.2.34+df3654b377
	   |-- fabric-lifecycle-events-v1 2.2.20+b3afc78b77
	   |-- fabric-loot-api-v2 1.1.37+b3afc78b77
	   |-- fabric-loot-tables-v1 1.1.41+9e7660c677
	   |-- fabric-message-api-v1 5.1.6+b3afc78b77
	   |-- fabric-mining-level-api-v1 2.1.47+b3afc78b77
	   |-- fabric-models-v0 0.3.35+b3afc78b77
	   |-- fabric-networking-api-v1 1.3.8+b3afc78b77
	   |-- fabric-networking-v0 0.3.48+df3654b377
	   |-- fabric-object-builder-api-v1 11.0.6+b3afc78b77
	   |-- fabric-particles-v1 1.0.28+b3afc78b77
	   |-- fabric-recipe-api-v1 1.0.18+b3afc78b77
	   |-- fabric-registry-sync-v0 2.2.6+b3afc78b77
	   |-- fabric-renderer-api-v1 3.0.1+b3afc78b77
	   |-- fabric-renderer-indigo 1.3.1+b3afc78b77
	   |-- fabric-renderer-registries-v1 3.2.44+df3654b377
	   |-- fabric-rendering-data-attachment-v1 0.3.33+b3afc78b77
	   |-- fabric-rendering-fluids-v1 3.0.26+b3afc78b77
	   |-- fabric-rendering-v0 1.1.47+df3654b377
	   |-- fabric-rendering-v1 3.0.6+b3afc78b77
	   |-- fabric-resource-conditions-api-v1 2.3.5+ea08f9d877
	   |-- fabric-resource-loader-v0 0.11.7+f7923f6d77
	   |-- fabric-screen-api-v1 2.0.6+b3afc78b77
	   |-- fabric-screen-handler-api-v1 1.3.27+b3afc78b77
	   |-- fabric-sound-api-v1 1.0.12+b3afc78b77
	   |-- fabric-transfer-api-v1 3.2.2+b3afc78b77
	   \-- fabric-transitive-access-wideners-v1 4.2.0+b3afc78b77
	- fabricloader 0.14.21
	- java 17
	- minecraft 1.20.1
	- pl3xmap 1.20.1-447
	   |-- adventure-platform-fabric 5.8.0
	   |    |-- net_kyori_adventure-api 4.13.0
	   |    |-- net_kyori_adventure-key 4.13.0
	   |    |-- net_kyori_adventure-platform-api 4.2.0
	   |    |-- net_kyori_adventure-text-logger-slf4j 4.13.0
	   |    |-- net_kyori_adventure-text-minimessage 4.13.0
	   |    |-- net_kyori_adventure-text-serializer-gson 4.13.0
	   |    |-- net_kyori_adventure-text-serializer-plain 4.13.0
	   |    |-- net_kyori_examination-api 1.3.0
	   |    \-- net_kyori_examination-string 1.3.0
	   \-- cloud 1.8.3
	        |-- cloud_commandframework_cloud-brigadier_ 1.8.3
	        |-- cloud_commandframework_cloud-core_ 1.8.3
	        |-- cloud_commandframework_cloud-services_ 1.8.3
	        |-- fabric-permissions-api-v0 0.2-SNAPSHOT
	        \-- io_leangen_geantyref_geantyref 1.3.13
[13:38:04] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=file:/home/rhythmic/Applications/fabric%20tests/libraries/net/fabricmc/sponge-mixin/0.12.5+mixin.0.8.5/sponge-mixin-0.12.5+mixin.0.8.5.jar Service=Knot/Fabric Env=SERVER
[13:38:04] [main/INFO]: Compatibility level set to JAVA_17
[13:38:08] [main/INFO]: XNIO version 3.8.8.Final
[13:38:08] [main/INFO]: XNIO NIO Implementation Version 3.8.8.Final
[13:38:09] [main/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[13:38:09] [main/INFO]: Found new data pack fabric, loading it automatically
[13:38:10] [main/INFO]: Loaded 7 recipes
[13:38:10] [main/INFO]: Loaded 1271 advancements
[13:38:10] [main/INFO]: Applied 0 biome modifications to 0 of 64 new biomes in 1.160 ms
[13:38:10] [Server thread/INFO]: Starting minecraft server version 1.20.1
[13:38:10] [Server thread/INFO]: Loading properties
[13:38:10] [Server thread/INFO]: Default game type: SURVIVAL
[13:38:10] [Server thread/INFO]: Generating keypair
[13:38:10] [Server thread/INFO]: Starting Minecraft server on *:25565
[13:38:10] [Server thread/INFO]: Using epoll channel type
[13:38:10] [Server thread/INFO]: Preparing level "world"
[13:38:15] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[13:38:16] [Worker-Main-6/INFO]: Preparing spawn area: 0%
[13:38:16] [Worker-Main-5/INFO]: Preparing spawn area: 0%
[13:38:16] [Worker-Main-5/INFO]: Preparing spawn area: 0%
[13:38:17] [Worker-Main-6/INFO]: Preparing spawn area: 1%
[13:38:17] [Worker-Main-2/INFO]: Preparing spawn area: 2%
[13:38:18] [Worker-Main-8/INFO]: Preparing spawn area: 4%
[13:38:18] [Worker-Main-2/INFO]: Preparing spawn area: 6%
[13:38:19] [Worker-Main-7/INFO]: Preparing spawn area: 9%
[13:38:19] [Worker-Main-3/INFO]: Preparing spawn area: 12%
[13:38:20] [Worker-Main-10/INFO]: Preparing spawn area: 16%
[13:38:20] [Worker-Main-8/INFO]: Preparing spawn area: 20%
[13:38:21] [Worker-Main-11/INFO]: Preparing spawn area: 23%
[13:38:21] [Worker-Main-7/INFO]: Preparing spawn area: 29%
[13:38:22] [Worker-Main-7/INFO]: Preparing spawn area: 32%
[13:38:22] [Worker-Main-10/INFO]: Preparing spawn area: 37%
[13:38:23] [Worker-Main-5/INFO]: Preparing spawn area: 42%
[13:38:23] [Worker-Main-5/INFO]: Preparing spawn area: 47%
[13:38:24] [Worker-Main-9/INFO]: Preparing spawn area: 54%
[13:38:24] [Worker-Main-4/INFO]: Preparing spawn area: 59%
[13:38:25] [Worker-Main-5/INFO]: Preparing spawn area: 65%
[13:38:25] [Worker-Main-1/INFO]: Preparing spawn area: 69%
[13:38:26] [Worker-Main-2/INFO]: Preparing spawn area: 75%
[13:38:26] [Worker-Main-2/INFO]: Preparing spawn area: 82%
[13:38:27] [Worker-Main-2/INFO]: Preparing spawn area: 88%
[13:38:27] [Worker-Main-10/INFO]: Preparing spawn area: 94%
[13:38:27] [Server thread/INFO]: Time elapsed: 12365 ms
[13:38:27] [Server thread/INFO]: Done (17.189s)! For help, type "help"
[13:38:28] [Server thread/INFO]: [Pl3xMap] [INFO] Internal webserver running on 0.0.0.0:8080
[13:38:28] [Server thread/INFO]: [Pl3xMap] [INFO] Platform: fabric
[13:38:28] [Server thread/INFO]: [Pl3xMap] [INFO] Version: 1.20.1-447
[13:38:50] [User Authenticator #1/INFO]: UUID of player RhythmicSystem is f899e56c-f741-4a92-a3d8-ee6f9ef05546
[13:38:50] [Server thread/INFO]: RhythmicSystem[/[0:0:0:0:0:0:0:1%0]:49478] logged in with entity id 263 at (-1.5, 71.0, -2.5)
[13:38:50] [Server thread/INFO]: RhythmicSystem joined the game
stop
[13:39:11] [Server thread/INFO]: Stopping the server
[13:39:11] [Server thread/INFO]: [Pl3xMap] [INFO] Internal webserver stopped
[13:39:11] [Server thread/INFO]: Stopping server
[13:39:11] [Server thread/INFO]: Saving players
[13:39:11] [Server thread/INFO]: Saving worlds
[13:39:11] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld
[13:39:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether
[13:39:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end
[13:39:23] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
[13:39:23] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[13:39:23] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[13:39:23] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
^C

(I kill with ctrl c, it's easiest)

An command error while using radiusrender

> map radiusrender world 100000 0 0

[15:19:49] [Server thread/INFO]: [Pl3xMap] Invalid command argument: '0' is not a valid location. Required format is '<x> <z>'

i didnot know how to use it, could u tell me why ?

Weird Cords

I was testing and noticed that the Z cords on the web interface were not loading correctly, the block name was also not working. On most blocks, it says x-value, ???, y-value, however, on some blocks, it says x-value, something like -1108541264, y-value. I deleted all the files, including the jar, and regenerated them, but the issue persisted.

image

Again a message and crash

07:52:46 WARN: at java.base/java.nio.Buffer.reset(Buffer.java:422)
07:52:46 WARN: at java.base/java.nio.ByteBuffer.reset(ByteBuffer.java:1555)
07:52:46 WARN: at Pl3xMap-1.19.4-333.jar//net.pl3x.map.render.builtin.BlockInfoRenderer.saveData(BlockInfoRenderer.java:93)
07:52:46 WARN: at Pl3xMap-1.19.4-333.jar//net.pl3x.map.render.ScanTask.lambda$scanRegion$3(ScanTask.java:122)
07:52:46 WARN: at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
07:52:46 WARN: at Pl3xMap-1.19.4-333.jar//net.pl3x.map.render.ScanTask.lambda$scanRegion$4(ScanTask.java:122)
07:52:46 WARN: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
07:52:46 WARN: at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
07:52:46 WARN: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
07:52:46 WARN: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
07:52:46 WARN: at java.base/java.lang.Thread.run(Thread.java:833)

Pl3xMap tries to save files with invalid filename characters on Windows

Obviously not an issue on Linux, but I was trying to run a quick test of Pl3xMap on Windows and ran into this.

The most obvious solution would be to avoid using : in file names entirely, since that would be more portable. Perhaps handle it similarly to how Mojang does with saving dimensions by their namespaced id (create subdirectories), or just replacing it with a valid character.

[01:35:02 INFO]: [Pl3xMap] Enabling Pl3xMap v1.19.2-269
[01:35:03 INFO]: [Pl3xMap] Internal webserver running on 0.0.0.0:8080
[01:35:03 ERROR]: Error occurred while enabling Pl3xMap v1.19.2-269 (Is it up to date?)
java.lang.IllegalStateException: Failed to save image 'pl3xmap:spawn'
        at net.pl3x.map.image.IconRegistry.register(IconRegistry.java:65) ~[Pl3xMap-1.19.2-269.jar:?]
        at net.pl3x.map.markers.layer.SpawnLayer.<init>(SpawnLayer.java:39) ~[Pl3xMap-1.19.2-269.jar:?]
        at net.pl3x.map.world.World.init(World.java:174) ~[Pl3xMap-1.19.2-269.jar:?]
        at net.pl3x.map.world.WorldRegistry.register(WorldRegistry.java:23) ~[Pl3xMap-1.19.2-269.jar:?]
        at net.pl3x.map.world.BukkitWorldRegistry.register(BukkitWorldRegistry.java:17) ~[Pl3xMap-1.19.2-269.jar:?]
        at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
        at net.pl3x.map.PaperPl3xMap.enable(PaperPl3xMap.java:166) ~[Pl3xMap-1.19.2-269.jar:?]
        at net.pl3x.map.PaperPl3xMap.onEnable(PaperPl3xMap.java:143) ~[Pl3xMap-1.19.2-269.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:542) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:565) ~[paper-1.19.2.jar:git-Paper-142]
        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:479) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:422) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:306) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1126) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305) ~[paper-1.19.2.jar:git-Paper-142]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.nio.file.InvalidPathException: Illegal char <:> at index 7: pl3xmap:spawn.png
        at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) ~[?:?]
        at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) ~[?:?]
        at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) ~[?:?]
        at sun.nio.fs.WindowsPath.parse(WindowsPath.java:92) ~[?:?]
        at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:232) ~[?:?]
        at java.nio.file.Path.resolve(Path.java:515) ~[?:?]
        at net.pl3x.map.image.IconRegistry.register(IconRegistry.java:62) ~[Pl3xMap-1.19.2-269.jar:?]
        ... 18 more
[01:35:03 INFO]: [Pl3xMap] Disabling Pl3xMap v1.19.2-269
[01:35:03 ERROR]: Error occurred while disabling Pl3xMap v1.19.2-269 (Is it up to date?)
java.lang.NullPointerException: Cannot invoke "java.util.concurrent.ScheduledFuture.cancel(boolean)" because "this.markersUpdater" is null
        at net.pl3x.map.world.World.stopMarkersTask(World.java:380) ~[Pl3xMap-1.19.2-269.jar:?]
        at net.pl3x.map.world.World.unload(World.java:437) ~[Pl3xMap-1.19.2-269.jar:?]
        at net.pl3x.map.world.WorldRegistry.unregister(WorldRegistry.java:53) ~[Pl3xMap-1.19.2-269.jar:?]
        at net.pl3x.map.world.WorldRegistry.unregister(WorldRegistry.java:12) ~[Pl3xMap-1.19.2-269.jar:?]
        at java.util.concurrent.ConcurrentHashMap$KeySetView.forEach(ConcurrentHashMap.java:4706) ~[?:?]
        at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092) ~[?:?]
        at net.pl3x.map.registry.Registry.unregister(Registry.java:76) ~[Pl3xMap-1.19.2-269.jar:?]
        at net.pl3x.map.PaperPl3xMap.disable(PaperPl3xMap.java:204) ~[Pl3xMap-1.19.2-269.jar:?]
        at net.pl3x.map.PaperPl3xMap.onDisable(PaperPl3xMap.java:148) ~[Pl3xMap-1.19.2-269.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:266) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:399) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:579) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:374) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:542) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugin(CraftServer.java:565) ~[paper-1.19.2.jar:git-Paper-142]
        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:479) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:422) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:306) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1126) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305) ~[paper-1.19.2.jar:git-Paper-142]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
[01:35:03 ERROR]: Encountered an unexpected exception
java.lang.NullPointerException: Cannot invoke "net.pl3x.map.cloud.commandframework.CommandTree$Node.getValue()" because the return value of "net.pl3x.map.cloud.commandframework.bukkit.BukkitCommand.namedNode()" is null
        at net.pl3x.map.cloud.commandframework.bukkit.BukkitCommand.getUsage(BukkitCommand.java:200) ~[Pl3xMap-1.19.2-269.jar:?]
        at org.bukkit.help.GenericCommandHelpTopic.<init>(GenericCommandHelpTopic.java:50) ~[paper-api-1.19.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_19_R1.help.SimpleHelpMap.initializeCommands(SimpleHelpMap.java:135) ~[paper-1.19.2.jar:git-Paper-142]
        at org.bukkit.craftbukkit.v1_19_R1.CraftServer.enablePlugins(CraftServer.java:493) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:636) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:422) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:306) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1126) ~[paper-1.19.2.jar:git-Paper-142]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:305) ~[paper-1.19.2.jar:git-Paper-142]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]

Error with custom web location

Using latest Spigot server on a Linux distro. with a custom location for the internal web server, I keep getting these kinds of error messages for files in that directory (markers). The directory has full read/write permission for everyone as well. Otherwise the plugin is running okay from what I can tell.

[XNIO-1 task-4/WARN]: java.nio.file.NoSuchFileException: /path_to_custom_location/web/tiles/HarMine3/markers/pl3xmap_players.json
[XNIO-1 task-4/WARN]: at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
[XNIO-1 task-4/WARN]: at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
[XNIO-1 task-4/WARN]: at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
[XNIO-1 task-4/WARN]: at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
[XNIO-1 task-4/WARN]: at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:148)
[XNIO-1 task-4/WARN]: at java.base/sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
[XNIO-1 task-4/WARN]: at java.base/java.nio.file.Files.readAttributes(Files.java:1851)
[XNIO-1 task-4/WARN]: at net.pl3x.map.core.httpd.HttpdServer.lambda$startServer$0(HttpdServer.java:59)
[XNIO-1 task-4/WARN]: at libs.io.undertow.server.handlers.resource.PathResourceManager.getFileResource(PathResourceManager.java:416)
[XNIO-1 task-4/WARN]: at libs.io.undertow.server.handlers.resource.PathResourceManager.getResource(PathResourceManager.java:240)
[XNIO-1 task-4/WARN]: at libs.io.undertow.server.handlers.resource.DefaultResourceSupplier.getResource(DefaultResourceSupplier.java:39)
[XNIO-1 task-4/WARN]: at libs.io.undertow.server.handlers.resource.ResourceHandler$1.handleRequest(ResourceHandler.java:205)
[XNIO-1 task-4/WARN]: at libs.io.undertow.server.Connectors.executeRootHandler(Connectors.java:393)
[XNIO-1 task-4/WARN]: at libs.io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:859)
[XNIO-1 task-4/WARN]: at libs.org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
[XNIO-1 task-4/WARN]: at libs.org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
[XNIO-1 task-4/WARN]: at libs.org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
[XNIO-1 task-4/WARN]: at libs.org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)
[XNIO-1 task-4/WARN]: at java.base/java.lang.Thread.run(Thread.java:833)

java.lang.RuntimeException: java.io.IOException: The requested operation cannot be performed on a file with a user-mapped section open

[12:07:30 WARN]: java.lang.RuntimeException: java.io.IOException: The requested operation cannot be performed on a file with a user-mapped section open
[12:07:30 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.util.FileUtil.write(FileUtil.java:155)
[12:07:30 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateMarkerData.lambda$parseLayers$0(UpdateMarkerData.java:67)
[12:07:30 WARN]: at java.base/java.util.concurrent.ConcurrentHashMap.forEach(ConcurrentHashMap.java:1603)
[12:07:30 WARN]: at java.base/java.util.Collections$UnmodifiableMap.forEach(Collections.java:1553)
[12:07:30 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateMarkerData.parseLayers(UpdateMarkerData.java:49)
[12:07:30 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateMarkerData.run(UpdateMarkerData.java:40)
[12:07:30 WARN]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[12:07:30 WARN]: at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
[12:07:30 WARN]: at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
[12:07:30 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[12:07:30 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[12:07:30 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[12:07:30 WARN]: Caused by: java.io.IOException: The requested operation cannot be performed on a file with a user-mapped section open
[12:07:30 WARN]: at java.base/sun.nio.ch.FileDispatcherImpl.truncate0(Native Method)
[12:07:30 WARN]: at java.base/sun.nio.ch.FileDispatcherImpl.truncate(FileDispatcherImpl.java:90)
[12:07:30 WARN]: at java.base/sun.nio.ch.FileChannelImpl.truncate(FileChannelImpl.java:437)
[12:07:30 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.util.FileUtil.write(FileUtil.java:150)
[12:07:30 WARN]: ... 11 more
[12:07:30 WARN]: java.lang.RuntimeException: java.io.IOException: The requested operation cannot be performed on a file with a user-mapped section open
[12:07:30 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.util.FileUtil.write(FileUtil.java:155)
[12:07:30 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateMarkerData.parseLayers(UpdateMarkerData.java:75)
[12:07:30 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateMarkerData.run(UpdateMarkerData.java:40)
[12:07:30 WARN]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[12:07:30 WARN]: at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
[12:07:30 WARN]: at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
[12:07:30 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[12:07:30 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[12:07:30 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[12:07:30 WARN]: Caused by: java.io.IOException: The requested operation cannot be performed on a file with a user-mapped section open
[12:07:30 WARN]: at java.base/sun.nio.ch.FileDispatcherImpl.truncate0(Native Method)
[12:07:30 WARN]: at java.base/sun.nio.ch.FileDispatcherImpl.truncate(FileDispatcherImpl.java:90)
[12:07:30 WARN]: at java.base/sun.nio.ch.FileChannelImpl.truncate(FileChannelImpl.java:437)
[12:07:30 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.util.FileUtil.write(FileUtil.java:150)
[12:07:30 WARN]: ... 8 more
[12:07:31 WARN]: java.lang.RuntimeException: java.io.IOException: The requested operation cannot be performed on a file with a user-mapped section open
[12:07:31 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.util.FileUtil.write(FileUtil.java:155)
[12:07:31 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateSettingsData.lambda$parseWorlds$2(UpdateSettingsData.java:104)
[12:07:31 WARN]: at java.base/java.util.concurrent.ConcurrentHashMap.forEach(ConcurrentHashMap.java:1603)
[12:07:31 WARN]: at java.base/java.util.Collections$UnmodifiableMap.forEach(Collections.java:1553)
[12:07:31 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateSettingsData.parseWorlds(UpdateSettingsData.java:74)
[12:07:31 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateSettingsData.parseSettings(UpdateSettingsData.java:146)
[12:07:31 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateSettingsData.run(UpdateSettingsData.java:31)
[12:07:31 WARN]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[12:07:31 WARN]: at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
[12:07:31 WARN]: at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
[12:07:31 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[12:07:31 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[12:07:31 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[12:07:31 WARN]: Caused by: java.io.IOException: The requested operation cannot be performed on a file with a user-mapped section open
[12:07:31 WARN]: at java.base/sun.nio.ch.FileDispatcherImpl.truncate0(Native Method)
[12:07:31 WARN]: at java.base/sun.nio.ch.FileDispatcherImpl.truncate(FileDispatcherImpl.java:90)
[12:07:31 WARN]: at java.base/sun.nio.ch.FileChannelImpl.truncate(FileChannelImpl.java:437)
[12:07:31 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.util.FileUtil.write(FileUtil.java:150)
[12:07:31 WARN]: ... 12 more
[12:07:31 WARN]: java.lang.RuntimeException: java.io.IOException: The requested operation cannot be performed on a file with a user-mapped section open
[12:07:31 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.util.FileUtil.write(FileUtil.java:155)
[12:07:31 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateSettingsData.parseSettings(UpdateSettingsData.java:151)
[12:07:31 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.task.UpdateSettingsData.run(UpdateSettingsData.java:31)
[12:07:31 WARN]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
[12:07:31 WARN]: at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
[12:07:31 WARN]: at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
[12:07:31 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[12:07:31 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[12:07:31 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[12:07:31 WARN]: Caused by: java.io.IOException: The requested operation cannot be performed on a file with a user-mapped section open
[12:07:31 WARN]: at java.base/sun.nio.ch.FileDispatcherImpl.truncate0(Native Method)
[12:07:31 WARN]: at java.base/sun.nio.ch.FileDispatcherImpl.truncate(FileDispatcherImpl.java:90)
[12:07:31 WARN]: at java.base/sun.nio.ch.FileChannelImpl.truncate(FileChannelImpl.java:437)
[12:07:31 WARN]: at Pl3xMap-1.19.2-314.jar//net.pl3x.map.util.FileUtil.write(FileUtil.java:150)
[12:07:31 WARN]: ... 8 more

Following a player doesn't work

  1. Open the web map while connected the map's server via Minecraft
  2. Click on the players tab and select yourself.
  3. Move around on the server.

After step 2, nothing happens except the player UI element you just clicked on changing color. I'd expect the map to focus on the player, but it doesn't scroll or move in any way.

During step 3, nothing happens either. I'd expect the map to scroll so the player stays in the middle of the screen, or at least so that the player can't move entirely offscreen.

The browser dev console shows no errors aside from the ones I mentioned in #153. This test was performed with build 423.

specific worlds

Hello,

I am trying to add only 1 of my worlds to load inside the web browser but for some reason there is no place I can edit it.
what do I have to do?

Pl3xMap 1.19.4-418 crashes when used on server via fabric

Hello, I'm trying to use the latest Pl3xMap on my server via Fabric.

However, it crashes a few seconds after the Preparing level "world" message is logged. This happens whenever I try to start the server, including the first time after installing the Pl3xMap jar.

The config/pl3xmap directory was created before the crash. I did not change any settings and did not spot any settings that looked wrong.

A config/pl3xmap/markers/minecraft:overworld directory was created and is empty.

The crash report

Plugin stops during server startup

Here is a copy of my server log of the issue area after i turned on debug mode in the config:

[Pl3xMap]: Enabling Pl3xMap v1.19.4-435

Console
07:45:00

at libs.org.simpleyaml.configuration.implementation.snakeyaml.lib.composer.Composer.composeNode(Composer.java:212) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.snakeyaml.lib.composer.Composer.composeValueNode(Composer.java:357) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.snakeyaml.lib.composer.Composer.composeMappingChildren(Composer.java:336) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.snakeyaml.lib.composer.Composer.composeMappingNode(Composer.java:311) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.snakeyaml.lib.composer.Composer.composeNode(Composer.java:212) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.snakeyaml.lib.composer.Composer.getNode(Composer.java:134) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.snakeyaml.lib.composer.Composer.getSingleNode(Composer.java:160) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.snakeyaml.lib.constructor.BaseConstructor.getSingleData(BaseConstructor.java:184) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.snakeyaml.lib.Yaml.loadFromReader(Yaml.java:477) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.snakeyaml.lib.Yaml.load(Yaml.java:430) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.SimpleYamlImplementation.load(SimpleYamlImplementation.java:72) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.implementation.SimpleYamlImplementation.load(SimpleYamlImplementation.java:57) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.file.YamlConfiguration.load(YamlConfiguration.java:134) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.file.YamlFile.load(YamlFile.java:579) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.file.YamlConfiguration.load(YamlConfiguration.java:272) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.file.YamlConfiguration.load(YamlConfiguration.java:199) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.file.YamlFile.load(YamlFile.java:542) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.file.YamlFile.loadWithComments(YamlFile.java:560) ~[Pl3xMap-1.19.4-435.jar:?]
at libs.org.simpleyaml.configuration.file.YamlFile.createOrLoadWithComments(YamlFile.java:615) ~[Pl3xMap-1.19.4-435.jar:?]
at net.pl3x.map.core.configuration.AbstractConfig.reload(AbstractConfig.java:55) ~[Pl3xMap-1.19.4-435.jar:?]
... 16 more

INFO
07:45:00

[Pl3xMap]: Disabling Pl3xMap v1.19.4-435
[Pl3xMap]: [DEBUG] Stopping tasks
[Pl3xMap]: [DEBUG] Stopping internal server
[Pl3xMap]: [WARN] An error occurred with the internal webserver
[Pl3xMap]: [DEBUG] Unregistering players
[Pl3xMap]: [DEBUG] Unregistering worlds
[Pl3xMap]: [DEBUG] Unregistering renderers
[Pl3xMap]: [DEBUG] Unregistering icons
[Pl3xMap]: [DEBUG] Unregistering heightmaps
[Pl3xMap]: [DEBUG] Unregistering tile image types

Only settings changed in the config is the web-address and port

NPE on map rendering.

Hi! I just installed the latest available build of Pl3xMap from actions, and upon rendering, my console gets spammed with this exact error. The error just keeps repeating for as long as a render is going. However, even after pausing the render, the error continues to spam. Fully disabling the plugin is the only way to stop it.

https://pastes.dev/4Y6oUAXDWn

Thinking about Folia?

I see that the squaremap is already adapted to Folia, but I think Pl3xmap does a lot better than the squaremap in some aspects, do you consider adapting Folia?

Map tiles occasionally all vanish until zoom/reload

When having pl3xmap open in the browser while a player is connected and moving around the world, occasionally all map tiles will vanish. When that happens, zooming (even by just one scroll wheel tick) or reloading the page will make the map tiles reappear.

It doesn't seem like this happens when no player is connected.

When this happens, the browser dev tools show multiple requests for map tiles where the server consistently responds with 0 bytes of content. The only headers set by the server are Connection: keep-alive, Content-length: 0 and Date: <actual date>.
pl3xmap_devtools

This happens in both Firefox and Chromium. It happens both with nginx proxying the requests, and when connecting directly to the pl3xmap web server.

Disabled dimensions automatically renders over time

Hi!

I disabled Nether and End dimensions to show on the map but over time renders queue both and execute a fullrender of them. Those dimensions are already pregenerated and are large (20K). How can I prevent it?

On the other hand, is there any option to set the render rate and to configure the render activators (player place/break a block...)

I'm using Pl3xMap-1.20.1-455 for Fabric.

Thanks!

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.