Commit Graph

1839 Commits

Author SHA1 Message Date
7a0dc39eb7 Apply a lot of synchronization to ChunkHolder (#941)
This is basically the main "chunk" class for internal FAWE. Chunk operations should (and are) almost always single-threaded operations, however, under certain circumstances it is possible for the chunk to be "called" (flushed: written to the world and sent to the player) from a separate thread. This would specifically occur from SingleThreadQueueExtent when there are a lot of chunks being loaded in memory by FAWE (where the chunk would then be submitted to a multi-threaded queue). It would therefore be possible for a thread accessing the chunk to attempt to access it in the middle of the call, which can lead to a number of issues, and it is my opinion that the most frequent of these is the NPE seen during lighting operations, where new chunks can be accessed/loaded very quickly, increasing the likelihood for the aforementioned synchronisation issue to occur.

Co-authored-by: Matt <4009945+MattBDev@users.noreply.github.com>
2021-03-03 15:26:00 +01:00
0b65533294 Show a message with install instructions when running the jar file
Co-Authored-By: Matthew Miller <mnmiller1@me.com>
2021-02-25 22:58:17 +01:00
4a6af7182a Improve per-player schematic declaration 2021-02-22 10:47:34 +01:00
e550189cb8 Add more debug output to find a error (#924) 2021-02-19 20:19:19 +01:00
eead11f32a Fixes #265 2021-02-08 13:20:56 +01:00
5f83643d88 Couple of command fixes
fixes #899
2021-02-05 23:20:15 +00:00
3df080abe4 Add note if clipboard >= Integer.MAX_VALUE 2021-02-05 13:21:15 +01:00
ac16c9a2ba Minor upstream merge 2021-02-03 23:08:39 +01:00
287aa9dd8b Remove bad default copy method in AbstractMask 2021-01-28 14:23:00 +00:00
485781f711 Merge branch 'main' of github.com:IntellectualSites/FastAsyncWorldEdit 2021-01-28 13:13:10 +00:00
781f39f71a Properly define /ore arguments
Fix #885
2021-01-28 12:54:55 +00:00
9cfcaa7605 Improve texture util if version is missing
This could defo be done cleaner, but it works for now.
2021-01-21 20:20:09 +01:00
1c4339ce1c Replace dead links 2021-01-20 13:56:19 +01:00
c218743fa8 Fix some coordinate errors
- Fixes WorldGuard weirdness
 - Fixes #860
2021-01-18 15:37:14 +00:00
798b4cdd4e Fix #806 2021-01-15 20:16:46 +00:00
b450a0af80 Fix confirm for some commands that give AutoValue_CommandParametersImpl from the getgo 2021-01-14 20:08:43 +00:00
b18c646bce AbstractExtentMasks should have the correct extent.
- Fixes #843
2021-01-14 16:54:38 +00:00
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
3034419918 Send before history is safe 2021-01-14 14:48:13 +00:00
3136fb460b Revert "actually delegate in AbstractDelegateExtent"
This reverts commit 761d05ac19.
2021-01-14 14:39:50 +00:00
761d05ac19 actually delegate in AbstractDelegateExtent
fixes #843
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
2021-01-14 13:42:37 +00:00
5e1289494e Delegate to blocktype for obtaining a BlockState's material 2021-01-14 12:45:11 +00:00
ac73478827 Fix bad/needless code
- Fixes #852
2021-01-14 12:39:57 +00:00
fd1ed63703 Don't confirm twice every time
- I channelled my inner Jesse on this one.
2021-01-13 23:50:29 +00:00
05d7558873 Don't print stack trace of FaweExceptions from submitted chunks
Addresses #353
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
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.
2021-01-13 18:18:25 +00:00
eaa9872294 Revert this for now as it had unintended consquences 2021-01-13 17:36:50 +00:00
97209d5680 better locking of lighting and use correct method for relight without removing first
Fixes #847
2021-01-13 17:24:14 +00:00
b066ca8349 only relight blocks that have light 2021-01-13 17:10:08 +00:00
b1e8c6c3ba Synchronizing on accessing a lock is pointless. 2021-01-13 17:09:44 +00:00
b4d7562b87 Looks like automagical relighting (#838)
Fixes #686
2021-01-11 19:29:16 +00:00
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
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
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
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
ae6a1f1be4 Correct rounding bevhaviour for Vector3 -> BlockVector3
- fixes #512
2021-01-10 20:49:38 +00:00
0b727d9760 Fix for OPs when "not in a region" 2021-01-10 18:51:07 +00:00
831c6f6854 fix NPE with null sourcemask on move 2021-01-10 17:36:41 +00:00
846443291f allowed regions can be null 2021-01-10 17:14:40 +00:00
278e9d5991 Set source masks that include the editsession's allowed regions to ForwardExtentCopies
Fixes #710
2021-01-10 14:59:21 +00:00
edc7e9028b disableQueue stops buffering, switch to enableQueue to buffer when "//move"ing
fixes #738
2021-01-10 13:22:47 +00:00
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
6bc3dd2293 Fix wna when used internally 2021-01-09 21:27:55 +00:00
6f0180447f Don't ParallelQueueExtent if the editsession is created on the main thread. 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
2021-01-09 16:40:41 +00:00
3accbb84dd Don't talk about CP 2021-01-08 14:38:41 +00:00
febcf5f76f display potentially unsafe extent message in console if no Actor 2021-01-08 14:28:09 +00:00
9d2c631035 **BaseBlocks are immutable 2021-01-06 21:13:32 +00:00