IntellectualSites / IntellectualSites/Plot2Dynmap

Rate limited as not using plotsquared UUID cache

Open
#89 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Requires Testing
Dominant language
Java
Stars
8
Forks
6
Avg merge
1m
Merged PRs (30d)
3

Description

Server Implementation

Paper

Server Version

1.18.2

Describe the bug

The Plot2Dynmap is not using PlotSquared's UUID cache, and seems to be doing them separate, which causes failure by being rate limited, this is not good for many reasons, so the plugin never loads all plots onto Dynmap either.

https://cmap.piratemc.com/

[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: [PlotSquared/UUIDPipeline] (UUID) Request for 17e45a64-6b9f-3f9c-99c8-ae4f767f1848 timed out. Rate limit.
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: java.lang.NullPointerException: Cannot invoke "java.lang.CharSequence.toString()" because "replacement" is null
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: 	at java.base/java.lang.String.replace(String.java:2956)
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: 	at Plot2Dynmap-6.0.3.jar//com.plotsquared.plot2dynmap.Plot2DynmapPlugin.formatInfoWindow(Plot2DynmapPlugin.java:64)
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: 	at Plot2Dynmap-6.0.3.jar//com.plotsquared.plot2dynmap.Plot2DynmapPlugin.handlePlot(Plot2DynmapPlugin.java:179)
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: 	at Plot2Dynmap-6.0.3.jar//com.plotsquared.plot2dynmap.Plot2DynmapPlugin.run(Plot2DynmapPlugin.java:273)
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: 	at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftTask.run(CraftTask.java:101)
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: 	at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57)
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: 	at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22)
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[17:06:12] [Craft Scheduler Thread - 19 - Plot2Dynmap/WARN]: 	at java.base/java.lang.Thread.run(Thread.java:833)
To Reproduce
  1. Install plot2dynmap & dynmap
  2. Have a lot of plots and use the plugin...
Expected behaviour

To use the existing cache and not get rate limited by mojang.

Screenshots / Videos

https://cmap.piratemc.com/

Error log (if applicable)

No response

Plot Debugpaste

https://athion.net/ISPaster/paste/view/8fc9247a4c6d451598719bd1ae6e41f3

Plot2Dynmap Version

6.0.3

Checklist
Anything else?

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in Plot2DynmapPlugin.formatInfoWindow at line 64 and follow handlePlot at line 179, where the stack trace shows the UUID lookup result is used. Compare the plugin's lookup path with PlotSquared's existing UUID cache and verify that processing many plots no longer triggers rate-limit failures or the reported NullPointerException.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.