Commit Graph

566 Commits

Author SHA1 Message Date
Jesse Boyd
35883cfb16 Fixes #228 2016-08-10 17:32:05 +10:00
Jesse Boyd
5c0ae62b17 Various
Keep chunks loaded for at least 10s
Optimizations for 1.10
Fix cast for 1.8
Memory/Disk Optimizations for relighting large areas in unloaded chunks
Fix for clipboard entities
2016-08-10 17:18:55 +10:00
Jesse Boyd
1ed87eabbc Various
Per world session history index when using disk
Configurable clipboard/history save locations
Fixed and optimized packet sending
History caching optimizations (instant now)
2016-08-09 14:32:51 +10:00
Jesse Boyd
7cf334d881 Fixes #224 2016-08-07 17:19:08 +10:00
Jesse Boyd
514b28caa4 Rollback changes 2016-08-07 07:19:02 +10:00
Jesse Boyd
c98d07039d Buffered random access clipboard compression + schematic -> clipboard streaming
Also adds CPUOptimizedClipboard which has no extra compression
Note: Performance degrades if access is actually random (the buffering
optimizes sequential r/w)
Removing stream in favor of clipboard compression / disk
- In order to stream a schematic, it would need to be fully read 3 times
as  tags are not ordered (dimensions -> block ids -> data + tiles +
entities)
- Much faster just using disk / memory as an intermediate step
2016-08-06 16:42:40 +10:00
Jesse Boyd
c11087334f Fix inspect alias 2016-08-05 17:37:17 +10:00
Jesse Boyd
8e5e2ccafa Don't wrap null player 2016-08-05 10:39:20 +10:00
Jesse Boyd
bde226e7cd Fix NPE 2016-08-05 10:31:16 +10:00
Jesse Boyd
5eff53f1f8 Remove duplicate method 2016-08-04 20:01:47 +10:00
Jesse Boyd
5725e3bdd3 * Wrong limit used 2016-08-04 19:48:11 +10:00
Jesse Boyd
895de11a09 Fix entity mask + More work on rollback 2016-08-04 19:46:38 +10:00
Jesse Boyd
e5ebccd053 All commands translatable + Start on inspect brush
+ Disable AWE if present as otherwise both don't load
2016-08-03 19:23:31 +10:00
Jesse Boyd
1ca5798e9d Begin rollback optimizations + other
Store rollback summary in database (option)
API improvements
Load before AWE
2016-08-03 14:43:27 +10:00
Jesse Boyd
39acae08aa Minor API changes 2016-08-02 17:00:01 +10:00
Jesse Boyd
7c06899111 Fix fixliquid. 2016-08-01 16:41:21 +10:00
Jesse Boyd
ffc23f4020 Minor PS fix + undo fastmode error 2016-07-31 09:58:28 +10:00
Jesse Boyd
1835748d85 1 seems to have issues right now 2016-07-27 08:29:59 +10:00
Jesse Boyd
3d15022167 *remove debug msg 2016-07-27 08:04:56 +10:00
Jesse Boyd
ff60177dcc Working async relighting 2016-07-27 08:03:51 +10:00
Jesse Boyd
23b67b3f56 [BREAKING] Is it breaking if it's already broken? 2016-07-26 10:08:32 +10:00
Jesse Boyd
06275e8d3d [Bleeding] Lighting changes + broken 2016-07-26 10:04:19 +10:00
Jesse Boyd
4bde477206 Various
Fix forge multiworld
Add NMS setLight (sky/block)
Fix clipboard on disk start index
Fix cmd block data
2016-07-25 08:25:07 +10:00
Jesse Boyd
d562b6cf66 Update forge classes 2016-07-23 08:57:15 +10:00
Jesse Boyd
0849948f77 Minor change to relight chunk load 2016-07-16 04:38:45 +10:00
Jesse Boyd
c52c1bee27 Relight improvements + ports
6 lighting modes (0-5), see config
forge194
forge110
bukkit1710
(untested)
2016-07-15 09:53:30 +10:00
Jesse Boyd
ef06ca3b19 Proper NBT streaming + random access optimizations 2016-07-13 19:00:15 +10:00
Jesse Boyd
342c106e8c Increase default history size 2016-07-12 18:08:26 +10:00
Jesse Boyd
87f79f9fa6 Various fixes
Fix undo
Fix blockshub hook
API improvements
Added worldedit from console
Fixed async world loading for paperspigot
Some minor optimizations
Added some extra translations
2016-07-12 17:54:00 +10:00
Jesse Boyd
9ed6880d1d Various 2016-07-10 23:37:18 +10:00
Jesse Boyd
f202a563fc Tweak no region message 2016-06-30 22:40:19 +10:00
Jesse Boyd
227ac22d15 Fix data for id=9 2016-06-30 22:11:58 +10:00
Jesse Boyd
51a8b41399 Translate navigation 2016-06-29 20:44:04 +10:00
Jesse Boyd
af6c80901a Update some classes 2016-06-29 15:25:27 +10:00
Jesse Boyd
b56a6d4b7c Fixes #168 2016-06-29 03:15:06 +10:00
Jesse Boyd
1867a41d8a Fixes #166 2016-06-29 03:03:27 +10:00
Jesse Boyd
ff59a61046 *Fix history limit 2016-06-29 01:56:56 +10:00
Jesse Boyd
a521cb9ac3 Prevent chunk unload during async relight + delay tasks 2016-06-28 22:09:47 +10:00
Jesse Boyd
478cbbf393 Per player history size (in MB) 2016-06-28 20:22:31 +10:00
Jesse Boyd
e8ae5ca119 Fixes #166 2016-06-27 23:56:11 +10:00
Jesse Boyd
a21390c9cf Minor fix 2016-06-27 18:40:19 +10:00
Jesse Boyd
3f6abb1c6f Close after write 2016-06-24 16:22:38 +10:00
Jesse Boyd
2c0a47c60f Fix chunk listener items and tweak p2 mask. 2016-06-24 15:38:30 +10:00
Jesse Boyd
cf397524ff Fix other forge compile issues 2016-06-22 16:02:50 +10:00
Jesse Boyd
27d5e9e1aa Add cmd brush 2016-06-21 23:47:40 +10:00
Jesse Boyd
2e0a37c1de * 2016-06-21 22:28:22 +10:00
Jesse Boyd
615c51d948 Add voxel shortperm 2016-06-21 21:38:58 +10:00
Jesse Boyd
e4b1cc376b Document some stuff 2016-06-21 20:35:09 +10:00
Jesse Boyd
52024b4c2e Compression tweak 2016-06-21 17:03:43 +10:00
Jesse Boyd
8555276a78 Various
Fixed slow bukkit api placer (if no NMS placer exists) (it will try to
stay above 18.5 TPS)
Added more messages to translations
Added copy brush
Added resizable clipboard builder (API)
Added image download
2016-06-21 15:53:52 +10:00
Jesse Boyd
990d2fcbb0 Fix logging 2016-06-20 15:36:10 +10:00
Jesse Boyd
598928053d Fix rollback 2016-06-20 14:57:39 +10:00
Jesse Boyd
0d7c0474cc Various fixes 2016-06-20 14:06:14 +10:00
Jesse Boyd
706b44a26a Fixed schematic exporting (mostly) 2016-06-20 01:34:02 +10:00
Jesse Boyd
4c59ffc371 Various
Fixed entity copy, tree gen, snow height, reload history limit,
2016-06-19 12:24:28 +10:00
Jesse Boyd
fa090ee6bf Fixes #135 (superpickaxe) 2016-06-18 11:13:06 +10:00
Jesse Boyd
d6da78251e Tweak parallel startset 2016-06-17 23:20:49 +10:00
Jesse Boyd
3bab344656 Fix hasFastMode and combine stages 2016-06-17 16:38:29 +10:00
Jesse Boyd
97a0126fd1 Sync regen to the calling thread 2016-06-17 15:26:18 +10:00
Jesse Boyd
9bf2d2b0c3 Various
Update to PS 3.4.1
- Added various optimizations for PlotSquared
- Support full schematic exporting (includes NBT now)

