IntellectualSites / FastAsyncWorldEdit

Blazingly fast world manipulation for artists, builders and everyone else: https://www.spigotmc.org/resources/13932/
Other
616 stars 225 forks source link

FAWE error and visual bug when clearing a plot with latest Tuinity build #979

Closed SecretlyJealous closed 3 years ago

SecretlyJealous commented 3 years ago

Server Implementation

Tuinity

Server Version

1.16.5

Describe the bug

A recent commit in Tuinity makes /plot clear throw an error in console when using FAWE and the changes don't appear until you relog. This is the build: https://ci.codemc.io/job/Spottedleaf/job/Tuinity/202/ The console throws this error when using /plot clear: https://haste.athion.net/tariwalate.md and the feedback in game says that the plot clear has been completed but you need to rejoin the server to visually see that the plot clear has been completed

To Reproduce

  1. Use this build of Tuinity: https://ci.codemc.io/job/Spottedleaf/job/Tuinity/202/
  2. Use the latest FAWE build: https://ci.athion.net/job/FastAsyncWorldEdit-1.16/626/
  3. Do /plot clear

Expected behaviour

The plot clear should not throw any errors in console and you should not have to relog to see the changes

Screenshots / Videos

No response

Error log (if applicable)

No response

Fawe Debugpaste

https://haste.athion.net/tariwalate.md

Fawe Version

FastAsyncWorldEdit-1.16-626

LaurenceBarnes commented 3 years ago

that changes sometimes don't appear before you relog is not unusual though, it happened before definitely and was reported

EDIT: Does not mean it is not a bug

NotMyFault commented 3 years ago

Tested with the named versions, cannot replicate. I assume you have large plots and a low view distance failing to resend chunks properly. Attaching a /plot debugpaste can help looking into that further to recreate it in a closer env.

Malfrador commented 3 years ago

Same issue here, but in a normal world without PlotSquared.

Only happens when edits are outside the view distance. Tried it with no tick view-distance 16 as well as 32, as soon as the edits are outside of the player's view distance the error appears. The edit itself works fine though. I am using Purpur, build 1014, which includes Tuinity patches.

Its very likely related to Tuinitys changes to the player chunk loading which removed the playerViewDistanceNoTickMap. I don't know what FAWE is exactly doing here, but if its just resending chunks, calling playerChunkManager#updatePlayer() on Tuinity (+Forks) instead would solve the issue and has the same result.

If you don't want to support Tuinity, thats fine as well. Its not really a major issue as it only affects very large edits and is easily fixed by just flying away and loading the chunks again.

LaurenceBarnes commented 3 years ago

No, it is not related to Tuinity (only) at all. This bug has existed before, really similar to #847

SecretlyJealous commented 3 years ago

Tested with the named versions, cannot replicate. I assume you have large plots and a low view distance failing to resend chunks properly. Attaching a /plot debugpaste can help looking into that further to recreate it in a closer env.

Here's my worlds.yml: https://haste.athion.net/xorijodasu.cs paper.yml: https://haste.athion.net/exoqoxosox.coffeescript In server.properties the view-distance is set to 4

hastebin
hastebin
NotMyFault commented 3 years ago

Tested with the named versions, cannot replicate. I assume you have large plots and a low view distance failing to resend chunks properly. Attaching a /plot debugpaste can help looking into that further to recreate it in a closer env.

Here's my worlds.yml: https://haste.athion.net/xorijodasu.cs paper.yml: https://haste.athion.net/exoqoxosox.coffeescript In server.properties the view-distance is set to 4

hastebin

hastebin

As assumed; giant plots (505x505) and a very low view distance which may not allow resending all data properly.

hastebin
hastebin
andris155 commented 3 years ago

I have same problem.

jewome62 commented 3 years ago

I confirm the bug but no only plotsquared

If player make a command on a no-tick chunk

[16:02:23 WARN]: java.lang.NoSuchFieldError: playerViewDistanceNoTickMap
[16:02:23 WARN]:        at com.boydti.fawe.bukkit.adapter.mc1_16_5.BukkitAdapter_1_16_5.sendChunk(BukkitAdapter_1_16_5.java:223)
[16:02:23 WARN]:        at com.boydti.fawe.bukkit.adapter.mc1_16_5.BukkitGetBlocks_1_16_5.send(BukkitGetBlocks_1_16_5.java:692)
[16:02:23 WARN]:        at com.boydti.fawe.bukkit.adapter.mc1_16_5.BukkitGetBlocks_1_16_5.lambda$call$7(BukkitGetBlocks_1_16_5.java:629)
[16:02:23 WARN]:        at com.boydti.fawe.bukkit.adapter.mc1_16_5.BukkitGetBlocks_1_16_5.call(BukkitGetBlocks_1_16_5.java:669)
[16:02:23 WARN]:        at com.boydti.fawe.beta.implementation.chunk.ChunkHolder.call(ChunkHolder.java:938)
[16:02:23 WARN]:        at com.boydti.fawe.beta.implementation.chunk.ChunkHolder.call(ChunkHolder.java:920)
[16:02:23 WARN]:        at com.boydti.fawe.beta.implementation.chunk.ChunkHolder.call(ChunkHolder.java:33)
[16:02:23 WARN]:        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[16:02:23 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[16:02:23 WARN]:        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[16:02:23 WARN]:        at java.base/java.lang.Thread.run(Thread.java:834)**