dordsor21
6332b8c965
This ought to be false by default for now
2020-09-28 11:18:16 +01:00
dordsor21
82bcc0e9a5
Allow "post processing" of chunks ( #658 )
...
* begin allowing "post processing" of chunks
- restores legacy capability to continue saving edits in the background after sending the chunks
- speeds up the edit clientside
- nail in the coffin of the terrible and staticly coded coreedit
- We should totally make IronGolem work so Core* is no longer used by anyone
* begin allowing background history saving
* Handle post processors in queues properly
* Use futures for postprocessing so we're not waiting for them needlessly
* better use of closed boolean
* Reword
2020-09-28 11:13:02 +01:00
dordsor21
bd4a3a3efd
Fix inconsistency with legacy regarding loading schematics from URL
2020-09-26 22:20:47 +01:00
dordsor21
68deed1469
schematics are just fun
2020-09-26 21:56:38 +01:00
dordsor21
1766c62278
Attempt to recover from incorrectly-extensioned schematic reads ( #660 )
...
* Attempt to recover from incorrectly-extensioned schematic reads
- Should help avoid #605 (I'm assuming this is the issue)
- Possible issues with the InputStream being closed/pre-read or so? Thoughts:?
* more verbose checking in the first place
2020-09-25 15:15:00 +01:00
dordsor21
65747bf8f8
accessing clipboards should not be synchronized to LocalSession ( #653 )
...
* accessing clipboards should not be synchronized to LocalSession
I believe this may be the issue causing thread locks when wrapping new players. If we're attempting to run a synchronised method within the LocalSesison when initialising it, it may go wrong..?
* nullcheck within synchronisation
2020-09-25 15:02:09 +01:00
dordsor21
855389c785
Allow parallelisation of masks ( #636 )
...
* Allow parallelisation of masks
Increasing performance improvement with increased masking complexity and edit size.
* Address comments
- Rename Mask#clone to Mask#copy
- Rename Mask2D#copy to Mask2D#copy2D
- Correct formatting
* cx -> centerX
* Make various operations relying on a single SingleThreadQueueExtent instance (mainly brushes) thread safe
2020-09-25 15:00:42 +01:00
Aurora
3f1e8fa4d4
Fixes unsafe memory access using cross server clipboards ( #651 )
...
Co-authored-by: wea_ondara <wea_ondara@alpenblock.net>
2020-09-24 18:10:43 +01:00
dordsor21
5e67c1b658
Squash errors and debug to aid fixing #652 properly
2020-09-22 11:34:45 +01:00
dordsor21
3b660756f6
Fix #647
2020-09-21 17:10:33 +01:00
Aurora
3b2fe2ffde
Fix toggle permission ( #644 )
...
* Fixes #529
* fix superperms perm toggling
Co-authored-by: @weaondara <wea_ondara@alpenblock.net>
2020-09-21 17:07:35 +02:00
Aurora
806916d6e8
Fix entity rotation ( #642 )
...
* fix entity rotation
fixes #577
Co-authored-by: wea_ondara <wea_ondara@alpenblock.net>
2020-09-20 16:33:07 +02:00
dordsor21
845c32bd18
Fix #639
...
looks like we too speedy
2020-09-19 20:46:46 +01:00
dordsor21
be0e33746c
Ensure the block actually can be waterlogged when checking for waterlogged status.
...
Fixes #632
Fixed #633
2020-09-19 16:54:42 +01:00
dordsor21
aed6807eb2
comment
2020-09-18 18:54:14 +01:00
dordsor21
cf750ba00c
Correct tag name for writing and add compatibilty for created corrupt schematics
2020-09-18 18:31:42 +01:00
dordsor21
9c34702a47
Correct tag name for tile entities
2020-09-18 18:29:36 +01:00
dordsor21
218f570cb1
Fix LimitExtent and processing of Plot regions
...
Fixes #627
Fixes #609
2020-09-18 17:40:55 +01:00
dordsor21
fc91c3b56e
Clone mutable regions given to clipboards
...
Fixes #630
2020-09-18 15:02:25 +01:00
dordsor21
8e8bd810b5
Relight after completing P2 operations
...
teporarily fix #629
2020-09-18 12:38:17 +01:00
dordsor21
7375827844
implement getBiome(BlockVector3)
...
fixes #622
2020-09-18 11:52:49 +01:00
Matt
2e73746abe
Remove Kotlin ( #625 )
...
Shrinks the jar size since we no longer must bundle the Kotlin library. The downside is that some classes grew in size compared to their Kotlin versions.
Many contributors didn't care for Kotlin either.
2020-09-17 16:31:55 -04:00
NotMyFault
4f6c904615
Merge pull request #617 from IronApollo/vault-fix
...
Fix vault, remove 1.14 and DummyFawe
2020-09-16 18:06:57 +02:00
N0tMyFaultOG
241e85e491
Strip 1.14
2020-09-16 16:01:49 +02:00
IronApollo
f5f5a55b4c
Fix limits
2020-09-16 14:11:26 +01:00
dordsor21
07a5ef5ab4
Fix incorrect x/y/z stuff;
...
Fixes #616
Fixes #614
2020-09-14 20:17:55 +01:00
dordsor21
3d2052b0c8
Better skylight handling and fix opacity on materials
2020-09-14 18:33:35 +01:00
dordsor21
d6c9a887ac
Fixlighting now also calculates heightmaps
...
Fixes #386 and #438 seems fixed, but that might be something else that fixed?
2020-09-14 14:19:23 +01:00
Hannes Greule
0685881f64
Implement SupplyingExtent ( #613 )
2020-09-14 11:20:26 +01:00
dordsor21
4243e8e86b
Begin working on improved lighting to better match 1.14's "new" light… ( #611 )
...
* Begin working on improved lighting to better match 1.14's "new" lighting engine
I guess the "new" lighting engine is somewhat old now lol
Also implement the remove first stuff to fixlight
* And then make it work
2020-09-13 15:36:36 +01:00
Matt
d00899e177
More support for 3D biomes ( #608 )
...
* More support for 3D biomes
* Resolved merge conflicts
2020-09-12 15:31:42 +02:00
Matt
de199a0e59
More work on masks ( #607 )
...
* Add a #air mask, the opposite of #existing (#1511 )
(cherry picked from commit 84fa2bbbc63de7bece01f41c0d5cb7d85cf129e6)
* Remove unused methods in Mask.java
* Remove `test(Extent, BlockVector3)` from Masks.
This was a poorly planned idea. This should save some memory too.
Authored-by: Matthew Miller <mnmiller1@me.com>
2020-09-11 21:13:31 +02:00
IronApollo
1fa0777d3b
Fix erosion and pull brushes
...
Fixes #559
2020-09-11 20:58:27 +02:00
Josh Knight
4a18147125
Merge pull request #600 from IronApollo/mask-work
...
Reimplement Masks + Fixes
2020-09-08 16:21:20 -04:00
MattBDev
2fcf4bdf7e
Updated Gradle
2020-09-08 15:34:53 -04:00
IronApollo
dc465f7d3c
Reformat, fix RichParser suggestions
2020-09-07 21:46:54 -04:00
IronApollo
7929320611
Merge branch '1.16' of https://github.com/IntellectualSites/FastAsyncWorldEdit into mask-work
2020-09-07 21:45:05 -04:00
Aurora
ddff407f18
Fix convert function in AbstractDirectionConverter
2020-09-07 20:18:31 +02:00
IronApollo
6807ccd960
Reimplement Masks + Fixes
...
Masks Reimplemented:
- Adjacent (~): Adjacent to a specific number of other blocks.
- Example: ~[oak_log][1][4]
- Extrema (#extrema): Restrict to near specific terrain extrema. The "-o" flag will only overlay existing terrain.
- Example: #extrema[0d][45d][-o]
- ROC Angle (#roc): Restrict to near specific terrain slope rate of change. The "-o" flag will only overlay existing terrain.
- Example: #roc[0d][45d][-o]
- Surface (#surface): Restrict to surfaces (any solid block touching air).
- Example: #surface
- Wall (#wall): Restrict to walls (any block n,e,s,w of air).
- Example: #wall
Other Changes:
- Minor logic change to angle mask's overlay.
- Fixed negating air mask.
- Added overlay flag to angle (/) mask.
2020-09-06 18:42:43 -04:00
Octavia Togami
1d05da75d8
Regenerate list classes from MCUtils
...
(cherry picked from commit da4d70fab5c5e5efe242260b5d09ca273f944c55)
2020-09-03 12:46:17 +01:00
Octavia Togami
f7e1f70e19
Replace BlockStates reading with new 1.16 logic ( #1413 )
...
* Replace BlockStates reading with new 1.16 logic
* Account for running on older platforms
Splits out the new reading to AnvilChunk16, uses data version to detect
the appropriate version.
* Move data versions to Constants
Also fixes some logic hiccups that become obvious with the new names.
* Fix LegacyMapper DFU handling
* Fix factor indexing
(cherry picked from commit 8c171f0929e8530aab1731d122649adc58c5161f)
2020-09-02 11:25:50 -04:00
Octavia Togami
28767d6e0f
Officially propagate GPL downwards to all files
...
(cherry picked from commit f2ce020da059718e34342c149172944dfd02b775)
2020-09-01 16:30:43 -04:00
MattBDev
eeb02d3937
Update gradle and kotlin
2020-08-24 22:53:29 -04:00
MattBDev
8a6db57433
Removed useless functionality
2020-08-24 22:19:07 -04:00
MattBDev
a9d37fc6e5
Added BiomeMask.java and updated minor parts of miscellaneous files
2020-08-24 22:04:56 -04:00
MattBDev
02886b0387
Updated the WorldEdit license using find and replace
2020-08-24 21:31:47 -04:00
MattBDev
ce078aad70
Updated many exception classes
2020-08-24 21:29:34 -04:00
MattBDev
75a18b9d5b
Update BukkitImplLoader
2020-08-24 21:20:18 -04:00
MattBDev
fd8cf1ebba
Merge branch '1.16' of https://github.com/IntellectualSites/FastAsyncWorldEdit into 1.16
2020-08-24 21:17:53 -04:00
N0tMyFaultOG
c0dee5caee
Fixes #579
2020-08-24 21:39:41 +02:00
MattBDev
fd336feb46
Upstream merge of TranslationManager and ResourceLoader
2020-08-24 12:38:30 -04:00
N0tMyFaultOG
6cb8352686
1.16.2
...
- My IJ is broke but this should work. Dunno if I got all nms changes, but we will see.
2020-08-23 17:18:29 +02:00
NotMyFault
1e070b3a71
Merge pull request #518 from aurorasmiles/fixEntities
...
start reimplementing entities
2020-08-21 18:27:25 +02:00
NotMyFault
75cbae8261
Merge pull request #568 from HazelTheWitch/fix-spline-sweep
...
Fixed NullPointerException in Spline and Sweep brush
2020-08-21 18:25:09 +02:00
NotMyFault
c8a9919c63
Merge pull request #569 from IntellectualSites/feature/better-noise
...
Feature/better noise
2020-08-21 18:20:30 +02:00
Hazel Trinity
c725dd0b18
Uses setDirection
...
SweepBrush.java should be correct
2020-08-19 10:13:41 -07:00
aurorasmiles
947871281f
Fix styling issues
2020-08-19 11:08:59 +02:00
MattBDev
49f1658f0b
Merge remote-tracking branch 'origin/1.16' into 1.16
2020-08-18 15:50:00 -04:00
MattBDev
79b5612311
Upstream merge of the region package and things that may have broken with it.
2020-08-18 15:48:31 -04:00
MattBDev
de34047365
Upstream merge of the registry package
2020-08-18 13:46:14 -04:00
MattBDev
72a4bb3552
Upstream merge of the scripting package
2020-08-18 13:43:18 -04:00
Hazel Trinity
73d70527f3
Signed angles
2020-08-16 16:05:09 -07:00
Hazel Trinity
5a482f4d38
Fixed argument exception
...
If someone knows better please tell
2020-08-16 15:40:53 -07:00
Aurora
e74cb33847
comment biome change output back in
2020-08-16 17:05:09 +02:00
Aurora
3aa041aa7e
Merge remote-tracking branch 'upstream/1.16' into fixEntities
2020-08-16 17:01:45 +02:00
Hazel Trinity
054e60729b
Slightly better angle calculation
2020-08-16 02:15:05 -07:00
Hazel Trinity
5c32cc17a2
Used Reparameterized Interpolation
2020-08-16 01:11:12 -07:00
Hazel Trinity
e5f092c3ef
Updated ClipboardSpline paste
2020-08-16 01:10:51 -07:00
Hazel Trinity
cd0dac813c
Incorrectly rounding results.
2020-08-15 23:39:30 -07:00
Hazel Trinity
e51f6e562d
Sweep brush semi-fix
2020-08-15 14:20:47 -07:00
N0tMyFaultOG
5f2d60deb3
Remove dead translations, Crowdin ftw
2020-08-15 19:51:15 +02:00
Hazel Trinity
da9c4ad543
Handle null case in equality checking BlockVector3+DFSNode
2020-08-15 09:28:39 -07:00
Hannes Greule
da9d85e427
Point out API usage of RandomCollection
2020-08-15 18:05:26 +02:00
Hannes Greule
6fb202443b
Clean up RandomCollection architecture
2020-08-15 13:18:14 +02:00
Hannes Greule
bb05bd24d9
Implement more noise patterns
2020-08-15 13:17:44 +02:00
Hazel Trinity
b7e9547cd5
Fixed NullPointerException in Spline and Sweep brush
2020-08-14 19:04:11 -07:00
MattBDev
4041b2aa1d
Updated Math package with upstream and formatted code
2020-08-14 20:49:59 -04:00
MattBDev
69e547688b
Updated WNA package with upstream
2020-08-14 20:25:21 -04:00
MattBDev
0a07599abf
Update build files and NOTICE.txt
2020-08-14 15:29:15 -04:00
N0tMyFaultOG
bbff5c60b2
Fix metrics
2020-08-14 15:04:06 -04:00
Hannes Greule
dcdb42eadb
Fix NPE on AbstractRegion#equals
2020-08-06 23:53:24 +02:00
wea_ondara
b582d3f70d
fix compile error
2020-08-03 17:43:36 +02:00
wea_ondara
1097ac7889
remove entity properly
2020-08-03 17:35:53 +02:00
wea_ondara
9b95343601
keep original constructor to not break plugin that use the api
2020-08-03 17:34:06 +02:00
wea_ondara
629a237fb5
set forge uuid values
2020-08-03 17:27:08 +02:00
NotMyFault
3b7f7237b8
Improve debugpaste declaration
2020-08-01 23:30:48 +02:00
N0tMyFaultOG
7704ec5cd4
Fix paste service interacting with EH's paste service
...
We need to differ here between our own and EH or we break pastes from WorldGuard or any other EH software.
2020-08-01 13:52:54 +02:00
N0tMyFaultOG
b01e1be21b
Add more information to the debugpaste
2020-07-31 20:16:01 +02:00
wea_ondara
bf09d6922c
fix //move -e
2020-07-30 14:19:04 +02:00
wea_ondara
3c70cdc9fd
more cleanup
2020-07-29 22:47:47 +02:00
wea_ondara
ae95ad8fe7
cleanup
2020-07-29 22:45:55 +02:00
wea_ondara
ae23794b43
fix //cut -e
2020-07-29 22:43:52 +02:00
wea_ondara
26110d336b
cleanup
2020-07-27 23:54:41 +02:00
wea_ondara
24fbd21ff1
added missing entity functions; all or nothing; and nothing did not work
2020-07-27 23:51:26 +02:00
wea_ondara
84d2c8f2ce
fix redo exception; fix positioning of entities in redo
2020-07-26 19:52:03 +02:00
wea_ondara
51cdd66c62
fix imports
2020-07-26 19:08:35 +02:00
wea_ondara
f24ad69f8f
fix entity paste location offsets
2020-07-26 19:05:32 +02:00
Aurora
b411ea9af4
Merge branch '1.16' of https://github.com/IntellectualSites/FastAsyncWorldEdit into fixEntities
2020-07-26 19:03:46 +02:00
wea_ondara
a38c82304a
fix rotation of entities in clipboard
2020-07-26 18:26:21 +02:00
wea_ondara
950f343339
fix entity undo; amend constants
2020-07-26 15:54:02 +02:00
wea_ondara
50971ee311
fix entity undo
2020-07-26 15:52:51 +02:00
MattBDev
99745b8e59
Fix piston breaking
2020-07-15 13:05:55 -04:00
MattBDev
db3718e092
Merge remote-tracking branch 'origin/1.16' into 1.16
2020-07-14 19:18:06 -04:00
Hannes Greule
eb74c7307c
Fix blob brush doing weird things due to mutable vectors
2020-07-14 21:32:16 +02:00
MattBDev
3bc692ff11
Part 1 of upstream merge and format
2020-07-13 22:50:59 -04:00
MattBDev
204de7eab5
Add new annotations from upstream
2020-07-13 15:02:35 -04:00
MattBDev
1e80c0429a
Merge remote-tracking branch 'origin/1.16' into 1.16
2020-07-13 13:09:55 -04:00
N0tMyFaultOG
da96365504
Updating a few links
2020-07-13 13:13:43 +02:00
Hannes Greule
11e762f07a
Add basic angle mask suggestions
...
Mask suggestions are a bit broken in general so this doesn't change much
2020-07-13 11:15:01 +02:00
Hannes Greule
7198c03cd3
Reimplement angle mask parsing
2020-07-13 02:25:30 +02:00
Hannes Greule
8e33ff9549
Make mask parsing actually working
2020-07-13 02:18:05 +02:00
Octavia Togami
4c299bc0b8
Replace setPosition with trySetPosition ( #1403 )
...
Allows cancellation information to be fed back into the ascend/descend
algorithms.
(cherry picked from commit 71e104bcb187a5313e88dda5df79059c8ffbc1fe)
2020-07-10 13:22:48 -04:00
NotMyFault
c82fec931a
Update discord link at debugpaste
2020-07-09 23:43:48 +02:00
dordsor21
33b2b634ac
Allow specific P2 queue hooks to be disabled
2020-07-09 22:14:24 +01:00
MattBDev
6d6de61560
Updated missing biomes, entities, and categories.
2020-07-06 23:54:55 -04:00
Matthew Miller
39439fb405
fix: require extent for mask parsing ( #1373 )
...
(cherry picked from commit 1ced57c301bc1c98667a260fd8b6aa128675f0d2)
2020-07-06 23:47:33 -04:00
Octavia Togami
c0bfe06e4b
Set ES6 compat flag for Rhino
...
(cherry picked from commit 849a515d4a5c02c083e5ab343db40d7eb05b2f51)
2020-07-06 23:45:28 -04:00
Hannes Greule
6fb10c3879
Make surface brush not replacing the whole world
2020-07-06 02:30:08 +02:00
Hannes Greule
ed6f3e7b4a
Implement simplex mask ( fixes #437 )
2020-07-05 11:19:48 +02:00
dordsor21
704e76eb6d
Fixes #519
...
Use regex for finding colour codes
Merge styles rather than replacing and undoing our work sometimes.
2020-07-04 14:15:49 +01:00
Hannes Greule
11373c865a
Fix BlockCategoryMasks not working
2020-07-03 21:57:30 +02:00
Hannes Greule
9da4bbef5f
Fix scatter/splatter brush
2020-07-03 20:43:34 +02:00
aurorasmiles
05ef46994e
Update IChunkExtent.java
...
fix Indentation
2020-07-03 20:03:34 +02:00
Aurora
bc45a112ee
Merge branch '1.16' of https://github.com/IntellectualSites/FastAsyncWorldEdit into fixEntities
2020-07-03 19:54:08 +02:00
Aurora
94b1233d98
implement entities in paste -e
2020-07-03 19:52:55 +02:00
dordsor21
77204df3f0
prevent players being teleported down a single block after some edits
2020-07-03 16:56:20 +01:00
dordsor21
e2ab87cc07
lazy //deform AIOOB fix.
...
Fixes #495
2020-07-03 16:45:28 +01:00
dordsor21
f7d375c76c
Lazy heightmap range fix
2020-07-03 16:29:27 +01:00
dordsor21
9e25c736a0
Add new blocks to BlockTypes
2020-07-03 14:12:43 +01:00
dordsor21
2812841481
Add -p flag to //drain to allow kelp and watergrass to be removed.
...
properly fixed #464
2020-07-03 14:01:16 +01:00
dordsor21
ea7897934f
Implement ability to use -w flag on //drain
...
fixes #464
2020-07-03 13:49:17 +01:00
dordsor21
fae528ab64
add a couple more changes++
...
Fixes #508
2020-07-03 13:18:09 +01:00
dordsor21
f1d4104480
Bunch of changes to help masks
2020-07-02 22:09:12 +01:00
dordsor21
18c9da372c
GetBlocks should default to air not reserved
2020-07-02 18:16:15 +01:00
dordsor21
d3afc9c65d
Update to p2 5.12.2 and implement clear pipeline
2020-07-02 14:34:05 +01:00
MattBDev
ac314fcedb
Gradle update
2020-07-01 20:06:59 -04:00
Aurora
34298f7dee
Add back the getEntity Stuff since it seems to work fine
2020-07-01 19:28:38 +02:00
MattBDev
0fb564be0c
Merge branch '1.16' of https://github.com/IntellectualSites/FastAsyncWorldEdit into 1.16
...
Conflicts:
worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/AsyncWorld.java
worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncDataContainer.java
2020-07-01 12:48:12 -04:00
Aurora
9fc2387f11
Revert "start reimplementing entities"
...
This reverts commit aac02ceea1
.
2020-07-01 14:54:11 +02:00
Aurora
b96d45e4e6
merge 1.16
2020-07-01 14:46:25 +02:00
dordsor21
efc1a888d8
update links, versions, etc
2020-07-01 13:17:19 +01:00
Hannes Greule
0bb6bc3563
Start reimplementation of simplex pattern ( #520 )
...
* Start reimplementation of simplex pattern
* Fix suggestions
* Allow nested weighted patterns
* Add documentation and improve error handling
* Remove unnecessary code and obsolete TODOs
2020-07-01 13:01:39 +01:00
dordsor21
3b19738ea0
Merge branch '1.15' into 1.16
...
# Conflicts:
# worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_16_1/BukkitGetBlocks_1_16_1.java
# worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/AsyncWorld.java
# worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/wrapper/state/AsyncDataContainer.java
2020-07-01 12:47:04 +01:00
dordsor21
3f3c49c0a8
Looks like working block setting and removal
2020-07-01 12:41:20 +01:00
dordsor21
f84958957c
Fix various lighting issues
...
fixes #496
possibly fixes #497
2020-06-30 13:44:26 +01:00
Octavia Togami
d232dc28e3
Cherry-pick WNA, minor changes. 1.16 VERY WIP
...
First noticed incident of operations ruining ChunkSections. Do not build and use this unless you're testing.
Rushed some of the changes, gotta sleep. Would be nice to get a review of this one from @mattbdev and @dordsor21
2020-06-29 22:08:16 -04:00
Matthew Miller
4604aa5920
Additional work towards 1.16 compatibility
...
- Very basic implementation of the SideEffects system. Will definitely need fine tuning for it to be functional, but is not considered a priority in my opinion.
- Minor changes to the World interface and World implementations related to the SideEffects system. Shouldn't be the cause of any new bugs but be on the lookout.
- Included debug in BukkitImplLoader.java to assist contributors in understanding what needs to be implemented for the adapter to load properly.
Still very WIP but we're a few steps closer. So far, this is coming along better than I anticipated. Hopefully we can keep the momentum.
2020-06-29 22:08:16 -04:00
Octavia Togami
b59b95c282
Cherry-pick WNA, minor changes. 1.16 VERY WIP
...
First noticed incident of operations ruining ChunkSections. Do not build and use this unless you're testing.
Rushed some of the changes, gotta sleep. Would be nice to get a review of this one from @mattbdev and @dordsor21
2020-06-29 22:05:41 -04:00
MattBDev
2517aca66f
Removed some unnecessary code.
2020-06-28 17:31:13 -04:00
Matthew Miller
82adab77b4
Additional work towards 1.16 compatibility
...
- Very basic implementation of the SideEffects system. Will definitely need fine tuning for it to be functional, but is not considered a priority in my opinion.
- Minor changes to the World interface and World implementations related to the SideEffects system. Shouldn't be the cause of any new bugs but be on the lookout.
- Included debug in BukkitImplLoader.java to assist contributors in understanding what needs to be implemented for the adapter to load properly.
Still very WIP but we're a few steps closer. So far, this is coming along better than I anticipated. Hopefully we can keep the momentum.
2020-06-26 22:14:19 -04:00