Commit Graph

2012 Commits

Author SHA1 Message Date
dordsor21
71130025e8
Allow ^ mask to be used between blocks that may have different properties, only keeping the shared properties
Fixes #1092
2021-06-10 12:46:19 +01:00
dordsor21
f6af9925e8
Char block null check (#1030)
**Add a null-check to CharBlocks FULL section layer-retrieval.**
 - It is possible to trim CharBlocks whilst it is attempting to read data due to the batching of chunks to help reduce memory
 - This is done when the number of chunks sitting loaded in memory with having been "submitted" to the queue for writing to disk becomes high
 - Seconday operations such as heightmap processing and lighting will quickly load chunks, meaning many chunks are submitted early
 - This leads to much higher chances of the chunk being submitted and subsequently trimmed given heightmap and light processing is done layer-by-layer over many chunks, rather than chunk-by-chunk - thus leading to NPEs.
 - By adding synchronisation to and around only the specific sections when loading/updating, and not blocking the whole chunk, many access can still be thread-safe without causing deadlocks
 - This allows removal of lots of the needless and very-slowing synchronisation on get**Block** methods

**Remove much of the synchronisation from ChunkHolder**
 - We shouldn't be synchronising with call() and safety should be added elsewhere. (plus it's making edits very very slow when queue target size is hit)
 - Also remove much of synchronisation because we've added the null-check and section-specific synchronisation to CharBlocks
 
**Some QOL/thread-safe data access changes**
- Replaces the Array#clone seen in the get blocks classes with System#arraycopy as deep cloning is not required, and is also slower than arraycopy
- Add System#arraycopy when accessing chunk section data via history to ensure it is not altered whilst being written
- Renaming EMPTY to empty means it is not implied to be a static variable

