Commit Graph
100 Commits
Author SHA1 Message Date
dordsor21 485781f711 Merge branch 'main' of github.com:IntellectualSites/FastAsyncWorldEdit 2021-01-28 13:13:10 +00:00
dordsor21 781f39f71a Properly define /ore arguments
Fix #885
2021-01-28 12:54:55 +00:00
dordsor21 0f6b56572a Update to NMS given by 1.16.5.
Since there's no new NMS revision (we're still on R3...?!) but there were changes, it would be more difficult to maintain both 1.16.4 and 1.16.5. Therefore, let's just stop supporting 1.16.4 as 1.16.5 is a minor update regardless.
Fixes #859
2021-01-18 16:13:42 +00:00
dordsor21 3ba982927a Merge branch 'main' of github.com:IntellectualSites/FastAsyncWorldEdit 2021-01-18 15:37:43 +00:00
dordsor21 c218743fa8 Fix some coordinate errors
- Fixes WorldGuard weirdness
 - Fixes #860
2021-01-18 15:37:14 +00:00
dordsor21 798b4cdd4e Fix #806 2021-01-15 20:16:46 +00:00
dordsor21 b450a0af80 Fix confirm for some commands that give AutoValue_CommandParametersImpl from the getgo 2021-01-14 20:08:43 +00:00
dordsor21 bad3d31d90 Fix removing section lighting
- Paper and spigot differ in methods
 - Also don't clone it as we're trying to fill the actual data...
2021-01-14 17:03:32 +00:00
dordsor21 b18c646bce AbstractExtentMasks should have the correct extent.
- Fixes #843
2021-01-14 16:54:38 +00:00
dordsor21 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
2021-01-14 15:42:38 +00:00
dordsor21 3034419918 Send before history is safe 2021-01-14 14:48:13 +00:00
dordsor21 3136fb460b Revert "actually delegate in AbstractDelegateExtent"
This reverts commit 761d05ac19.
2021-01-14 14:39:50 +00:00
dordsor21 761d05ac19 actually delegate in AbstractDelegateExtent
fixes #843
2021-01-14 14:38:37 +00:00
dordsor21 af34bd4e57 the material seems to hold state data for some reason.
- This requires a more complicated fix. Reverting this change for now
2021-01-14 13:42:37 +00:00
dordsor21 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.
2021-01-14 12:47:02 +00:00
dordsor21 5e1289494e Delegate to blocktype for obtaining a BlockState's material 2021-01-14 12:45:11 +00:00
dordsor21 ac73478827 Fix bad/needless code
- Fixes #852
2021-01-14 12:39:57 +00:00
dordsor21 fd1ed63703 Don't confirm twice every time
- I channelled my inner Jesse on this one.
2021-01-13 23:50:29 +00:00
dordsor21 05d7558873 Don't print stack trace of FaweExceptions from submitted chunks
Addresses #353
2021-01-13 20:30:22 +00:00
dordsor21 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
2021-01-13 19:02:51 +00:00
dordsor21 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.
2021-01-13 18:18:25 +00:00
dordsor21 eaa9872294 Revert this for now as it had unintended consquences 2021-01-13 17:36:50 +00:00
dordsor21 97209d5680 better locking of lighting and use correct method for relight without removing first
Fixes #847
2021-01-13 17:24:14 +00:00
dordsor21 b066ca8349 only relight blocks that have light 2021-01-13 17:10:08 +00:00
dordsor21 b1e8c6c3ba Synchronizing on accessing a lock is pointless. 2021-01-13 17:09:44 +00:00
dordsor21 f69b1bfb21 properly load nms chunk for lighting operations 2021-01-13 17:09:18 +00:00
dordsor21andGitHub b4d7562b87 Looks like automagical relighting (#838)
Fixes #686
2021-01-11 19:29:16 +00:00
dordsor21 74a2f02003 put MCEdit before sponge and query by file extension.
Massively reduces loading time a few addon plugins that are literally only trying to get the format of a schematic
2021-01-11 16:02:50 +00:00
dordsor21 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
2021-01-11 15:06:55 +00:00
dordsor21 fa8660c7a9 More verbosely check for "scaled" in AffineTransform and override all required methods in BlockTransformExtent
- fixes #462
2021-01-11 14:21:56 +00:00
dordsor21 5903178c53 Fix rotate/flip applying in the wrong order
- pretty cheat fix, but it reverts to legacy FAWE behaviour
2021-01-11 13:18:24 +00:00
dordsor21 ae6a1f1be4 Correct rounding bevhaviour for Vector3 -> BlockVector3
- fixes #512
2021-01-10 20:49:38 +00:00
dordsor21 0b727d9760 Fix for OPs when "not in a region" 2021-01-10 18:51:07 +00:00
dordsor21 831c6f6854 fix NPE with null sourcemask on move 2021-01-10 17:36:41 +00:00
dordsor21 846443291f allowed regions can be null 2021-01-10 17:14:40 +00:00
dordsor21 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).
2021-01-10 17:11:55 +00:00
dordsor21 278e9d5991 Set source masks that include the editsession's allowed regions to ForwardExtentCopies
Fixes #710
2021-01-10 14:59:21 +00:00
dordsor21 edc7e9028b disableQueue stops buffering, switch to enableQueue to buffer when "//move"ing
fixes #738
2021-01-10 13:22:47 +00:00
dordsor21 bd079421a3 fix wna/loading on non-paper servers 2021-01-10 12:37:41 +00:00
dordsor21 aab9958932 Fixes #221
If WE wants to add it as well, it's up to them. I asked but wiz was hostile about it.
2021-01-09 21:52:50 +00:00
dordsor21 6bc3dd2293 Fix wna when used internally 2021-01-09 21:27:55 +00:00
dordsor21 6f0180447f Don't ParallelQueueExtent if the editsession is created on the main thread. 2021-01-09 17:48:57 +00:00
dordsor21 31542ed4fa Add 3D biomes to clipboards properly
- Also fix disk clipboard's size check, allowing for larger clipboards but with disabled biomes
2021-01-09 16:40:41 +00:00
dordsor21 3accbb84dd Don't talk about CP 2021-01-08 14:38:41 +00:00
dordsor21 febcf5f76f display potentially unsafe extent message in console if no Actor 2021-01-08 14:28:09 +00:00
dordsor21 6b3fe20c61 revert to upstream slf4j so it's present in IDE 2021-01-08 14:24:58 +00:00
dordsor21 9d2c631035 **BaseBlocks are immutable 2021-01-06 21:13:32 +00:00
dordsor21 8f74186e14 *BaseBlocks are immutable 2021-01-06 18:15:59 +00:00
dordsor21 7afddcc411 Fix more NBT mutability issues 2021-01-06 18:00:40 +00:00
dordsor21 e40e86df5f Add some more __internal__ <-> air logi
Fixes #831
2021-01-06 16:40:28 +00:00
dordsor21 336b90be15 Also fix CPUOptimizedClipboard 2021-01-06 13:39:25 +00:00
dordsor21 280ade9994 fix NBT in memory optimized clipboard 2021-01-06 13:29:52 +00:00
dordsor21 91de441403 No need to check WorldEdit schematics for bad entities 2021-01-05 17:21:35 +00:00
dordsor21 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.
2021-01-05 16:42:53 +00:00
dordsor21 89cc2f9d9f Large memory use reduction when PostProcessing history 2021-01-05 15:03:47 +00:00
dordsor21 7c174ee6b3 Return to static "sections" in CharBlocks.
- Synchronise (lock) outside the static object
 - Reduces object creation
