TownyAdvanced / MapTowny

A Towny add-on Bukkit plugin that enables towns to show up on a web-map.
MIT License
15 stars 17 forks source link

NullPointerException while render town #27

Closed ipiepiepie closed 1 year ago

ipiepiepie commented 2 years ago

Describe the Bug

Everytime when plugin render towns, it sends a NullPointerException in console. It doesn't breaks map, but I think that this problem cancells WorldRenderTownEvent, so I can't listen it in my plugin :(

System, Java, Server and Plugin Version

System: Windows 10 Java: Java 17 (OpenJDK 64-Bit Server VM 17.0.1+12-39) Server: Paper version git-Paper-794 (MC: 1.16.5) Plugin: MapTowny-2.0.0 Towny Version: Towny-0.98.2.0 Dynmap Version: Dynmap-3.4-beta-4-spigot

Console output

[01:50:47] [Craft Scheduler Thread - 65/WARN]: [MapTowny] Plugin MapTowny v2.0.0 generated an exception while executing task 8338
java.lang.NullPointerException: Cannot invoke "org.dynmap.markers.Marker.setDescription(String)" because "marker" is null
    at me.silverwolfg11.maptowny.platform.dynmap.DynmapLayerWrapper.addIconMarker(DynmapLayerWrapper.java:134) ~[?:?]
    at me.silverwolfg11.maptowny.managers.TownyLayerManager.renderTown(TownyLayerManager.java:276) ~[?:?]
    at me.silverwolfg11.maptowny.tasks.RenderTownsTask.lambda$null$0(RenderTownsTask.java:60) ~[?:?]
    at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
    at me.silverwolfg11.maptowny.tasks.RenderTownsTask.lambda$run$1(RenderTownsTask.java:60) ~[?:?]
    at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:101) ~[patched_1.16.5.jar:git-Paper-794]
    at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) ~[patched_1.16.5.jar:git-Paper-794]
    at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.16.5.jar:git-Paper-794]
    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) [?:?]
ipiepiepie commented 2 years ago

Checked your code and recognized, that this expetion throws after calling WorldRenderTownEvent event, so this problem didn't affects on this event. But the fact remains, the plugin still sends an error when trying to render towns

silverwolfg11 commented 1 year ago

It seems like Dynmap is unable to create the icon marker for the town for whatever reason. You said your plugin uses the WorldRenderTownEvent? Does this exception still get thrown even without your plugin?

ipiepiepie commented 1 year ago

It seems like Dynmap is unable to create the icon marker for the town for whatever reason. You said your plugin uses the WorldRenderTownEvent? Does this exception still get thrown even without your plugin?

Yes, this bug appeared after MapTowny installation and was spamming to console before I installed my plugin, that uses WorldRenderTownEvent

LlmDl commented 1 year ago

This was spotted by a couple discord users, one of which said it disappeared when they downgraded to an older version:

[15:23:00] [Craft Scheduler Thread - 115/WARN]: [MapTowny] Plugin MapTowny v2.0.0 generated an exception while executing task 3225226
java.lang.NullPointerException: Cannot invoke "org.dynmap.markers.Marker.setDescription(String)" because "marker" is null
        at me.silverwolfg11.maptowny.platform.dynmap.DynmapLayerWrapper.addIconMarker(DynmapLayerWrapper.java:134) ~[maptowny-2.0.0.jar:?]
        at me.silverwolfg11.maptowny.managers.TownyLayerManager.renderTown(TownyLayerManager.java:276) ~[maptowny-2.0.0.jar:?]
        at me.silverwolfg11.maptowny.tasks.RenderTownsTask.lambda$null$0(RenderTownsTask.java:60) ~[maptowny-2.0.0.jar:?]
        at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
        at me.silverwolfg11.maptowny.tasks.RenderTownsTask.lambda$run$1(RenderTownsTask.java:60) ~[maptowny-2.0.0.jar:?]
        at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:81) ~[minecraft_server.jar:3096a-Spigot-9fb885e-af1a232]
        at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) [minecraft_server.jar:3096a-Spigot-9fb885e-af1a232]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
        at java.lang.Thread.run(Thread.java:831) [?:?]
silverwolfg11 commented 1 year ago

This should be fixed in the latest release v2.0.1, but let me know if it's not and I'll re-open this issue.