Commit Graph

750 Commits

Author SHA1 Message Date
Mykyta Komarnytskyy 0883fb0aec Improve all recipe fetching
Every recipe (of every recipe type) is now cached in an ArrayList, which will makes accessing all available recipes a ton faster.

This speeds up player joining by ~223843 ns (0.2 ms) since all recipes have already been cached and the stream that would have normally created a Set of all recipes has now been replaced. An ArrayList was chosen for its fast size() method, which makes serialization in PacketPlayOutRecipeUpdate as fast as possible.
2020-10-10 13:55:14 -07:00
Mykyta Komarnytskyy 2e894832ed Remove unstable/unnecessary patches
- Removed async entity tracking, as this is not a good implementation and has caused issues numerous times
- Removed "0037-Load-also-the-chunk-that-you-re-teleporting-to" as it does not fix the core problem
- Removed "0048-Fix-villager-dupe" as it was deemed unnecessary
2020-10-10 13:09:06 -07:00
Ivan Pekov eb3576178e
Git is driving me nuts 2020-10-09 14:13:24 +03:00
Ivan Pekov 0e517a7994
For some reason this didnt wanna apply
Shrugs internally
2020-10-09 14:03:00 +03:00
Ivan Pekov d1350246d5
Bandaid NPE from CraftPlayer#registerPlayer 2020-10-09 13:58:15 +03:00
Ivan Pekov 2ad8efe6ae
Make async entity tracking more thread-safe
Fixes GH-247
2020-10-09 06:25:18 +03:00
Ivan Pekov 252bf7e437
Updated Upstream and Sidestream(s) (Tuinity/Origami/Purpur)
Upstream/An Sidestream has released updates that appears to apply and compile correctly
This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing.

Tuinity Changes:
82e5dfb Updated Upstream (Paper)

Origami Changes:
7e2a3f6 Update Paper

Purpur Changes:
5cc7709 Make mobs avoid stonecutter blocks
129484a Stonecutter damage
8295d22 Updated Upstream (Paper)
d23a158 Infinity bow settings
5c0a270 Make infinite lava number of required sources configurable
ef17322 Update readme
70e2ec0 Cleanup codebase
81ca45c Flying squids! Oh my!
2020-10-08 14:24:41 +03:00
Ivan Pekov 0a19056af0
Drop akarin's stream replacements
Fixes bad performance out of the box for production. 
Apparently there's another issue which is thinkering our minds up, it is that after certain amount of time the gc just can't keep up. We're investigating into this, but until it is fixed - this is gonna be a stable build 

Co-authored-by: Mykyta Komarn <nkomarn@hotmail.com>
2020-10-08 14:04:22 +03:00
Mykyta Komarn 5431509f72 Greatly improve recipe and furnace performance
Remove more fucked up stream conversions. Also use cached recipe in furnaces when possible, and only lookup when absolutely necessary.

