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#851
dordsor21
2021-01-14 15:42:38 +00:00
3034419918
Send before history is safe
dordsor21
2021-01-14 14:48:13 +00:00
3136fb460b
Revert "actually delegate in AbstractDelegateExtent"
dordsor21
2021-01-14 14:39:50 +00:00
761d05ac19
actually delegate in AbstractDelegateExtent fixes#843
dordsor21
2021-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
dordsor21
2021-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.
dordsor21
2021-01-14 12:47:02 +00:00
5e1289494e
Delegate to blocktype for obtaining a BlockState's material
dordsor21
2021-01-14 12:45:11 +00:00
fd1ed63703
Don't confirm twice every time - I channelled my inner Jesse on this one.
dordsor21
2021-01-13 23:50:29 +00:00
05d7558873
Don't print stack trace of FaweExceptions from submitted chunks Addresses #353
dordsor21
2021-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
dordsor21
2021-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.
dordsor21
2021-01-13 18:17:18 +00:00
eaa9872294
Revert this for now as it had unintended consquences
dordsor21
2021-01-13 17:36:50 +00:00
97209d5680
better locking of lighting and use correct method for relight without removing first Fixes#847
dordsor21
2021-01-13 17:24:14 +00:00
b066ca8349
only relight blocks that have light
dordsor21
2021-01-13 17:10:08 +00:00
b1e8c6c3ba
Synchronizing on accessing a lock is pointless.
dordsor21
2021-01-13 17:09:44 +00:00
b4d7562b87
Looks like automagical relighting (#838)
dordsor21
2021-01-11 19:29:16 +00:00
74a2f02003
put MCEdit before sponge and query by file extension.
dordsor21
2021-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#842
dordsor21
2021-01-11 15:06:55 +00:00
fa8660c7a9
More verbosely check for "scaled" in AffineTransform and override all required methods in BlockTransformExtent - fixes#462
dordsor21
2021-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
dordsor21
2021-01-11 13:18:24 +00:00
0b727d9760
Fix for OPs when "not in a region"
dordsor21
2021-01-10 18:51:07 +00:00
831c6f6854
fix NPE with null sourcemask on move
dordsor21
2021-01-10 17:36:41 +00:00
846443291f
allowed regions can be null
dordsor21
2021-01-10 17:14:40 +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).
dordsor21
2021-01-10 17:11:55 +00:00
278e9d5991
Set source masks that include the editsession's allowed regions to ForwardExtentCopies Fixes#710
dordsor21
2021-01-10 14:59:21 +00:00
edc7e9028b
disableQueue stops buffering, switch to enableQueue to buffer when "//move"ing fixes#738
dordsor21
2021-01-10 13:22:47 +00:00
bd079421a3
fix wna/loading on non-paper servers
dordsor21
2021-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.
dordsor21
2021-01-09 21:52:50 +00:00
6bc3dd2293
Fix wna when used internally
dordsor21
2021-01-09 21:27:55 +00:00
6f0180447f
Don't ParallelQueueExtent if the editsession is created on the main thread.
dordsor21
2021-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
dordsor21
2021-01-09 16:40:41 +00:00
91de441403
No need to check WorldEdit schematics for bad entities
dordsor21
2021-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.
dordsor21
2021-01-05 16:42:53 +00:00
89cc2f9d9f
Large memory use reduction when PostProcessing history
dordsor21
2021-01-05 15:03:47 +00:00
7c174ee6b3
Return to static "sections" in CharBlocks. - Synchronise (lock) outside the static object - Reduces object creation
dordsor21
2021-01-05 13:51:26 +00:00
aece0229c4
Properly repeat extents for negative coordinates (#825)
Hannes Greule
2021-01-05 14:01:11 +01:00
bfd04e4155
Revert "~1/3 faster history writing with small caching"
dordsor21
2021-01-05 00:50:26 +00:00
836b7a9750
~1/3 faster history writing with small caching
dordsor21
2021-01-04 21:25:29 +00:00
3f0b9a2a92
Reorder BuildInClipboardFormat and document changed JNBT classes (#807)
Alexander Söderberg
2021-01-04 19:18:23 +01:00
efcca5b66f
it's better not to bother with tickets to avoid tickets not being removed all the time
dordsor21
2021-01-01 19:49:11 +00:00
580cb4a91e
add chunk tickets and don't force sync sending chunk packets
dordsor21
2021-01-01 18:04:30 +00:00
39b0da2b99
we do want to synchronise across the chunk when loading sections
dordsor21
2021-01-01 17:19:14 +00:00
42346b429b
Don't synchronise across the entire edit for a single ChunkSection load (speed boost)
dordsor21
2021-01-01 16:48:17 +00:00
606cfa5cbc
we don't need to "update" when copying sections
dordsor21
2021-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#454
dordsor21
2021-01-01 15:01:35 +00:00
7444c643a1
Switch to IncendoPaster "library"
dordsor21
2020-12-19 16:18:57 +00:00
e08fda0ac2
cache the correct number of blocks for FAWE fixes#747
dordsor21
2020-12-17 22:06:32 +00:00
e8f0c0e6ea
allow count to access "full" chunks if counting air
dordsor21
2020-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
dordsor21
2020-12-17 22:04:49 +00:00