Added compression level option:
0 is no compression
1-9 = varying levels of compression at the expense of CPU
3 = Good fast compression
5 = Good high compression
8 = Lots of compression (going further has diminishing returns)

Add EditSession builder (for extra control over optimizations)
Added compression option to FaweChangeSet constructor
Added FAWE format (used for history / clipboard on disk)

Various minor optimizations

TODO bug fixes
2016-06-16 20:25:21 +10:00
Jesse Boyd
7bc7f5841f Clipboard upload/download 2016-06-10 18:47:55 +10:00
Jesse Boyd
942e32d827 Add size restrictions 2016-06-10 13:16:10 +10:00
Jesse Boyd
d6902866c4 Add structure format
(for structure blocks)
2016-06-10 13:10:40 +10:00
Jesse Boyd
92ccbfcdcd Fixes #147 2016-06-10 05:10:56 +10:00
Jesse Boyd
40c6e781a6 Update to 1.10 2016-06-09 17:50:19 +10:00
Jesse Boyd
0c8291bbc8 forge message color 2016-06-07 07:50:12 +10:00
Jesse Boyd
b30007a4e4 Fix for forge 2016-06-06 18:46:02 +10:00
Jesse Boyd
ed08bf8a9c Fixes fixlighting
Relates to #140
2016-06-06 17:04:16 +10:00
Jesse Boyd
62e40bd9b6 Fixes for unused EditSessions clogging queue 2016-06-06 10:58:13 +10:00
Jesse Boyd
c1b22fbb21 Fixes #136 2016-06-04 03:33:28 +10:00
Jesse Boyd
3c0a2bd67e Superpickaxe async 2016-05-31 00:30:16 +10:00
Jesse Boyd
cc4f654941 debug failed queue initialization 2016-05-30 00:24:24 +10:00
Jesse Boyd
a05ae2e550 Various fixes for VS / WE 2016-05-28 08:37:16 +10:00
Jesse Boyd
b168d1b336 Various
Fix entity y value not within chunk
Fix combined stages CPUOptimizedHistory not restoring air in existing
sections on undo
Change EditSession to wait for completion on flush (you should be
flushing it async)
Added setting for edit session history with no session
2016-05-26 05:29:55 +10:00
Jesse Boyd
4ac02d6297 Fixes #121 2016-05-23 23:00:33 +10:00
Jesse Boyd
e8d76e3f3a VS history on disk/undo/rename perform to //p 2016-05-23 06:38:59 +10:00
Jesse Boyd
8a91f09192 Fix vs mask 2016-05-23 05:01:29 +10:00
Jesse Boyd
c950b7554d async bukkit wrappers / vs hook / api changes 2016-05-23 03:37:55 +10:00
Jesse Boyd
a4353bb760 Forge fix
Fixes #119
Close #120
2016-05-22 20:36:05 +10:00
Jesse Boyd
958f40fcbf Make API methods static 2016-05-22 17:51:28 +10:00
Jesse Boyd
ba2f9159b6 Get entities sync 2016-05-20 23:49:09 +10:00
Jesse Boyd
6993e4d8ed Fixes #111 2016-05-20 18:20:53 +10:00
Jesse Boyd
987ea4110a *forgot this 2016-05-20 18:17:19 +10:00
Jesse Boyd
37f2ef9765 Avoid duplicate wrapping 2016-05-20 18:16:26 +10:00
Jesse Boyd
6c14c13ceb Fix move / 19R2 entity packet sending 2016-05-20 18:14:21 +10:00
Jesse Boyd
9e128b8d0c Fix entity create/remove 2016-05-20 04:43:28 +10:00
Jesse Boyd
54864b73d2 Various
centralize error handling
fix tile entities (undo/redo)
2016-05-19 17:41:55 +10:00
Jesse Boyd
ee38591c37 fix 2016-05-17 20:11:00 +10:00
Jesse Boyd
90b5bb2801 block registration / p2 2016-05-17 20:00:08 +10:00
Jesse Boyd
183fcccc64 Stair/Rod rotation 2016-05-15 03:01:15 +10:00
Jesse Boyd
0bc703e1b9 Forge/Sponge 3.5.0 2016-05-14 23:38:07 +10:00
Jesse Boyd
00c685cd93 Various
add git revision to jar
fix fixlighting
fix fallback bukkit queue
(currently not stable for forge/sponge)
2016-05-13 18:19:18 +10:00
Jesse Boyd
b5a8eb2176 Various
update to 1.9.4
progress notifications
lighting fixes
optimizations