On a server with 8.8K furnaces, the average tick rate was ~0.3-1ms higher when furnaces were burning vs idle furnaces, as compared to ~10ms difference in earlier revisions of these patches.
2020-10-06 18:36:00 -07:00
Ivan Pekov 2eaa32ff53
Avoid at least 3 ops when creating aList
Should reduce BehaviorFindPosition load more
2020-10-06 20:04:03 +03:00
Ivan Pekov 407939c26d
Some small fixes here and there
Improved some stream replacements
Fixes GH-243
2020-10-06 18:59:16 +03:00
budgidiere 1f4226774b
remove ci-skip because apparently we just don't have the plugin 2020-10-06 10:35:00 -05:00
budgidiere 929ba7377e
[ci-skip] add ci-skip 2020-10-06 10:29:30 -05:00
budgidiere 9066454960
Clean Workspace If build failure 2020-10-06 10:10:51 -05:00
ishland c8b5db96a6
Bandaid fix for recursive awaitTasks call 2020-10-06 17:47:23 +03:00
Ivan Pekov 1039afef5d
Advancement optimizations
This drops rainforest's async advancements patch, which was very unsafe, and replaces it with our own optimization patch, which isn't async, but it is enough to lower the pressure upon join.
2020-10-06 17:26:45 +03:00
Mykyta c8320920b0
Entity tracker optimizations (#232)
* Async entity tracking

This is very basic, and I plan to commit the full entity tracker optimizations in the near future.

* Fix compatibility with Citizens

This also simplifies the patch quite a bit

* Make the patch much more safer

* Current progress

Maybe most of those \"ensureMain\" calls are unnecessary, but it has to be tested.
the only problems now are that entities are teleporting instead of normally moving

* Fix entities "teleporting"

* Fixup some of the diff

* Add some notes

Co-authored-by: Ivan Pekov <ivan@mrivanplays.com>
2020-10-05 22:05:57 -05:00
Mykyta Komarn 2019524096 [CI-SKIP] Change Glue List patch names for licensing 2020-10-05 18:53:27 -07:00
Mykyta Komarn d62c2f7cca Remove Tic-TACS threading fix from WeightedList patch 2020-10-05 18:24:35 -07:00
Mykyta Komarn 9d72c63586 Remove faulty stream replacements
We had some old, faulty stream replacements in place before, which caused a lot of tick lag compared to just using Mojang's streams in vanilla.

Removing these stream replacements lowered average tick from 12ms w/ 1 player online to 3.5ms with 3 players online.

References and benchmarks:
Performance impact in ms: https://imgur.com/a/yuZs5Il
MSPT comparison: https://imgur.com/a/X4hqZ2P
Old, faulty stream replacement flow: https://imgur.com/a/meSXmaJ
Mojang's vanilla streams flow: https://imgur.com/a/9Yf6yQc
2020-10-05 17:40:09 -07:00
budgidiere b172cd842f
Remove some old debug messages from scripts (#241)
* Update applyUpstream.sh

* Update importSources.sh
2020-10-05 14:01:29 -05:00
Ivan Pekov 2c55264dba
Ensure pools create daemon threads 2020-10-05 17:53:08 +03:00
Mykyta 93580df5f2
Better appearance to the TPS command
Use Purpur's isLagging() API and combine mspt + nspt into one line.

Pretty sexy.
2020-10-05 13:48:12 +03:00
Ivan Pekov d12a716ef7
Where did this go?
This is a very important piece of minecraft ticking. How did I miss this? Maybe I need new glasses...
2020-10-04 18:57:55 +03:00
Ivan Pekov 755f429c32
Patch port changes
Dropped some patches from purpur, added 2 patches from purpur.
Readded hopper optimizations from origami.
2020-10-04 18:43:50 +03:00
ishland 82a792e786
Improve task performance (#233)
* Improve task performance

* Yatopia comments

* Remove unnecessary diff

* Rebuild patches

* Fixes

* Polish things up

* Minimize diff and Yatopia comments

* Update PATCHES.md

* Made suggested changes
2020-10-04 10:25:36 -05:00
Ivan Pekov 62a4ea74fd
Your local dumbass did it again 2020-10-04 12:10:31 +03:00
Ivan Pekov 9e9a295053
Updated Upstream and Sidestream(s) (Tuinity/Purpur)
Upstream/An Sidestream has released updates that appears to apply and compile correctly
This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing.

Tuinity Changes:
d41103d Updated Upstream (Paper)

Purpur Changes:
4984bb7 Updated Upstream (Paper)
a16a79c Updated Upstream (Paper)
bd83a6b Add predicate to recipe's ExactChoice ingredient (missing NMS side)
d469979 Rebuild patches
802a659 Persistent TileEntity Lore & DisplayName
2020-10-04 12:00:34 +03:00
Mykyta 960b9733e5
[CI-SKIP] Clean up the README (#231)
* Clean up the README

* Update headings and dev build download link

* Minor spelling shit
2020-10-03 12:05:10 -07:00
Ivan Pekov 8a67951956
Updated Upstream and Sidestream(s) (Tuinity/EMC/Purpur)
Upstream/An Sidestream has released updates that appears to apply and compile correctly
This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing.

Tuinity Changes:
1d73f6c Updated Upstream (Paper)

EMC Changes:
81f5e1fa Updated Paper
faf92d5c Updated Paper
7e1e4bad Update patch name to reflect what actually is being changed
019ceb9f Update patch name for fishing hook api
647b2063 Separate out a patch for using getType in the ItemStack isSimilar method
38734f9b Updated Paper
ac260ccd Update to 1.16.3
4977edff Updated Paper

Purpur Changes:
debedee Add predicate to recipe's ExactChoice ingredient
2459033 Rebuild patches
17d8ee8 Add option to disable zombies pathfinding to villagers only when lagging
1e25c2f Fix typo/error in a purpur world setting
da9953a Updated Upstream (Paper)
2020-10-03 10:16:41 +03:00
Ivan Pekov f33511fdd2
Replace asynchronous json list save with json list save timings
so we see if this patch is necessary first. then we will reimplement it properly, as the current patch
is not race condition safe.
2020-10-02 17:54:16 +03:00
Ivan Pekov d065d41c0e
Drop this unsafe shit
Apparently caused issues we werent aware of.
Unfortunately there's no way to improve it without blocking the main thread.
2020-10-02 17:00:13 +03:00
Ivan Pekov ef14088415
Don't save advancement and statistic data async
Fixes advancement reset
2020-10-02 14:45:30 +03:00
Ivan Pekov 25423541d6
Updated Upstream and Sidestream(s) (Tuinity)
Upstream/An Sidestream has released updates that appears to apply and compile correctly
This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing.

Tuinity Changes:
8ba1bab Updated Upstream (Paper)
2020-10-02 14:23:32 +03:00
Ivan Pekov e7043ccbff
Replace ArrayList and LinkedList usage in our code with GlueList
Some stuff wouldn't be _that_ heavy with this change.
Is not a very big deal, but it provides extra performance.
2020-10-02 14:05:15 +03:00
Mykyta Komarn f18a93c223 Remove EMC hopper optimization
This was causing hoppers to only attempt to suck in items every second. Needless to say, this broke vanilla hopper behavior.

I'll be bringing some better hopper optimizations in the near future.
2020-10-01 18:24:51 -07:00
Ivan Pekov e14836e8ea
Drop lithium noise patches & voronoi
Fixes #226

All these were doing some kind of weirdness to the chunk generation, thats why they were dropped.
Unfortunately this will decrease performance, but bugs is our priority before speed.
2020-10-01 19:51:56 +03:00
budgidiere 576ab42b68
Heavily optimize recipe lookups in CraftingManager
Author is @nkomarn .
2020-10-01 17:52:27 +03:00
Ivan Pekov 5b37c44801
Updated Upstream and Sidestream(s) (Tuinity/Origami/Purpur)
Upstream/An Sidestream has released updates that appears to apply and compile correctly
This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing.

Tuinity Changes:
ac6b72e Updated Upstream (Paper)

Origami Changes:
b69a015 Fix pre spawn event shouldAbortSpawn not working correctly for golems

Purpur Changes:
8dfb30b Updated Upstream (Paper & Tuinity)
2020-10-01 14:30:11 +03:00
Ivan Pekov 2b10346ecf
Keep compatibility with ProtocolLib
Closes #225
2020-10-01 14:13:08 +03:00
Mykyta Komarn 0b9ce71ab6 Use FastUtil maps for fuel cache 2020-09-30 18:12:52 -07:00
Mykyta Komarn 78611f3653 Add GlueList
This is the fastest List implementation I could find. We will be using this heavily.
2020-09-30 18:06:10 -07:00
budgidiere 06ddd02263
Fix some Licencing stuff 2020-09-30 17:15:20 -05:00
budgidiere 320c8d8bf8
Update 0054-lithium-NoiseChunkGeneratorMixin.patch 2020-09-30 14:00:48 -05:00
budgidiere 7e465bead3
change height (#223) 2020-09-30 13:40:22 -05:00
budgidiere 221df32839
[ci-skip] use new logo 2020-09-30 13:35:46 -05:00
budgidiere fd80ca40f3
[ci-skip] add logo 2020-09-30 13:35:09 -05:00
budgidiere 611b6ca461
Update PATCHES.md 2020-09-30 11:20:15 -05:00
budgidiere 2385dcb2b1
Update 0064-Configurable-flight-checks.patch 2020-09-30 11:19:16 -05:00
Ivan Pekov db58abea26
Add nspt command
Also add configurable flight checks, and removed a unused method in BlockPosition
2020-09-30 18:35:35 +03:00