Commit Graph

12007 Commits

Author SHA1 Message Date
Dylan K. Taylor
1cc57afd25 Stop the ConsoleReaderThread explicitly, instead of letting ThreadManager do it
this hack dates back to the days when the console reader would get stuck on shutdown on some platforms.
2021-09-10 13:48:01 +01:00
Dylan K. Taylor
334bf1277d BlockTransaction: Return failure if no blocks were changed
fixes #2813
2021-09-10 00:32:46 +01:00
Dylan K. Taylor
082f0f2d57 Player: Generate an InventoryTransaction (with event) for crafting grid/cursor evacuation
this fixes the crack in the armour that allows creative players to drop items even when all drops are being cancelled by plugins.

closes #3284
2021-09-09 17:11:59 +01:00
Dylan K. Taylor
5d4f14b388 Added TransactionBuilderInventory for server-side inventory transaction generation 2021-09-09 17:10:04 +01:00
Dylan K. Taylor
4a787769bf Merge branch 'stable' 2021-09-09 16:06:16 +01:00
Dylan K. Taylor
4c65a0cdaa LegacySkinAdapter: Use 64x64 for persona polyfilled skins
64x32 has some corruption issues and generally just looks really bad.
2021-09-09 16:04:43 +01:00
Dylan K. Taylor
e0e19c67ef World: do not warn about leaked Player entities during world unload
this raises false-positives during shutdown if players were online.
The fact that the player entity leans on the World to clean up after it is slightly problematic, but I'm not sure what else to do about it for now.
2021-09-09 15:55:37 +01:00
Dylan K. Taylor
34f01a3ce3 World: Track entities separately from chunks
this allows entities to exist outside of generated chunks, with one caveat: they won't be saved in such cases.
Obviously, for player entities, this doesn't matter.

fixes #3947
2021-09-09 01:17:41 +01:00
Dylan K. Taylor
ba2bfe0e11 World: depopulate neighbourBlockUpdateQueueIndex sooner
this fixes 2 problems:
1) Blocks which set themselves to something else during onNearbyBlockChange() would not receive any block update
2) A memory leak when blocks in unloaded chunks were scheduled for an update.