Only stable for bukkit 1.8/1.9
2016-05-13 18:19:18 +10:00
Jesse Boyd
1d5765e8cc Various
fix pom
combine stages
work on efficient handling tiles / entities in changeset
other minor restructuring
(Currently only stable for bukkit 1.8 with
Settings.COMBINE_HISTORY_STAGE=true)
2016-05-06 08:59:21 +10:00
Jesse Boyd
c599e75fa6 Have NullExtent extend FaweRegionExtent instead (more uses) 2016-05-02 13:19:25 +10:00
Jesse Boyd
d7f121f8a9 Fix regen 2016-05-02 13:14:13 +10:00
Jesse Boyd
bf0903246b Use clipboard instead 2016-05-02 13:06:23 +10:00
Jesse Boyd
a7cc08a882 cap height at 255 2016-05-02 12:09:21 +10:00
Jesse Boyd
9f0602f2ec Various
Fixes #89
brush fixes
optimizations
restructure
etc
2016-05-02 12:04:28 +10:00
Jesse Boyd
ea6840535a fix translation problem 2016-05-01 21:11:16 +10:00
Jesse Boyd
024d46be78 Various
Fixes #68
Fixes #69
Fixes #80
Fixes #70
Fixes #72
added heightmap brush
2016-05-01 11:10:39 +10:00
Jesse Boyd
b9f2671166 Fix gravity brush expecting blocks to be set instantly 2016-04-30 17:07:37 +10:00
Jesse Boyd
19c0e03989 Various
Fixes #71
Fixes #65
Fixes #81
Fixes #73
Fixes center for opposite sign x/z
2016-04-30 12:49:23 +10:00
Jesse Boyd
06a548e09e Various
Fixes #62
Fixes #63
Fixes #64 (maybe)
Fixes #66
Fixes #61
Fixes #67
Minor cleanup
2016-04-30 07:24:59 +10:00
Jesse Boyd
3b9408d381 Various 2016-04-28 15:00:49 +10:00
Jesse Boyd
4ec9ed3a8d Various 2016-04-28 08:10:17 +10:00
Jesse Boyd
72bd48a57d Fixes #58 2016-04-27 09:09:01 +10:00
Jesse Boyd
aec27d0e09 Set command optimizations 2016-04-27 05:51:22 +10:00
Jesse Boyd
9a3daaa383 Fixes #44 2016-04-26 11:15:48 +10:00
Jesse Boyd
143847816f Fix brush iterations 2016-04-26 08:39:19 +10:00
Jesse Boyd
8609741555 Lazy copying
> /lazycopy
> 92083901 block(s) were not copied. I'll do it later, promise!

