The InitialHandler is exposed to incoming traffic from, ideally, the
minecraft client, however, anything else connecting to this will end
up causing an exception which is spammy and costly to generate, leading
to a significant performance impact in some cases.
We will downgrade this to a log message, which should tell us where the
issue is, and still provide useful information, but will improve the cost
of such cases.
This patch contains a trivial formatting fix, while while somewhat
pointless, I decided to keep, the main advantage is in the util
helpers which will aim to keep code cleaner (I've wished for this
to be included in waterfall for a while, and given future work, I
feel now is a good time to shift it over)
This setting provides the ability to allow servers/clients
to send empty packets without kicking the player with an error.
This option is not encouraged or supported in any capacity, and is
provided as a last ditch effort for server owners to allow players
to connect in such a broken state as allowed by vanilla.
The changes in 1.13 makes this limiter too easy to hit, breaking tab
completion silently for users and causing a lot of confusion around
tab completions not working, for this reason, it's cleaner to disable
this for 1.13+ clients by default and defer this to the server, where
better control is already provided for paper servers (and any other
server will either not have broken tab completions, or can re-enable
this limit if they wish to do so)
- Respect bungeecords new "log ping" configuration along side our own
Waterfalls patch will likely be dropped by the end of the year, migrate!
- Drop 'Don't allow channel buffers to grow beyond a reasonable limit'
This is already included upstream and is configurable using system properties
- Drop 'Security enhancements for EncryptionUtil'
This patch is somewhat misguided given how mojangs auth service works and offers
no real improvements to security
- cleanup some patches
updated headers for changes which have been removed/extracted into other patches
cleaned up some code formatting changes in misc sections
- touch up the contributing guide to reflect the recent script changes
Today, Friday 17th August 2018, marks 2 years, 2 months, and 2 days since my first contribution
to the Waterfall project (that’s a total of 792 days!). Throughout that time, 3 major Minecraft
versions have been released, Waterfall has become the go-to for modded networks, and Sponge has
become a very viable option for servers - no longer lacking in implementation.
Before the Bukkit drama, I had written very little software for the server - though I’d written
a bunch of fairly basic client mods. I had run a bunch of servers however - I had very extensive
knowledge of the Classic server software, and I’d run a lot of bukkit servers. Though vanilla
has never really been my cup-of-tea, and ever since I started to do a lot of work with the server
my time playing the game has decreased. The truth is, I’ve never played any of those 3 major
releases that have come out since I’ve been maintaining Waterfall.
Sadly I have fallen out of love with the game, and don’t see myself likely to play it anytime soon.
However, I find a certain joy in writing software so I’ve stuck around - the communities I’ve landed
on are really great :D I’ve found projects to work on that are independent from Minecraft, yet keep
me within the same communities.
Today I work on a lot of software related to obfuscation and Java - namely Lorenz, Bombe, and Survey.
Though I’m also a web developer for Sponge, in addition to a bunch of other roles I’ve landed myself
(including advising a server migrating away from a nearly decade old codebase to Sponge). I’ve
recently been working on a website for some of my friends who are fundraising for charity.
I’ve never really made any money from any of the OSS development I’ve done, amounting to a total of
$30 from a BountySource I did as a one-off. Please don’t take that as a complaint though, I would be
developing software OSS or otherwise - I see it as a hobby, I find it fun. Which is why I’m not longer
the right person to maintain Waterfall - I no longer have need to, or find it fun - in fact merging
upstream changes is a time-consuming, monotonous task :(
Though this may all sound like I’ve hated maintaining Waterfall, which certainly isn’t the case - it's
just how I’ve felt as of late. Frankly, the wonderful community has kept me around for as long as I have.
It’s been really nice to talk to people that I may have fallen out-of-contact with, were it not for
Waterfall.
Maintaining Waterfall has been an honour, and I’m very proud that we’ve become the go-to for modded and
regarded as an analogue to Paper.
And with that, my notifications are going to significantly reduce :D And finally, I’d like to thank
@electronicboy for committing to maintaining Waterfall! Legend :)
Upstream has seemingly decided that they have no
intent of providing proper support for the new scoreboard
changes inside of the bungee API, thus leading many plugins
to have already worked around this.
While having proper API support would be great, shamefully,
plugins which are already working around, which causes
incompatibilies with Waterfall.
From the Log4j 2 documentation:
When AsyncLoggerContextSelector is used to make all loggers asynchronous,
make sure to use normal <root> and <logger> elements in the configuration.
The AsyncLoggerContextSelector will ensure that all loggers are
asynchronous, using a mechanism that is different from what happens when
you configure <asyncRoot> or <asyncLogger>. The latter elements are
intended for mixing async with sync loggers.
https://logging.apache.org/log4j/2.x/manual/async.html
Since we are not using mixed sync/async loggers, we should use the
system property to enable the async loggers.