2021-01-05 13:51:26 +00:00
dordsor21 bfd04e4155 Revert "~1/3 faster history writing with small caching"
This reverts commit 836b7a9750.
2021-01-05 00:50:26 +00:00
dordsor21 836b7a9750 ~1/3 faster history writing with small caching 2021-01-04 21:25:29 +00:00
dordsor21 916c080310 5000th commit: Fix //download 2021-01-04 19:10:10 +00:00
dordsor21 efcca5b66f it's better not to bother with tickets to avoid tickets not being removed all the time 2021-01-01 19:49:11 +00:00
dordsor21 580cb4a91e add chunk tickets and don't force sync sending chunk packets 2021-01-01 18:04:30 +00:00
dordsor21 39b0da2b99 we do want to synchronise across the chunk when loading sections 2021-01-01 17:19:14 +00:00
dordsor21 42346b429b Don't synchronise across the entire edit for a single ChunkSection load (speed boost) 2021-01-01 16:48:17 +00:00
dordsor21 606cfa5cbc we don't need to "update" when copying sections 2021-01-01 16:07:57 +00:00
dordsor21 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
2021-01-01 15:01:35 +00:00
dordsor21 82f640d132 fix loading Fawe.properties 2020-12-31 17:45:07 +00:00
dordsor21 59c227b49a actually fix AsyncBlock 2020-12-31 15:32:00 +00:00
dordsor21 935130aa0e Fix AsyncBlock 2020-12-31 15:22:29 +00:00
dordsor21 df48b7e81d stop bottling clipboard sizes for no reason 2020-12-31 15:01:54 +00:00
dordsor21 6e49427b26 fix WNA 2020-12-27 21:03:09 +00:00
dordsor21 3c5041ddb7 Fix uploading/download P2 schematics with /plot save|load 2020-12-24 15:47:02 +00:00
dordsor21 b60d9ef6d5 Fix #787 2020-12-23 17:26:26 +00:00
dordsor21 7444c643a1 Switch to IncendoPaster "library" 2020-12-19 16:18:57 +00:00
dordsor21 e08fda0ac2 cache the correct number of blocks for FAWE
fixes #747
2020-12-17 22:06:32 +00:00
dordsor21 e8f0c0e6ea allow count to access "full" chunks if counting air 2020-12-17 22:05:32 +00:00
dordsor21 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
2020-12-17 22:04:49 +00:00
dordsor21 d379b0af9b fix //image ane image brush
fixes #208 and fixes #698
2020-12-17 20:19:54 +00:00
dordsor21 94a14b03b6 fix brush size 0/1 2020-12-17 15:26:17 +00:00
dordsor21 236e3c3f6f correctly set changes to editsession for line/spline
fixes #696
2020-12-17 15:02:49 +00:00
dordsor21 b57c472b86 Save the get blocks to the set chunk after history is written when post-processing 2020-12-17 14:09:54 +00:00
dordsor21 f347e0f5f5 update some utility commands
fixes #557
2020-12-16 19:23:41 +00:00
dordsor21 d5005a04e3 Return air if attempt to retrieve block from outside range
Fixes #682
2020-12-16 19:08:00 +00:00
dordsor21 aeccce24a9 fix #550 2020-12-16 17:38:15 +00:00
dordsor21 61fd8c0de5 Update generate tree to match upstream 2020-12-16 17:20:33 +00:00
dordsor21 3a3bf7382d Update block NBT to include the coordinates when saving to history
fixes #708 and fixes #655
2020-12-16 16:59:16 +00:00
dordsor21 e4709eb6dc idk why I did &3
half fixes #769
2020-12-16 12:34:54 +00:00
dordsor21 6676d77aaa Stop writing corrupt tile entities to schematics
also make some stuff definitely immutable.
2020-12-13 21:06:36 +00:00
dordsor21 26e3e56988 Don't allow blocks as brushes
fixes #748
2020-12-11 17:02:54 +00:00
dordsor21 ae39f7bba3 use full chunks for distr and account for __RESERVED__ blocks
fixes #759
2020-12-11 16:13:09 +00:00
dordsor21 56cf49c167 Send chunks if they're in the paper no-tick-distance
Fixes #766 and #677
2020-12-11 15:36:42 +00:00
dordsor21 3717351d61 //setbiome should be 3D as well 2020-12-11 12:55:49 +00:00
dordsor21 ff7c972ea6 Don't try to be clever with bitwise
Fixes #769
2020-12-11 12:55:38 +00:00
dordsor21 be44e1449c remove mutability in clipboards (particularly clipboard pattern)
fixes #776
2020-12-11 11:34:56 +00:00
dordsor21andGitHub c6ef1bc1de Full support for 3D biomes (#714)
* Full support for 3D biomes
Since we're only supporting 1.15+ there's no need to try anything other than compatibility

* this is not part of the PR

* Clipboards should still always be y 0 for biomes
(this "bug" has existed for ages)
2020-10-22 22:18:16 +01:00
dordsor21andGitHub 5508b415c9 Allow nullable BukkitPlayers for whatever reason WorldGuard needs them for I guess? (#706) 2020-10-14 19:56:16 +01:00
dordsor21andMattBDev 0021aeb40a Several fixes to actual, probable and possible synchronocity issues (#691)
* Several fixes to actual, probable and possible synchronocity issues
 - Ensure that all edits are queued onto the same AsyncNotifyQueue by actually delegating to the parent player in PlayerProxy
 - Ensure that the order editsessions are being remembered on the LocalSession is being respected by using a fair ReentrentLock
 - Ensure a chunk cannot be called when an update is being called

* Don't add locks to GetBlocks
2020-10-08 21:50:42 -04:00
dordsor21andMattBDev cf0ff72524 Correctly queue edits
Synchronising on the LocalSession ends up being dangerous as it's a craftbukkit thread, leading to blocking issues if something goes wrong in an edit, made worse by the fact craftbukkit threads like to interfere with each other sometimes, and also cause OOMs and hanging when there are too many of them.
2020-10-08 21:50:41 -04:00
dordsor21andMattBDev d5d09ba586 Remove deep synchronisation that is a very plausible cause of circular locking.
This may be a fix for #685
2020-10-08 21:50:32 -04:00
0c9f00b6ba Update worldedit-core/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java
Co-authored-by: NotMyFault <[email protected]>
2020-10-08 21:15:48 +01:00
dordsor21andGitHub 5b97c0abcd Several fixes to actual, probable and possible synchronocity issues (#691)
* Several fixes to actual, probable and possible synchronocity issues
 - Ensure that all edits are queued onto the same AsyncNotifyQueue by actually delegating to the parent player in PlayerProxy
 - Ensure that the order editsessions are being remembered on the LocalSession is being respected by using a fair ReentrentLock
 - Ensure a chunk cannot be called when an update is being called

* Don't add locks to GetBlocks
2020-10-08 21:15:05 +01:00