Comments (11)
Aha, this plugin does not (currently) support 1.12.2 worlds.
This error makes me believe that the way Minecraft saves signs has changed over the years.
If you could send the region file that caused this error to happen, I can have a look at it to see if I can make it work at some point! :)
Please just upload it directly to GitHub, as an attachment to a comment, instead of using a third-party upload site, like Google Drive, Mediafire, or Dropbox, or something.
from bluemapsignextractor.
I uploaded the one region file mentioned in the console logs. I am pretty sure they messed around with the file format again. The map itself goes back to 2014 and has been converted to new formats multiple times in the past.
from bluemapsignextractor.
I'm currently working on a bit of a rewrite of the plugin, and I'm noticing the file you sent has already been converted to a 1.20 world, so this issue is because this plugin isn't compatible with 1.20 worlds, and not because it isn't compatible with 1.12 worlds.
I had already kind of expected this, due to the newly added two-sided nature of signs.
This rewrite will add 1.20 support, and hopefully also all versions prior to that, all the way back to 1.13.
Nothing lower than that, though, as BlueMap itself doesn't support that either, so it wouldn't be possible to run this plugin on a 1.12 server, anyway.
from bluemapsignextractor.
I have added 1.20 support in the latest release, now! https://github.com/TechnicJelle/BlueMapSignExtractor/releases/tag/v1.0
Please try it out and let me know if it works for you!
If it does, please close the issue.
from bluemapsignextractor.
Sadly, I still get an error message.
I use papermc 1.20.4 and the new plugin version:
[18:14:26 INFO]: [BlueMapSignExtractor] Processing region r.1.-1.mca
[18:14:26 INFO]: [BlueMapSignExtractor] Processing region r.-2.5.mca
[18:14:27 WARN]: [BlueMapSignExtractor] Plugin BlueMapSignExtractor v1.0 generated an exception while executing task 25
java.lang.NullPointerException: Cannot read the array length because "<local3>" is null
at java.util.Collections.addAll(Collections.java:5867) ~[?:?]
at com.technicjelle.bluemapsignextractor.common.MCA.getBlockEntities(MCA.java:65) ~[BlueMapSignExtractor-1.0.jar:?]
at com.technicjelle.bluemapsignextractor.common.Core.processMCA(Core.java:37) ~[BlueMapSignExtractor-1.0.jar:?]
at com.technicjelle.bluemapsignextractor.common.Core.lambda$loadMarkers$1(Core.java:23) ~[BlueMapSignExtractor-1.0.jar:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
at java.util.Iterator.forEachRemaining(Iterator.java:133) ~[?:?]
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
at com.technicjelle.bluemapsignextractor.common.Core.loadMarkers(Core.java:23) ~[BlueMapSignExtractor-1.0.jar:?]
at com.technicjelle.bluemapsignextractor.BlueMapSignExtractor.lambda$new$0(BlueMapSignExtractor.java:42) ~[BlueMapSignExtractor-1.0.jar:?]
at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.20.4.jar:git-Paper-350]
at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.20.4.jar:git-Paper-350]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.20.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:1583) ~[?:?]
from bluemapsignextractor.
Okay, so I tried out that MCA file you sent earlier again, and it seems like a few of the signs there had not been properly upgraded, so the parser was expecting them to be in the new 1.20 format, while they were still in the old format, stemming from 1.13.
Normal 1.13 | Normal 1.20 | Yours |
---|---|---|
I have now fixed that issue, by making it try to parse it in the old way, when the proper new way doesn't work.
However I believe this NullPointerException is actually another issue altogether...
I have now added more logging to the plugin, so please download the newest build from here, and try it again.
(Click on artifact to download a zip. Inside that zip will be the plugin JAR file that you need to use.)
It should log a lot more information. Please send all that log, plus (one of) the MCA file(s) that the error happens in.
from bluemapsignextractor.
Sorry for creating more work for you, thank you for your efforts! This a very old map that went through many different versions and upgrade over the years, I think it dates back to 2014.
So far the new parsing methods seems to work, an example here:
[23:42:08 INFO]: [BlueMapSignExtractor] Processing region r.-19.-11.mca
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":"Tod langweiliger"}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
Tod langweiliger
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":"Tod langweiliger"}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
Tod langweiliger
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":"Tod langweiliger"}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
Tod langweiliger
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":"Tod langweiliger"}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
Tod langweiliger
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":"Brunnen"}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
Brunnen
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":"08.01.2017"}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
08.01.2017
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":"R & S"}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
R & S
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":""}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":""}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":""}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Could not parse sign text in the expected 1.20 format, due to a GSON/JSON UnsupportedOperationException on Sign Text:
{"text":""}
Trying to parse as old format...
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] Successfully parsed as old format:
As you expected, there still is another issue regarding chunkBlockEntities:
[23:42:10 INFO]: [BlueMapSignExtractor] Processing region r.-98.8.mca
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] no block entities found here
[23:42:10 ERROR]: [BlueMapSignExtractor] Error reading region file
java.io.IOException: chunkBlockEntities was null in chunk 0, 0 in region file /opt/papermc/karte2/region/r.-98.8.mca
Chunk class: MC_1_20_4_Chunk
Chunk data version: 3578
at com.technicjelle.bluemapsignextractor.common.MCA.getBlockEntities(MCA.java:69) ~[BlueMapSignExtractor-1.1-SNAPSHOT.jar:?]
at com.technicjelle.bluemapsignextractor.common.Core.processMCA(Core.java:37) ~[BlueMapSignExtractor-1.1-SNAPSHOT.jar:?]
at com.technicjelle.bluemapsignextractor.common.Core.lambda$loadMarkers$1(Core.java:23) ~[BlueMapSignExtractor-1.1-SNAPSHOT.jar:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
at java.util.Iterator.forEachRemaining(Iterator.java:133) ~[?:?]
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
at com.technicjelle.bluemapsignextractor.common.Core.loadMarkers(Core.java:23) ~[BlueMapSignExtractor-1.1-SNAPSHOT.jar:?]
at com.technicjelle.bluemapsignextractor.BlueMapSignExtractor.lambda$new$0(BlueMapSignExtractor.java:41) ~[BlueMapSignExtractor-1.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.20.4.jar:git-Paper-350] at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.20.4.jar:git-Paper-350]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.20.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:1583) ~[?:?]
[23:42:10 INFO]: [BlueMapSignExtractor] Processing region r.-2.5.mca
[23:42:10 ERROR]: [BlueMapSignExtractor] [STDERR] no block entities found here
[23:42:10 ERROR]: [BlueMapSignExtractor] Error reading region file
java.io.IOException: chunkBlockEntities was null in chunk 19, 20 in region file /opt/papermc/karte2_nether/DIM-1/region/r.-2.5.mca
Chunk class: MC_1_20_4_Chunk
Chunk data version: 3578
at com.technicjelle.bluemapsignextractor.common.MCA.getBlockEntities(MCA.java:69) ~[BlueMapSignExtractor-1.1-SNAPSHOT.jar:?]
at com.technicjelle.bluemapsignextractor.common.Core.processMCA(Core.java:37) ~[BlueMapSignExtractor-1.1-SNAPSHOT.jar:?]
at com.technicjelle.bluemapsignextractor.common.Core.lambda$loadMarkers$1(Core.java:23) ~[BlueMapSignExtractor-1.1-SNAPSHOT.jar:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:?]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?]
at java.util.Iterator.forEachRemaining(Iterator.java:133) ~[?:?]
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[?:?]
at com.technicjelle.bluemapsignextractor.common.Core.loadMarkers(Core.java:23) ~[BlueMapSignExtractor-1.1-SNAPSHOT.jar:?]
at com.technicjelle.bluemapsignextractor.BlueMapSignExtractor.lambda$new$0(BlueMapSignExtractor.java:41) ~[BlueMapSignExtractor-1.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.20.4.jar:git-Paper-350] at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.20.4.jar:git-Paper-350]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.20.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:1583) ~[?:?]
I attached the region files:
regionfiles.zip
Edit: uploaded region from wrong dimension earlier, now fixed
from bluemapsignextractor.
I'm glad to see that the parsing fix works!
I'll look into the chunkBlockEntities problem this weekend!
Thanks for the logs and the files!
And thanks for giving me the opportunity to improve my plugin for everyone! I don't mind the extra work if it ends up in a better tool :)
from bluemapsignextractor.
Aha! I think I've found out why it doesn't work on those chunks!
[-98, 8] | [-2, 5] |
---|---|
They're simply just not done being generated, yet!
I'll add a check to make sure every chunk that gets processed is actually done generating!
from bluemapsignextractor.
I've now released the fixes to both the problems you were having!
https://github.com/TechnicJelle/BlueMapSignExtractor/releases/tag/v1.1
Please try it out and let me know if it all works properly again!
from bluemapsignextractor.
Edit: Opened a new issue #20
from bluemapsignextractor.
Related Issues (17)
- Display double-sided signs better
- Create config file HOT 6
- Fabric version
- Support all the different sign materials
- Check if Hanging Signs work HOT 1
- Not fully fixed: chunkBlockEntities was null HOT 5
- Create automated tests HOT 1
- Log better info message when DataVersion is too low
- Get world folder in a different way than from the BlueMap API
- Out of memory for 100+ GB map HOT 6
- Exception while collecting markers HOT 13
- Make pretty HOT 1
- Allow custom filtering rules to be configured HOT 13
- Ignore blank signs HOT 1
- Update markers every once in a while (+cache) HOT 3
- Failed to load addon 'plugins\BlueMap\addons\BlueMapSignExtractor-1.3.jar' HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bluemapsignextractor.