Dylan K. Taylor
b903e90dc2
Release 4.0.4
4.0.4
2022-01-01 16:50:02 +00:00
Dylan K. Taylor
c8247786d7
Player: check chat length check with strlen() before mb_strlen()
...
mb_strlen() is O(n), whereas strlen() is O(1). If we receive very large chat messages (e.g. 2 MB), mb_strlen() will take a very long time to return a result (around 8ms on my machine).
Since the max size of a UTF-8 character is 4 bytes (according to standard), we can use strlen() with 4x the char limit to gate it and prevent this from happening.
2022-01-01 16:46:00 +00:00
Dylan T
f486b5f4a7
Player: fixed fall damage when sprinting down stairs ( #4685 )
...
Due to the way positions are updated over the network, we only see the end result of a movement and not its preceding actions. In addition, we don't know for sure whether the MCPE collision checks work the same exact way as PM.
TL;DR: It's possible for the client to capture and send a movement frame after they collided with a step and then already moved forward from it some distance, resulting in a weird arc pattern.
This PR checks the range between the old and new positions for collision boxes to ensure that all possible areas are checked for detecting fall damage.
This has been tested and successfully resolves various issues involving running down stairs:
- missing sounds
- random fall damage
2022-01-01 15:41:19 +00:00
Dylan K. Taylor
54d6b83fc2
Entity: pass the appropriate value for AFFECTED_BY_GRAVITY
2022-01-01 15:39:46 +00:00
Dylan K. Taylor
eedea38669
Improve performance of loading player inventories
2022-01-01 15:26:42 +00:00
Dylan K. Taylor
3c6146b5e0
ContainerTrait: avoid absurdly inefficient use of setItem()
...
this substantially improves the performance of loading containers such as chests.
2022-01-01 15:05:32 +00:00
Dylan K. Taylor
72f2c794ab
SimpleInventory: improved performance of setContents()
...
avoid the overhead incurred by clear() and setItem(), because in internalSetContents(), we already have no listeners or viewers to talk to anyway, so this is just spamming shit into /dev/null.
2021-12-31 18:32:19 +00:00
xxAROX
193a1b3f4e
TextFormat: Added MINECOIN_GOLD (§g) color code support ( #4670 )
2021-12-30 23:53:05 +00:00
Dylan K. Taylor
62afa2f28d
Entity: extract getBlocksIntersected() from getBlocksAroundWithEntityInsideActions()
2021-12-29 23:04:54 +00:00
Dylan K. Taylor
207f7ec309
Player: avoid unnecessary network updates on repeated calls to setAllowFLight(), setHasBlockCollision() and setAutoJump()
2021-12-29 20:22:16 +00:00
Dylan K. Taylor
e0a6bc1d4a
Lava: remove useless code, closes #4678
2021-12-29 20:13:07 +00:00
Dylan K. Taylor
5c994e4a24
Player: removed an old hack for setFlying() feedback loop
...
this is no longer a concern, since we now check if the sent state matches the current state before doing anything, at multiple layers.
2021-12-29 18:41:11 +00:00
Dylan K. Taylor
d94578a420
Player: remove dead TODO comment
2021-12-29 18:32:53 +00:00
Dylan K. Taylor
0a0de018a5
InGamePacketHandler: fixed player jump handling
2021-12-29 18:28:22 +00:00
Dylan K. Taylor
a1d217e12b
InGamePacketHandler: fixed missing synchronization of metadata when plugins cancel PlayerToggle*Event
2021-12-29 18:23:05 +00:00
Dylan K. Taylor
e102339637
InGamePacketHandler: remove dead code from PlayerActionPacket handling
2021-12-29 17:29:19 +00:00
Dylan K. Taylor
7124d44b92
Player: prevent PlayerToggle(Sprint|Sneak|Fly|Glide|Swim)Events from firing multiple times with the same value
...
this happens with swimming due to bugs in the client.
2021-12-29 17:24:49 +00:00
Dylan K. Taylor
38b6b39cb3
Filesystem: workaround a stupid Windows issue in safeFilePutContents()
...
occasionally Windows will randomly decide to deny us access to rename the file for no reason whatsoever. If this happens, we attempt an old-style copy and delete.
If the rename failed for a legit reason, the copy and delete should also fail and generate an error message. If it was Windows being a spaz, it should work normally without errors.
2021-12-29 15:26:34 +00:00
Dylan K. Taylor
767dfd9947
Merge branch 'stable' into next-minor
2021-12-27 21:55:13 +00:00
Dylan K. Taylor
fcc4757209
Merge branch 'legacy/pm3' into stable
2021-12-27 21:54:56 +00:00
Dylan K. Taylor
d9c70cb176
start.cmd: prevent idiotic behaviour when paths contain characters such as brackets
...
god I hate this shit so much
2021-12-27 21:54:32 +00:00
Dylan K. Taylor
4aab0565c0
ChunkCache: fixed corner case in cache restart on AsyncTask error
...
the cache may have been destroyed since the task inception, leading to an exception being thrown.
2021-12-27 18:11:55 +00:00
Dylan K. Taylor
87170ab067
Player: move reach distances to constants
2021-12-27 17:32:04 +00:00
Dylan K. Taylor
74ac0f5862
Player: move max chat length to constant
2021-12-27 17:06:19 +00:00
Dylan K. Taylor
f5144d49b1
Merge branch 'stable' into next-minor
2021-12-27 16:52:22 +00:00
Dylan K. Taylor
8943d8a2a7
Player: fixed maximum message size limits to match vanilla bugrock
2021-12-27 16:51:47 +00:00
dependabot[bot]
0da29beb1d
Bump pocketmine/locale-data from 2.2.0 to 2.2.1 ( #4667 )
...
Bumps [pocketmine/locale-data](https://github.com/pmmp/Language ) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/pmmp/Language/releases )
- [Commits](https://github.com/pmmp/Language/compare/2.2.0...2.2.1 )
---
updated-dependencies:
- dependency-name: pocketmine/locale-data
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-27 16:43:32 +00:00
dependabot[bot]
157048264c
Bump phpunit/phpunit from 9.5.10 to 9.5.11 ( #4675 )
...
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit ) from 9.5.10 to 9.5.11.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases )
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.5.md )
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.10...9.5.11 )
---
updated-dependencies:
- dependency-name: phpunit/phpunit
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-27 16:43:19 +00:00
Dries C
95b6cb21f2
Implement BlockMeltEvent ( #4666 )
2021-12-27 16:36:59 +00:00
Dylan K. Taylor
c858c0dc79
Merge remote-tracking branch 'origin/stable' into next-minor
2021-12-27 16:09:20 +00:00
Duo Incure
b55aa78aec
Changelog: Replaced non-existent method ( #4676 )
2021-12-27 15:33:02 +00:00
Matt
091673d8f1
Fixed "You can only sleep at night" message ( #4671 )
2021-12-23 23:52:07 +00:00
Dylan K. Taylor
18e26d975b
Fixed swimming and gliding for PlayerAuthInputPacket
2021-12-19 17:31:47 +00:00
XenialDan
d41f933e7b
Implement swimming/gliding including AABB recalculation ( #4446 )
...
- The following events have been added:
- PlayerToggleGlideEvent
- PlayerToggleSwimEvent
- The following API methods have been added:
- Entity->getSize()
- Living->isSwimming()
- Living->setSwimming()
- Living->isGliding()
- Living->setSwimming()
- Player->toggleSwim()
- Player->toggleGlide()
2021-12-19 17:10:41 +00:00
Dylan K. Taylor
65dabefa3b
Config: improve config loading and parsing error handling
...
closes #4654
closes #3454
2021-12-19 16:53:29 +00:00
Dylan K. Taylor
44e8603a6d
InGamePacketHandler: fixed borked sneak/sprint after switch to PlayerAuthInputPacket
...
closes #4659
2021-12-19 00:52:53 +00:00
Dylan K. Taylor
e3614d1a82
Entity: fixed game performance issue with large scale entities
...
this->size refers to the scaled height, but the client wants the base (unscaled) size in these properties.
This caused immense lag when, for example, setting the scale of a player to 10, because their collision box would become 180 by 60, instead of the expected 18 by 6.
2021-12-18 22:38:45 +00:00
Dylan K. Taylor
16fd5456aa
Merge branch 'stable' into next-minor
2021-12-18 00:39:58 +00:00
Alexey
93caf72f34
KickCommand: Add missing space
...
closes #4660
closes #4661
2021-12-17 21:09:14 +00:00
Dylan K. Taylor
089f22d903
Merge branch 'next-minor' of github.com:pmmp/PocketMine-MP into next-minor
2021-12-16 23:39:14 +00:00
Dylan T
fc3a6c6984
Implemented fire spread ( #4617 )
2021-12-16 23:36:34 +00:00
Dylan K. Taylor
1ab285f573
PrepareEncryptionTask: remove usage of no-op function
2021-12-16 18:47:50 +00:00
Dylan K. Taylor
aa56c66a3c
ProcessLoginTask: drop usage of no-op method
...
this is no longer useful since 8.0.
2021-12-16 18:46:34 +00:00
Dylan K. Taylor
920462bdcc
Merge branch 'stable' into next-minor
2021-12-16 01:46:52 +00:00
Dylan K. Taylor
e6e1bca676
4.0.4 is next
2021-12-16 01:35:43 +00:00
Dylan K. Taylor
795ebd1824
Release 4.0.3
4.0.3
2021-12-16 01:35:42 +00:00
Dylan K. Taylor
5f03887b47
Merge branch 'legacy/pm3' into stable
2021-12-16 01:34:10 +00:00
Dylan K. Taylor
9979a64ad2
3.26.5 is next
2021-12-16 01:23:22 +00:00
Dylan K. Taylor
75a72786f9
Release 3.26.4
3.26.4
2021-12-16 01:23:21 +00:00
Dylan K. Taylor
3d205c6e5f
Updated transient dependency junk
2021-12-16 01:20:05 +00:00