fa69c79160
lock when editing the chunks cache in SingletThreadQueueExtent - Long2ObjectLinkedOpenHashMap is not thread-safe and should not be used from multiple threads at once - Fixes#851dordsor212021-01-14 15:42:38 +00:00
3136fb460b
Revert "actually delegate in AbstractDelegateExtent"
dordsor212021-01-14 14:39:50 +00:00
761d05ac19
actually delegate in AbstractDelegateExtent fixes#843dordsor212021-01-14 14:38:37 +00:00
af34bd4e57
the material seems to hold state data for some reason. - This requires a more complicated fix. Reverting this change for now
dordsor212021-01-14 13:42:37 +00:00
54712e268a
Synchronize access to Bukkit#createBlockData to prevent occasional ConcurrentModification exceptions - This isn't actually used anymore given the previous commit, however it's still best to keep it safe.
dordsor212021-01-14 12:47:02 +00:00
5e1289494e
Delegate to blocktype for obtaining a BlockState's material
dordsor212021-01-14 12:45:11 +00:00
fd1ed63703
Don't confirm twice every time - I channelled my inner Jesse on this one.
dordsor212021-01-13 23:50:29 +00:00
05d7558873
Don't print stack trace of FaweExceptions from submitted chunks Addresses #353dordsor212021-01-13 20:30:22 +00:00
be9866ddb3
Fix a lot of FAWE-freezing properly - Add a "loadPrivately" method to be used when GetChunks are called to avoid synchronocity issues with super classes being used on different threads - Synchronise the call method so we're not attempting to call whilst also loading/updating
dordsor212021-01-13 19:02:51 +00:00
e94e3b7b05
Only forcefully submit a chunk if we hold the monitor. - Properly ensures we don't try to submit chunks that already have a monitor (prevent the FAWE-freezing) - We can't detect if "no" threads hold the chunk's monitor, but equally that would also be kinda very bad practice.
dordsor212021-01-13 18:17:18 +00:00
eaa9872294
Revert this for now as it had unintended consquences
dordsor212021-01-13 17:36:50 +00:00
97209d5680
better locking of lighting and use correct method for relight without removing first Fixes#847dordsor212021-01-13 17:24:14 +00:00
b066ca8349
only relight blocks that have light
dordsor212021-01-13 17:10:08 +00:00
b1e8c6c3ba
Synchronizing on accessing a lock is pointless.
dordsor212021-01-13 17:09:44 +00:00
74a2f02003
put MCEdit before sponge and query by file extension.
dordsor212021-01-11 16:02:50 +00:00
ddb41a9669
With "queueing" enabled, FAWE may start attempting to place chunks before the operation is finished. This is unnacceptable for recursive operations, thus the queue should be disable in these cases Fixes#842dordsor212021-01-11 15:06:55 +00:00
fa8660c7a9
More verbosely check for "scaled" in AffineTransform and override all required methods in BlockTransformExtent - fixes#462dordsor212021-01-11 14:21:56 +00:00
5903178c53
Fix rotate/flip applying in the wrong order - pretty cheat fix, but it reverts to legacy FAWE behaviour
dordsor212021-01-11 13:18:24 +00:00
febf5b0175
Slight change to wna caching - We don't want to flush if we're setting from the main thread, as that's going to be another plugin doing it - It's better to have a concurrent error thrown than use a concurrent set, so concurrency issues can actually be fixed rather than handled unsafely - Only send chunk packets up to once a tick (it really doesn't use any memory to cache IntPairs).
dordsor212021-01-10 17:11:55 +00:00
278e9d5991
Set source masks that include the editsession's allowed regions to ForwardExtentCopies Fixes#710dordsor212021-01-10 14:59:21 +00:00
edc7e9028b
disableQueue stops buffering, switch to enableQueue to buffer when "//move"ing fixes#738dordsor212021-01-10 13:22:47 +00:00
bd079421a3
fix wna/loading on non-paper servers
dordsor212021-01-10 12:37:41 +00:00
aab9958932Fixes#221 If WE wants to add it as well, it's up to them. I asked but wiz was hostile about it.
dordsor212021-01-09 21:52:50 +00:00
6f0180447f
Don't ParallelQueueExtent if the editsession is created on the main thread.
dordsor212021-01-09 17:48:57 +00:00
31542ed4fa
Add 3D biomes to clipboards properly - Also fix disk clipboard's size check, allowing for larger clipboards but with disabled biomes
dordsor212021-01-09 16:40:41 +00:00
e40e86df5f
Add some more __internal__ <-> air logi Fixes#831dordsor212021-01-06 16:40:28 +00:00
336b90be15
Also fix CPUOptimizedClipboard
dordsor212021-01-06 13:39:25 +00:00
280ade9994
fix NBT in memory optimized clipboard
dordsor212021-01-06 13:29:52 +00:00
91de441403
No need to check WorldEdit schematics for bad entities
dordsor212021-01-05 17:21:35 +00:00
6db588a19f
Don't allow FAWE to "deadlock" itself when post-processing history by switching to the primary ForkJoinPool - With enough chunks waiting to write to history, it's possible to fill the secondary fork pool up with locked threads, and thus prevent any threads from actually writing their history.
dordsor212021-01-05 16:42:53 +00:00
89cc2f9d9f
Large memory use reduction when PostProcessing history
dordsor212021-01-05 15:03:47 +00:00
7c174ee6b3
Return to static "sections" in CharBlocks. - Synchronise (lock) outside the static object - Reduces object creation
dordsor212021-01-05 13:51:26 +00:00
efcca5b66f
it's better not to bother with tickets to avoid tickets not being removed all the time
dordsor212021-01-01 19:49:11 +00:00
580cb4a91e
add chunk tickets and don't force sync sending chunk packets
dordsor212021-01-01 18:04:30 +00:00
39b0da2b99
we do want to synchronise across the chunk when loading sections
dordsor212021-01-01 17:19:14 +00:00
42346b429b
Don't synchronise across the entire edit for a single ChunkSection load (speed boost)
dordsor212021-01-01 16:48:17 +00:00
606cfa5cbc
we don't need to "update" when copying sections
dordsor212021-01-01 16:07:57 +00:00
fbfe3221d7
Fix fast schematic reader/writer - Have both sponge and fast r/w available but default to "fast" - Correctly "offset" entities in the schematic, and add a legacy mode for loading old FAWE schematics with entities required. - Lazily reading means it's read in order of appearance in the inputstream so we need to read schematic version first (skip past everything) and then reset the stream. Fixes#740 - Add an FAWEVersion to the metadata - Correctly actually return a BlockArrayClipboard when required. Fixes#454dordsor212021-01-01 15:01:35 +00:00
7444c643a1
Switch to IncendoPaster "library"
dordsor212020-12-19 16:18:57 +00:00
e08fda0ac2
cache the correct number of blocks for FAWE fixes#747dordsor212020-12-17 22:06:32 +00:00
e8f0c0e6ea
allow count to access "full" chunks if counting air
dordsor212020-12-17 22:05:32 +00:00
884ec322b8
Ensure chunk sections are reloaded for every edit/chunk read Add an option for force-reloading the cached chunk sections when a layer is updated
dordsor212020-12-17 22:04:49 +00:00