12484 Commits

Author SHA1 Message Date
Covered123
bcc0f1e733
Fixed desynchronization of hunger when cancelling food-related events (#4691) 2022-01-03 19:11:32 +00:00
Dylan K. Taylor
f62cfe8ae3
4.0.5 is next 2022-01-01 16:50:03 +00:00
Dylan K. Taylor
b903e90dc2
Release 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
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
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
8943d8a2a7
Player: fixed maximum message size limits to match vanilla bugrock 2021-12-27 16:51:47 +00:00
Matt
091673d8f1
Fixed "You can only sleep at night" message (#4671) 2021-12-23 23:52:07 +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
Alexey
93caf72f34
KickCommand: Add missing space
closes #4660
closes #4661
2021-12-17 21:09:14 +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 2021-12-16 01:35:42 +00:00
Dylan K. Taylor
57e1509c3a
Updated translation APIs 2021-12-15 03:24:13 +00:00
Dylan K. Taylor
4d37b79ff7
Server: fixed not being able to deop players whose names were added to ops.txt with uppercase letters in them
same as iTXTech/Genisys#1204

why didn't anyone report this???
2021-12-15 01:08:59 +00:00
Dylan K. Taylor
ea1fceece2
Merge branch 'legacy/pm3' into stable 2021-12-14 23:15:53 +00:00
Dylan K. Taylor
7fb1669c6d
php-cs-fixer: added binary_operator_spaces and unary_operator_spaces rules 2021-12-14 23:14:39 +00:00
Dylan K. Taylor
45c4a9673d
Player: fixed arm swing animation not showing during attack cooldown of victim
closes #4650
2021-12-14 19:03:42 +00:00
Dylan K. Taylor
4ad8cb02a5
BlockIdentifier: ensure that the tile class given is valid 2021-12-14 17:36:25 +00:00
Dylan K. Taylor
c334e6dec7
Updated locale-data dependency 2021-12-14 00:31:44 +00:00
Dylan K. Taylor
f5bbd30dbb
Fixed skins appearing black when using RTX resource packs, closes #4537 2021-12-13 12:35:55 +00:00
Dylan K. Taylor
3be8472ae2
MemoryManager: fixed dumping of uninitialized properties
closes #4643
2021-12-13 12:11:49 +00:00
Dylan K. Taylor
22bb1ce8e0
4.0.3 is next 2021-12-12 23:27:54 +00:00
Dylan K. Taylor
178dcb71a9
Release 4.0.2 2021-12-12 23:27:50 +00:00
Dylan K. Taylor
0a58fd5472
GeneratorManager: fixed addGenerator() being case-sensitive when overwrite=true
this was caused by 083a1e1ff6b6ff5c0c1ba14250d2b026af103b90.

This was discovered by a new PHPStan rule I'm working on, which disallows overwriting the values of parameter variables. During the refactor of this function to correct the error, another error appeared: Variable might not be defined.

This is yet another excellent example of why mutability is bad.
2021-12-12 21:58:07 +00:00
Dylan K. Taylor
e06eefeab0
build/generate-known-translation-apis: fixed incorrect positional parameter order
closes #4639
2021-12-11 21:28:52 +00:00
Dylan K. Taylor
ede07c4314
Mark KnownTranslationKeys and KnownTranslationFactory as @internal 2021-12-11 21:24:18 +00:00
Dylan K. Taylor
e81bee3866
ConsoleReaderThread: disable opcache for console reader subprocess 2021-12-10 23:24:18 +00:00
Dylan K. Taylor
448f26cefc
SimpleCommandMap: do not strip backslashes from unquoted command arguments 2021-12-10 18:27:49 +00:00
Dylan K. Taylor
fa48100da5
PluginDescription: ensure base type of decoded document is actually an array
fixes #4628
2021-12-10 18:08:50 +00:00
Dylan K. Taylor
bcf8a3424c
Merge branch 'legacy/pm3' into stable 2021-12-10 18:02:06 +00:00
Dylan K. Taylor
69d5bfa0d4
3.26.4 is next 2021-12-10 17:55:11 +00:00
Dylan K. Taylor
549fb923bf
Release 3.26.3 2021-12-10 17:55:07 +00:00
Dylan K. Taylor
6d5c463bdd
PlayerExperienceChangeEvent: added range checks to setNewProgress()
WE FINALLY FUCKING FOUND IT

This took several years to identify because PHP's exception stack traces don't show the actual values of parameters, but rather the values of the variables they were assigned to.

This means that if the parameter variable is mutated, the exception trace will show the value of the variable inside the function, not the value that was actually passed.
2021-12-10 17:29:57 +00:00
Dylan K. Taylor
911ad344c9
Human: do not mutate parameter variables in setXpAndProgress()
this caused a mystery that took 3 entire years to debug.
2021-12-10 17:27:28 +00:00
Dylan K. Taylor
3b77462935
WritableBookBase: fixed crash when finding pages containing corrupted UTF-8 characters
maybe we should treat this as corrupted? but for now, it's consistent with how we deal with signs.
2021-12-10 16:39:13 +00:00
Dylan K. Taylor
1ed9302f5a
ItemEntity: clone items given to the constructor directly
this fixes some bizarre mutability issues that occurred when using World->dropItem() with the same object multiple times.
2021-12-10 16:31:56 +00:00
Dylan K. Taylor
6ddaed97fa
4.0.2 is next 2021-12-09 00:48:45 +00:00
Dylan K. Taylor
036b90d247
Release 4.0.1 2021-12-09 00:48:42 +00:00
Dylan K. Taylor
06eaf9f273
3.26.3 is next 2021-12-09 00:27:03 +00:00
Dylan K. Taylor
1e56ed2ea3
Release 3.26.2 2021-12-09 00:26:59 +00:00
Dylan K. Taylor
0ace807756
Merge commit 'b081394125f90c14d6894b24e2edb32f3284b3a0' into stable 2021-12-08 23:59:51 +00:00
Dylan K. Taylor
b081394125
Do not restrict the allowed update channels client-side
we really should have an endpoint on the server that deals with this.
2021-12-08 21:57:16 +00:00
Dylan K. Taylor
f48cf68cac
updater: log a message when an update was found, but it's an older version 2021-12-08 21:55:44 +00:00
Dylan K. Taylor
264cff70ec
Release new PM3 builds onto pm3 channel 2021-12-08 21:55:12 +00:00
Dylan K. Taylor
3aabfa4ab0
bootstrap: display value of PHPRC when PHP binary is borked
PHPRC overrides the search path for php.ini, which might break the php.ini locating.
2021-12-08 20:48:44 +00:00