4b9a142a5d
Import global functions and constants for enhanced performance
...
This is better for performance because these then don't need to be reevaluated every time they are called.
When encountering an unqualified function or constant reference, PHP will first try to locate a symbol in the current namespace by that name, and then fall back to the global namespace.
This short-circuits the check, which has substantial performance effects in some cases - in particular, ord(), chr() and strlen() show ~1500x faster calls when they are fully qualified.
However, this doesn't mean that PM is getting a massive amount faster. In real world terms, this translates to about 10-15% performance improvement.
But before anyone gets excited, you should know that the CodeOptimizer in the PreProcessor repo has been applying fully-qualified symbol optimizations to Jenkins builds for years, which is one of the reasons why Jenkins builds have better performance than home-built or source installations.
We're choosing to do this for the sake of future SafePHP integration and also to be able to get rid of the buggy CodeOptimizer, so that phar and source are more consistent.
2019-01-04 20:43:15 +00:00
11b59498d9
TakeItemEntityPacket: add missing decode, close #2633
2019-01-04 11:45:37 +00:00
0f941410f6
Use more appropriate exceptions in the protocol layer
2019-01-03 17:57:06 +00:00
504cc3bf8b
AddEntityPacket: fix some bugs in legacy ID conversion handling
2019-01-03 17:00:16 +00:00
f7de6eb59f
Network: Deprecate some garbage
...
Deprecations on a patch version breaks release protocol, but I don't care at this point. Nobody should have been using this shit anyway.
2018-12-31 22:52:39 +00:00
75a0627bf2
Network: cut this catch-all bullshit out as well
...
If a network interface crashes, it should take out the whole server, not try to keep on ticking.
2018-12-31 22:40:13 +00:00
8752e363c9
EXCUSE ME, HOW DARE YOU NOT LOG NETWORK ERRORS?!
2018-12-31 22:33:56 +00:00
daf56e990b
Get rid of some network-layer asserts
...
NEVER assert on user data. 🤦
2018-12-30 12:42:52 +00:00
70df1579a8
Merge branch 'release/3.4' into release/3.5
2018-12-20 20:02:00 +00:00
ea9f9aa250
Update some non-critical protocol magic numbers
2018-12-20 19:59:42 +00:00
34a899e28b
Clean up Utils error handling functions (internal)
2018-12-16 17:50:00 +00:00
c05697f506
Merge branch 'release/3.4' into release/3.5
2018-12-14 09:39:21 +00:00
660d42e8d1
Backport usage of SetLocalPlayerAsInitializedPacket to 3.4 ( #2558 )
...
This fixes various problems, such as forms not working on PlayerJoinEvent.
2018-12-13 20:07:17 +00:00
dbeceb02f9
fixup 1.8 crafting, take 2
2018-12-13 10:54:15 +00:00
fd77dd0066
Revert "Fixed crafting grid transaction handling, close #2559 "
...
This reverts commit dfeb62491a
.
2018-12-13 10:38:04 +00:00
87ce87112b
Merge branch 'release/3.4' into release/3.5
2018-12-13 09:56:21 +00:00
1d71f5edb3
DataPacket: more detail in error messages for undefined fields
2018-12-13 09:55:50 +00:00
ec4c61e113
fix extradata defaults for broadcastLevelSoundEvent
...
fixes TNT sounds not working, amongst other things
2018-12-12 17:42:52 +00:00
231e491bb9
Fixed black spawn eggs
2018-12-12 17:14:13 +00:00
69cdc6f13a
Remove misleading default value for NetworkInventoryAction windowId
2018-12-12 16:08:47 +00:00
dfeb62491a
Fixed crafting grid transaction handling, close #2559
2018-12-12 15:41:54 +00:00
178eedb536
Merge branch 'release/3.4' into release/3.5
2018-12-12 10:12:12 +00:00
4975da2aae
NetworkInventoryAction: additional validity checks
2018-12-12 10:11:44 +00:00
30f5a8fac6
Protocol changes for 1.8.0 release
2018-12-11 21:05:03 +00:00
75482124f2
Merge branch 'release/3.3' into release/3.4
2018-12-01 10:09:46 +00:00
1a6db1c7ce
DataPacket: add missing field
...
this must have been missing for how many years now? thanks @shoghicp
this is why we don't do releases on friday night... in my defence my device had the beta installed...
2018-12-01 09:29:53 +00:00
36c0c350a7
Merge branch 'release/3.3' into release/3.4
2018-11-30 18:37:28 +00:00
4c08a05fae
Barf on trying to read/write nonexisting fields of packets
...
this should make it easier to debug problems when content of packets changes during protocol updates.
2018-11-30 18:36:28 +00:00
9caf62778c
AsyncTask: remove $serialize parameter from setResult()
...
Whether serialization is necessary can be determined automatically based on the type of variable.
2018-11-03 16:56:24 +00:00
0aa30295af
Merge branch 'release/3.3' into release/3.4
2018-10-26 20:09:02 +01:00
c1c56f29bb
Merge branch 'release/3.2' into release/3.3
2018-10-26 20:08:55 +01:00
9b820a0849
Guard against possible overflow bug in NetworkBinaryStream
2018-10-26 20:08:48 +01:00
447b9562bb
Merge branch 'release/3.3' into release/3.4
2018-10-24 12:16:46 +01:00
d1ee9eb960
Merge branch 'release/3.2' into release/3.3
2018-10-24 12:00:55 +01:00
196cf8a68d
Fixed missing MoveEntityDeltaPacket field
2018-10-24 12:00:25 +01:00
6dd2597934
Merge branch 'release/3.3' into release/3.4
2018-10-21 18:17:07 +01:00
5e68858ebf
Merge branch 'release/3.2' into release/3.3
2018-10-21 18:16:59 +01:00
45c9caa38c
Fixup some formatting issues
2018-10-21 18:15:25 +01:00
f1cd6940f9
Merge branch 'release/3.3' into release/3.4
2018-10-16 22:56:46 +01:00
af5637e050
PlayerListEntry: remove dead fields
2018-10-16 22:56:21 +01:00
4221e274d6
Merge branch 'release/3.3' into release/3.4
2018-10-16 18:20:14 +01:00
bc2dff3f51
version numbers
2018-10-16 17:15:26 +01:00
839d5eab7b
Protocol changes for 1.7
...
there's also some new cases in stats, but we don't care about those anyway.
2018-10-16 17:13:52 +01:00
b261129788
Merge branch 'release/3.2' into release/3.3
2018-10-11 19:42:18 +01:00
d9220395d1
Dummy decode for ResourcePacksInfoPacket and ResourcePackStackPacket
...
while we can't deal with this information, it's needed for the sake of unit testing so we don't shit on every bit of incoming data of these packet types.
2018-10-11 19:42:00 +01:00
de6d62aba2
Merge branch 'release/3.2' into release/3.3
2018-10-09 22:51:40 +01:00
32836cbfb8
Don't handle remaining packets in a batch when an earlier one triggered a disconnect
2018-10-09 22:50:02 +01:00
0e508876d2
RakLibInterface: Disconnect players who trigger errors during handler
...
this is cleaner than leaving the player hanging for 5 seconds (which they'll often timeout from anyway). Banning the IP without kicking the player can often look like "lag" and end up getting brushed off as a performance issue.
2018-10-07 15:32:23 +01:00
50b89c30f8
Merge branch 'release/3.2' into release/3.3
2018-10-06 14:45:12 +01:00
17ceb27af4
Merge branch 'release/3.1' into release/3.2
2018-10-06 14:45:05 +01:00