Basically it will copy it on the fly whenever you decide to do something
with it e.g. paste or save it as a schematic.
2016-04-26 08:08:10 +10:00
Jesse Boyd
57696f25f4 Finish clipboard on disk 2016-04-26 04:14:41 +10:00
Jesse Boyd
f5bbd59602 clean target ? 2016-04-26 01:41:07 +10:00
Jesse Boyd
644dfc512a *correct id 2016-04-25 07:07:27 +10:00
Jesse Boyd
362490938c Added option clipboard on disk 2016-04-25 06:59:25 +10:00
Jesse Boyd
912ea44cc8 Fixes
Fixes #51
Fixes #49
2016-04-25 04:54:32 +10:00
Jesse Boyd
0da4f6f63a Fixes #48 2016-04-25 02:20:26 +10:00
Jesse Boyd
053d7a6482 Restructure 2016-04-24 06:41:07 +10:00
Jesse Boyd
14dd048662 API and brush improvements. 2016-04-23 02:11:46 +10:00
Jesse Boyd
70362d348f Fix for forest / bump version 2016-04-22 09:12:38 +10:00
Jesse Boyd
e158b4d222 Minor tweaks 2016-04-22 07:10:41 +10:00
Jesse Boyd
fd37adaac8 I realize that you won't be able to see all 512 2016-04-22 06:12:40 +10:00
Jesse Boyd
d38db03600 Rollback optimizations / features 2016-04-22 05:59:24 +10:00
Jesse Boyd
7e0964c118 Use default bukkit block placer if NMS fails
The default block placer uses only the Bukkit API to perform changes.
- It's a bit laggy for larger changes
- Still a lot faster than normal WorldEdit
2016-04-22 01:41:41 +10:00
Jesse Boyd
a7763cd8fd Add support for FactionsOne 2016-04-21 15:53:37 +10:00
Jesse Boyd
bf7d066520 History on disk rollback command
Useful for undoing specific edits.
2016-04-21 14:07:28 +10:00
Jesse Boyd
652a983907 Workaround for CoreProtect logging 2016-04-21 09:40:14 +10:00
Jesse Boyd
e5590ed12f Queue optimizations + WorldGuard global region 2016-04-21 07:53:06 +10:00
Jesse Boyd
9f289f8fac Debug failed chunk load. 2016-04-21 05:05:11 +10:00
Jesse Boyd
de08ef85d7 Fix limits / add cancellation messages 2016-04-21 04:22:47 +10:00
Jesse Boyd
c1acacc208 Add bindings for different architectures 2016-04-20 23:59:21 +10:00
Jesse Boyd
bdec0b7ef4 Delete old history 2016-04-20 10:06:35 +10:00
Jesse Boyd
01d5601b5b Fix for CuboidClipboard rotation 2016-04-20 09:03:50 +10:00
Jesse Boyd
03a2dfec3f Fix method signiture for CuboidClipboard 2016-04-20 07:17:24 +10:00
Jesse Boyd
a8e335e23c Various
- delete session on logout
- load session on world change (disk)
- set default chunk wait to 100ms
2016-04-20 06:30:34 +10:00
Jesse Boyd
33f3cb6ba5 Optional async relighting 2016-04-20 04:11:09 +10:00
Jesse Boyd
505e99b488 Optimizations for 1.9 2016-04-20 01:22:36 +10:00
Jesse Boyd
e535f8adc9 Lastmask / preciousstones fix 2016-04-19 06:48:58 +10:00
Jesse Boyd
f8e1bb0b71 Use blocking queue 2016-04-19 05:07:50 +10:00
Jesse Boyd
9cf4f6c9f0 More optimizations!
Schematics now load in a fraction of a time. (took me 5.13 seconds to
load a 102,572,228 block schematic)