I'm a little uneasy about this change, because there must have been some reason why I put this at the end of the block and not at the start, but whatever it is, I can't reason about it, and there's reasons not to put it at the end too.
2021-09-08 22:11:17 +01:00
marshall
b9b1ba9526 Include eye height in Living->lookAt() calculation (#4440) 2021-09-08 21:54:32 +01:00
Dylan K. Taylor
7c943880b2 Do not show update notifications to users running from git sources 2021-09-07 23:52:11 +01:00
Dylan K. Taylor
bc6e73e81d SubChunk: fixed light array GC since native LightArray introduction
since this went native, there was no support for copy-on-write, so this was only lazy-inited, but never cleaned if the array remained empty.
2021-09-07 22:54:54 +01:00
Dylan K. Taylor
11d2e1ef08 Require ext-chunkutils ^0.3.0 2021-09-07 22:53:50 +01:00
Dylan K. Taylor
c605b54591 Accept dev versions of chunkutils2 2021-09-07 22:52:00 +01:00
Dylan K. Taylor
0f70348821 Remove noise 2021-09-07 20:31:13 +01:00
Dylan K. Taylor
72fb49b356 World: add notifyNeighbourBlockUpdate() to allow triggering neighbour block updates on blocks manually
this can be useful if blocks were modified asynchronously.
2021-09-07 20:18:53 +01:00
Dylan K. Taylor
ac55b21fb4 4.0.0-BETA2 is next 2021-09-07 14:19:29 +01:00
Dylan K. Taylor
210b9c7b75 Release 4.0.0-BETA1 2021-09-07 14:19:29 +01:00
Dylan K. Taylor
da0482d330 Solidify version comparison 2021-09-07 12:24:16 +01:00
Dylan K. Taylor
9a745ffc09 Do not enforce suffix checks for API versions 2021-09-07 12:06:36 +01:00
Cosmic
710345d4b0 Implemented Farmland turns to dirt when jumped on. (#4434) 2021-09-06 12:55:52 +01:00
Dylan K. Taylor
931c3ed77d Entity: fixed current movement not being accounted for in fall height
this caused incorrect damage when falling from heights, as well as a bug in #4434.
2021-09-06 12:53:52 +01:00
Dylan K. Taylor
956780c6a6 Entity: add getters and setters for fallDistance 2021-09-05 23:59:04 +01:00
Dylan K. Taylor
df3b112877 Implemented slime blocks 2021-09-05 20:46:59 +01:00
Dylan K. Taylor
8e2486b96a Bed: bounce doesn't apply if the entity was sneaking 2021-09-05 20:14:17 +01:00
Dylan K. Taylor
ded778f422 Implemented bed bouncing 2021-09-05 20:11:49 +01:00
Dylan K. Taylor
b0b28ec6ed 3.22.5 is next 2021-09-05 15:47:54 +01:00
Dylan K. Taylor
2fb4704269 Release 3.22.4 2021-09-05 15:47:54 +01:00
Dylan K. Taylor
4f59d3487a 3.22.4 is next 2021-09-05 15:42:39 +01:00
Dylan K. Taylor
65220b4f7f Release 3.22.3 2021-09-05 15:42:38 +01:00
Dylan K. Taylor
85eb6b30a5 Player: do not allow doFirstSpawn() to be executed before the constructor is called
this problem doesn't exist on PM4.
2021-09-05 15:38:14 +01:00
Dylan K. Taylor
e1b7bf31bb World: make the second parameter for getCollidingEntities() mandatory and non-nullable
the only reason to use getCollidingEntities() instead of getNearbyEntities() is if you have an entity that may or may not be collidable depending on certain conditions.
Really, I don't think this logic belongs in World at all, but for now it has to stay, because some other stuff depends on it.
2021-09-05 15:22:12 +01:00
Dylan K. Taylor
2fc33d3bff World: remove unused variable 2021-09-05 15:15:48 +01:00
Dylan K. Taylor
19513c65f0 World: avoid code duplication between getCollidingEntities() and getNearbyEntities()
these two methods are very misleadingly named, but they do almost exactly the same thing - the only difference is that getCollidingEntities() does a couple of additional checks.
2021-09-05 15:13:22 +01:00
Dylan K. Taylor
d4d00a9b80 Living: added calculateFallDamage()
to clean up the way that fall damage is handled for flying players; also, onHitGround() isn't only doing fall damage things these days.
2021-09-05 14:36:58 +01:00
Dylan K. Taylor
6b7e671794 Living: use Vector3->down() instead of subtract(). 2021-09-05 14:12:04 +01:00
Dylan K. Taylor
17dfd2cc52 Living: Trigger fall sounds on the nearest collidable block below
we can't have landed on it unless it actually has a collision box - otherwise, we only landed _in_ it.
This assumes, of course, that no blocks have bounding boxes >= 2 blocks tall, which currently none do.
2021-09-05 14:10:54 +01:00
Dylan K. Taylor
d329bfb25d Entity: rename movX/movY/movZ to wantedX/wantedY/wantedZ
this makes the code much easier to understand.
2021-09-05 14:06:53 +01:00
Dylan K. Taylor
73cc841d0b Entity: rename checkBlockCollisions() to checkBlockIntersections() 2021-09-05 14:00:27 +01:00
Dylan K. Taylor
8be1f34736 Entity: Rename fall() to onHitGround(), and make it protected
this had no business being exposed to public API in the first place.
2021-09-05 13:36:40 +01:00
Dylan K. Taylor
6ecad153ea Entity: remove fallDistance parameter from fall() 2021-09-05 13:34:43 +01:00
Dylan K. Taylor
7e82cafdeb Entity: remove a bunch of commented code that no one cares about 2021-09-05 13:27:48 +01:00
Dylan K. Taylor
7d5b9295cb PoisonEffect should accept Translatable|string, like its parent
this doesn't really break anything, but someone will likely whine about consistency if it's not fixed now.
2021-09-03 21:33:55 +01:00
Dylan K. Taylor
0404298c74 Effect: get rid of runtimeIDs 2021-09-03 21:25:06 +01:00
Dylan K. Taylor
c062282954 Drop enchantment runtime IDs 2021-09-03 21:20:43 +01:00
Dylan K. Taylor
ed1e7322dd be quiet phpstan 2021-09-03 21:16:37 +01:00
Dylan K. Taylor
f95eb6a218 Server is not cloneable 2021-09-03 21:08:29 +01:00
Dylan K. Taylor
62435fe935 Standardize clone denying 2021-09-03 21:07:39 +01:00
Dylan K. Taylor
b026ada489 Standardize serialize denying 2021-09-03 21:07:10 +01:00
Dylan K. Taylor
aa5a9f6d12 Enchantment: use Translatable instead of hardcoded translation keys 2021-09-03 20:52:05 +01:00