Commit Graph
23 Commits
Author SHA1 Message Date
Andrew Steinborn 6a9023862c Optimize indirect passenger iteration (#6366) 2021-08-12 22:55:41 +00:00
Andrew Steinborn 3a2986e746 Optimize entity tracker passenger checks (#6361)
When a ServerEntity instance is first constructed, it uses a pre-Java 9 empty collection,
but passengers use Guava ImmutableList. When comparing the two collections via Object#equals
we miss out on an opportunity to reduce the check to little more than a reference equality
check (which is very fast).
2021-08-09 18:36:45 +00:00
Andrew Steinborn 7a227d7d3b Add Unix domain socket support (#5611)
Tested-by: Mariell Hoversholm <proximyst@proximyst.com>
Reviewed-by: Mariell Hoversholm <proximyst@proximyst.com>
2021-05-23 07:18:50 -04:00
Andrew Steinborn 62edbcf9db [CI-SKIP] Remove Astei from the MIT list (#5577)
* Remove myself from the MIT list

I acknowledge that prior patches will not be retroactively relicensed (which is desirable).

* Fix typo
2021-05-05 03:17:14 -04:00
Andrew Steinborn 2f5eaee571 Inline shift fields in EnumDirection (#5082) 2021-01-30 10:40:34 -05:00
Andrew Steinborn 637e21957f Correctly skip pathfinder ticks for inactive entities (#5085)
Fixes #5083
2021-01-19 17:51:14 -05:00
Andrew Steinborn bd0e8d65a8 Redact Velocity forwarding secret properly (#4980) 2021-01-01 23:59:30 -05:00
Andrew Steinborn 51ed2d9d21 [1.16] Improve performance of matching ingredients for shapeless recipes (#4694) 2020-10-27 15:04:32 +00:00
Andrew Steinborn ac051139a8 Lazily track plugin scoreboards by default
On servers with plugins that constantly churn through scoreboards, there is a risk of degraded GC performance due to the number of scoreboards held on by weak references. Most plugins don't even need the (vanilla) functionality that requires all plugin scoreboards to be tracked by the server. Instead, only track scoreboards when an objective is added with a non-dummy criteria.

This is a breaking change, however the change is a much more sensible default. In case this breaks your workflow you can always force all scoreboards to be tracked with settings.track-plugin-scoreboards in paper.yml.
2020-10-03 04:47:01 -04:00
Andrew Steinborn 7a714e6e13 [1.16] Optimize NetworkManager exception handling (#3819) 2020-07-06 00:27:37 -04:00
Andrew Steinborn f884a07f57 Manually inline PooledBlockPosition#d(int, int, int) 2020-06-27 10:56:32 -04:00
Andrew Steinborn a1051ff388 Add Velocity IP Forwarding Support
While Velocity supports BungeeCord-style IP forwarding, it is not secure. Users
have a lot of problems setting up firewalls or setting up plugins like IPWhitelist.
Further, the BungeeCord IP forwarding protocol still retains essentially its original
form, when there is brand new support for custom login plugin messages in 1.13.

Velocity's modern IP forwarding uses an HMAC-SHA256 code to ensure authenticity
of messages, is packed into a binary format that is smaller than BungeeCord's
forwarding, and is integrated into the Minecraft login process by using the 1.13
login plugin message packet.
2018-10-08 14:36:14 -04:00
Andrew Steinborn 8a3f9f7eb6 Optimize indirect passenger iteration 2021-08-09 00:38:37 -04:00
Andrew Steinborn ac0d44684a Optimize entity tracker passenger checks 2021-08-08 00:52:54 -04:00
Andrew Steinborn cc2c25ba55 Add Unix domain socket support 2021-05-11 17:39:22 -04:00
Andrew Steinborn 1d6a99b50b Inline shift direction fields
Removes a layer of indirection for EnumDirection.getAdjacent(X|Y|Z)(), which is in the
critical section for much of the server, including the lighting engine.
2021-01-18 20:45:25 -05:00
Andrew Steinborn 987af1a1e4 Really fix JLine on Windows
The history of how paths work in Win32 is a sad story and shall not be documented here.
Needless to say, Windows hates the temporary file name for jansi's native code since it
includes the version. For git builds, it includes quotes around the actual version. But
alas, the issue apparently doesn't occur if you build on Windows since it removes the
quotes from the git commandline that is ultimately used to build the version string,
because of more Win32 sadness and shame.

Go look at Raymond Chen's blog, The Old New Thing. It's full of Windows oddities and
it will make you want to weep because almost 90% of the world uses this legacy OS from
the 1980s.
2019-10-13 16:35:54 -05:00
Andrew Steinborn ea056d0fd2 Fix jline with git builds under Windows (#2624) 2019-10-13 01:06:44 -04:00
Andrew Steinborn 2d88b7a644 Licensing stuff
I agree to license all of my current and future Paper changes under the MIT license.
2018-07-23 20:32:40 -04:00
Andrew Steinborn 5e14f2410c Put the decompile fixes into MC Dev Fixes patch 2018-07-23 13:10:06 -04:00
Andrew Steinborn 9399a74c2a Optimize RegistryID.c()
Fixes #1253
2018-07-23 12:58:01 -04:00
Andrew Steinborn 2f55ab6d4e Lazily track plugin scoreboards by default
On servers with plugins that constantly churn through scoreboards, there is a risk of
degraded GC performance due to the number of scoreboards held on by weak references.
Most plugins don't even need the (vanilla) functionality that requires all plugin
scoreboards to be tracked by the server. Instead, only track scoreboards when an
objective is added with a non-dummy criteria.

This is a breaking change, however the change is a much more sensible default. In case
this breaks your workflow you can always force all scoreboards to be tracked with
settings.track-plugin-scoreboards in paper.yml.
2020-10-03 04:15:09 -04:00
Andrew Steinborn 5f6808db9a Optimize NetworkManager Exception Handling 2020-07-05 22:38:18 -04:00