Fixes https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/1028
Fixes https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/1025
Fixes https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/1089
Fixes https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/1091
Fixes https://github.com/IntellectualSites/FastAsyncWorldEdit/issues/1097
2021-06-08 14:28:16 +00:00
dordsor21
1cd2d8d121
Send before history is acttually safer at the moment
- avoids deadlocks
2021-06-08 14:15:43 +01:00
NotMyFault
ef5211d5b5
Update Wiki link 2021-06-06 21:17:24 +02:00
NotMyFault
75fbe654ee
Update Upstream
0036e06 Alter the CUI lifecycle to be more consistent and reliable (1633)
2021-06-05 11:27:27 +02:00
NotMyFault
d1af6c38e7
Update Upstream
9516002 Register platforms and commands in a more proper way (1766)
2021-06-05 10:27:38 +02:00
MattBDev
6bfc3ceb95 Removed cast to ResettableExtent in for loop.
I have no idea why we were casting it when all objects in the loop were ResettableExtents in the first place.
2021-06-03 17:59:51 -04:00
MattBDev
7f51d8374b Merge remote-tracking branch 'origin/main' 2021-06-02 17:27:46 -04:00
MattBDev
930b9b07d5 Fixed raw class usage in DistrFilter 2021-06-02 17:27:37 -04:00
NotMyFault
46ed9a2d67
Include classloader in extend debug message 2021-06-02 17:27:18 +02:00
NotMyFault
b599769f8c
Fixes #1098 2021-05-30 23:49:46 +02:00
Hannes Greule
53681ccc59
Feature/unsafe over reflections (#1082)
* Use Unsafe to replace Lock

* Start cleaning up everything that has to do with CleanableThreadLocal

* Make cancellation work

Co-authored-by: NotMyFault <mc.cache@web.de>
2021-05-28 18:47:46 -04:00
NotMyFault
cbe5cd4eb3
Move Fawe commands to Captions 2021-05-24 11:36:37 +02:00
NotMyFault
d2dee87ab9
Update Upstream
5a7cbfd Fix selecting at 0,0,0 or radius 0 cyl/ellipse (1734)
2021-05-24 10:52:58 +02:00
NotMyFault
b7f595cc50
Remove redundant tab from translation file 2021-05-23 23:39:00 +02:00
NotMyFault
8d35963171
Address dead Component imports 2021-05-23 23:35:08 +02:00
NotMyFault
106f9aed79
Address requested changes
- 4534154894 (r50694638)
- 4c1d0bc9a6 (r50694886)
2021-05-23 23:24:18 +02:00
NotMyFault
d48808f111
Fixes #1072 2021-05-22 17:33:42 +02:00
NotMyFault
a7cbf1dd0a
Elaborate where config changes can be applied to 2021-05-19 23:51:42 +02:00
SirYwell
71f7103edd Always use Unsafe to clean ByteBuffer 2021-05-15 15:27:28 +02:00
NotMyFault
44fe51826f
Remove nashorn scripting engine (#1068)
- Remove the ScriptTranspiler as es6 is no longer supported
2021-05-13 20:19:55 +02:00
Hannes Greule
ff728478c6
Relight using starlight engine on Tuinity & perform heightmap updates (#1023)
* Relight using starlight engine on Tuinity

* Make use of invokeExact

* Cache MethodHandle

* Address some requested changes

* Remove random *

Co-authored-by: NotMyFault <mc.cache@web.de>

* Simplify and clean up sendChunk
Hopefully, that doesn't cause any issues

* Add naive HeightmapProcessor

* Make HeightmapProcessor more efficient

* Remove heightmap code from NMSRelighter

* Recognize fluid for waterlogged blocks

* Remove config option for heightmaps as they should always be updated

* Batch relighting for Starlight

* Dirty workaround for CharBlocks blocks NPE

* Revert "Dirty workaround for CharBlocks blocks NPE"

This reverts commit 737606a7
It only caused the heightmap to be wrong again and didn't help much with the original issue

* Adapt better chunk sending on older versions

* Adapt requested changes for HeightMapType

* Relight all changed chunks, batched
Also, address some requested changes

* Avoid deadlocks

* Clean up tuinity relighter and add some comments

* Minor changes to HeightmapProcessor

Co-authored-by: BuildTools <unconfigured@null.spigotmc.org>
Co-authored-by: NotMyFault <mc.cache@web.de>
Co-authored-by: Aurora <21148213+aurorasmiles@users.noreply.github.com>
2021-05-13 11:29:11 -04:00
MattBDev
46fae22de4 Fixed annoying capitalization issue. 2021-05-11 20:24:52 -04:00
MattBDev
6f2e4c0cf3 Simplify logic 2021-05-11 20:16:53 -04:00
MattBDev
4534154894 Throw error instead of returning null on a boolean return 2021-05-11 20:16:32 -04:00
MattBDev
bdd3bc26af Replaced hardcoded values of Pi with Math.PI 2021-05-11 20:15:24 -04:00
MattBDev
4c1d0bc9a6 Removed redundant null checks and fixed a potential file separator issue 2021-05-11 20:01:11 -04:00
NotMyFault
2b0ab1a084
Fixes #1046
Also remove option to shorten urls for schematic upload. This option does not work with self hosted interfaces, nor is it really safe to use, as per-design.
2021-05-11 20:16:54 +02:00
NotMyFault
00d689a238
Clarify why mcedit is discontinued 2021-05-08 14:55:25 +02:00
PureGero
1c9015531f
Keep order of block properties (#1053) 2021-05-07 13:12:58 +02:00
NotMyFault
22be7410fc
Add Pattern#applyBlock in favor of Pattern#apply
As Fawe extends into its own Filter class, this will need a Fawe-suitable solution at some point when removing the deprecated method.
This is a compatibility-layer workaround for plugins calling the WorldEdit method `Pattern#applyBlock`.
2021-05-06 11:54:22 +02:00
NotMyFault
5dafa5f62b
Update Wiki link 2021-04-28 14:04:02 +02:00
NotMyFault
207d029def
Anvil commands are currently not implemented 2021-04-22 20:36:36 +02:00
Hannes Greule
57773765d7 Prevent exceptions from being thrown endlessly 2021-04-16 20:32:23 +02:00
Aurélien
e4331844ac
Fix performance issues getting next file ids (#1027)
* Greetly optimize disk history

* Greetly optimize disk cfi changeset

* Remove wildcard import.

* Improve performance fix

* Improved performance fix
2021-04-13 16:55:12 +02:00
NotMyFault
ae647dadfb
Fix /fawe threads output 2021-04-12 19:32:17 +02:00
NotMyFault
88764d8d46
Update Upstream
98adde2 Allow toggleplace to work on any Actor + Locatable
2021-04-10 11:15:41 +02:00
Hannes Greule
19592df1f6 Don't cache location for circle brush, fix #970
Also, allow filled circles (very cool feature)
2021-04-10 01:07:51 +02:00
Hannes Greule
911d3a00eb Don't paste biomes out of bounds, fix #1009
Also some preparations for variable world heights
2021-04-09 22:59:31 +02:00
Hannes Greule
4b371e2c3f Fix latest.log not contained in debugpaste, fix #1017 2021-04-09 22:14:27 +02:00
NotMyFault
4d77771ea1
Increase cui limit based on game limits 2021-04-07 19:54:44 +02:00
NotMyFault
6e8cc06637
Address a few deprecations 2021-04-06 18:30:29 +02:00
NotMyFault
01dff32597
Fine tuning captions
Fix listchunks throwing component error
2021-04-06 14:01:04 +02:00
NotMyFault
dc51379e8f
Update upstream
acf9c3b Change oak stair shape to straight in legacy.json.
c7da4c0 Swap out logback for log4j2
2021-04-05 23:14:20 +02:00
NotMyFault
5e534ff9e2
Finalize Captions
Follow up to a9d1202ce1
2021-04-05 19:54:49 +02:00
NotMyFault
a9d1202ce1 Finish up transition to captions 2021-04-05 19:52:13 +02:00
Aurélien
e40d3e3c19
Fixes LongRangeBuildTool tool (#1005) 2021-04-02 23:03:59 +02:00
NotMyFault
b96cea75b8
Update Upstream
609c7b8 Scrapped Logging Framework 4 Java

Closes #997
Closes #998
Closes #999
Closes #1000
Closes #1001
Closes #1002
2021-03-29 15:29:16 +02:00
NotMyFault
2dc89f735d
Add missing translation key 2021-03-27 14:22:04 +01:00
NotMyFault
c689b4e5d2
Update Upstream
acd63daddf7b45ce2b7699bc85ae88e0aa4433e9: Slightly improve usability of LocalSession#getSelection.
Co-Authored-By: wizjany <568161+wizjany@users.noreply.github.com>
2021-03-26 10:11:26 +01:00
NotMyFault
4af7316118
Remove freebuild regions (#991)
* Remove freebuild regions

* Remove configuration option of freebuild

Co-authored-by: Matt <4009945+MattBDev@users.noreply.github.com>
2021-03-25 08:40:09 +01:00
NotMyFault
51487135bb
Adding a try-catch for some edge scenario Fawe failing to grab Mojang assets 2021-03-22 18:17:46 +01:00
dordsor21
d224d6ea32
Add synchronization to CharBlocks (#963)
similar to ChunkHolder, it represents an internal chunk for which operations should not be accepted by multiple threads at once.

Co-authored-by: NotMyFault <mc.cache@web.de>
2021-03-15 18:33:21 +00:00
Hannes Greule
20424b081c Allow none as image in height brush, fixes #969 2021-03-14 22:00:05 +01:00
Hannes Greule
d974164204
Switch from PropertyKey enum to class (#971)
* Switch from PropertyKey enum to class

* Fix generic toArray
2021-03-14 19:38:11 +00:00
NotMyFault
bc64eaff1c
Merge upstream 2021-03-13 10:59:17 +01:00
NotMyFault
6476345e44
Implement missing methods 2021-03-12 12:23:44 +01:00
NotMyFault
5acd1d7b95
Improve note about loading invalid schematics via FSR and SSR 2021-03-08 16:34:16 +01:00
NotMyFault
99ea64fa4e
Add a couple of permissions 2021-03-06 20:22:39 +01:00
dordsor21
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
NotMyFault
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
NotMyFault
4a6af7182a
Improve per-player schematic declaration 2021-02-22 10:47:34 +01:00
Aurora
e550189cb8
Add more debug output to find a error (#924) 2021-02-19 20:19:19 +01:00
NotMyFault
80b6a100e8
Switch to vanity url 2021-02-16 23:49:04 +01:00
NotMyFault
eead11f32a
Fixes #265 2021-02-08 13:20:56 +01:00
dordsor21
5f83643d88
Couple of command fixes
fixes #899
2021-02-05 23:20:15 +00:00
NotMyFault
3df080abe4
Add note if clipboard >= Integer.MAX_VALUE 2021-02-05 13:21:15 +01:00
NotMyFault
ac16c9a2ba Minor upstream merge 2021-02-03 23:08:39 +01:00
NotMyFault
3e37a66a12
Leave a better note about EOL versions 2021-02-01 22:40:27 +01:00
dordsor21
287aa9dd8b
Remove bad default copy method in AbstractMask 2021-01-28 14:23:00 +00:00
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
N0tMyFaultOG
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
N0tMyFaultOG
1c4339ce1c
Replace dead links 2021-01-20 13:56:19 +01: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
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
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
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