Also made some minor optimizations here and there.
2016-04-18 04:54:27 +10:00
Jesse Boyd
d6ad027fc8 Fix block rotation corrupting block cache 2016-04-17 05:15:21 +10:00
Jesse Boyd
e413318fb7 Fix regen for non cuboid / vp2 / clear sessions on logout 2016-04-16 22:31:20 +10:00
Jesse Boyd
72933df640 Add allowed extents section to config 2016-04-16 19:31:18 +10:00
Jesse Boyd
04e281e72d Fix deform 2016-04-16 18:16:08 +10:00
Jesse Boyd
3f9e202f3a clipboard optimizations
Encode the block as a single byte if possible
Don't bother storing air
Use the block cache where possible
2016-04-15 18:39:36 +10:00
Jesse Boyd
aa06bc19d2 Workaround for WorldEdit's sign bug 2016-04-15 06:29:30 +10:00
Jesse Boyd
2012d56900 Remove version from build 2016-04-15 03:27:50 +10:00
Jesse Boyd
e87f804236 Fixes #28 2016-04-15 02:30:02 +10:00
Jesse Boyd
5097f0cf63 Fixes #30
The CuboidRegion class will now queue blocks in layers for a chunk
before moving onto the next chunk. This results in higher cache hits for
history enabled queues. It also allows the block placer to start earlier
during preprocessing with edits affecting > 64 (configurable) chunks.

