Commit Graph

2017 Commits

Author SHA1 Message Date
dordsor21
da264b52e1
Fix #1116 2021-06-11 15:05:52 +01:00
dordsor21
f6c87b6726
Add null check to creating default NBT data 2021-06-10 19:59:17 +01:00
dordsor21
717a1b5db4
Replace ImmutableBaseBlock with BlanketBaseBlock
- ImmutableBaseBlock is no longer needed as NBT was made immutable previously
 - BlanketBaseBlock represents to masks that the block has NBT, but does not need to match a specific state
 - Allow FuzzyBlockState to create BaseBlocks without NBT data (fixed tab completion issues)
2021-06-10 19:47:34 +01:00
dordsor21
1fa5f4d725
Begin fixing layer brush
- Required new argument parser, which should ultimately be made into a singe blockstate parser for best results, and proper tab-completion
 - The layer brush itself is broken because of the changes to internal block retrieval from legacy
2021-06-10 16:19:23 +01:00
dordsor21
7ef8b2f95e
Create default TileEntity data where required.
Fixes #1093
Fixes #1042
2021-06-10 13:39:36 +01:00
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