Note: with history on disk enabled, this means near unlimited sized
edits (for certain commands) might be feasible.
2016-04-15 00:18:22 +10:00
Jesse Boyd
caa0e475ad Have regen respect protection 2016-04-14 19:22:13 +10:00
Jesse Boyd
9f57b89756 Fixes #27 (/up and /ceil)
Also change the commands to go through the editSession so it can be
restricted/undone
2016-04-14 18:27:02 +10:00
Jesse Boyd
04dab97460 Added regen for forge (#23) 2016-04-14 18:07:51 +10:00
Jesse Boyd
fff311a99f Fixes #23 2016-04-14 07:31:02 +10:00
Jesse Boyd
5b3e0973f2 Fixes #21 2016-04-13 20:04:01 +10:00
Jesse Boyd
42654bd784 Various
fix a few async issues (nbt setting/cut/plotsquared hook)
fixes #1
allow some debug options to be configurable (chunk wait / buffer size)
add region restriction option
2016-04-07 06:19:17 +10:00
Jesse Boyd
ab4af2741f Prefix 2016-04-06 03:02:15 +10:00
Jesse Boyd
fb4ed9362d Various
per player limits
- max blocks
- max checks
- max fails
- max entities
- max blockstates
Also add command limit
Fix negative coord compression issue
2016-04-06 01:11:24 +10:00
Jesse Boyd
ba04eb9fc8 Cleanup / persistent history 2016-04-05 02:07:36 +10:00
Jesse Boyd
0dfbd44c72 Faster compression
Using java's inbuilt compression algorithms (gzip or deflator both)  was
a bit too slow for me.

Fawe is now using the LZ4 compression algorithm, which is super fast. So
fast that I decided to add a default 1 pass of compression to history.
Enabling further compression will do an additional high LZ4 compression.
2016-04-04 18:39:00 +10:00
Jesse Boyd
fb15a425a7 Queue, editsession and history optimizations
Streamlined the queue so now the queue doesn't need to be fetched on
each block
Removed block reording from editsession as it alone takes half a
second/million blocks
Replaced block fetch from history extent with optimized algorithm.
2016-04-04 04:03:35 +10:00
Jesse Boyd
0c55e3c7cb Clipboard compression
Reduce the size of the clipboard by encoding the BaseBlock as a short
array, with an accompanying map for nbt.
2016-04-03 17:13:22 +10:00
Jesse Boyd
d11bb1ac0a Fix for nbt 2016-04-03 05:19:14 +10:00
Jesse Boyd
789098dc79 Finish with sponge depend
Also fix 1.8 issue for kh498
2016-04-03 02:50:50 +10:00
Jesse Boyd
fb8863cd06 Start work on forge port 2016-04-02 16:58:42 +11:00
Jesse Boyd
a924dcd66a Fix errors 2016-04-02 15:25:04 +11:00
Jesse Boyd
e71fd64e9c Add gradle project 2016-04-02 15:06:24 +11:00