Original message text kept below for posterity
Introduction
With 8 months of changes including a total refactor pending a stable release, 2b2t's sudden update to 1.19.4 would've normally thrown a wrench into stabilization plans, but the unexpected death-blow ended up being thrown by 2b2t's owners, driving away many long-time basehunters and creative juggernauts.
I'm making this GitHub issue a bit late, I know, but I had bigger issues to deal with as my friends and I reevaluated whether we wanted to spend hundreds of more hours and dollars on 2b2t (not just cumulatively for some). Personally, I won't be.
This doesn't mean the project is dead, though. Keep reading to learn more.
Technical Problems
1. Mcproxy
2based2wait currently lacks proxy functionality on 1.19.4 because mcproxy, a core library that replicates Minecraft networking with high-level APIs in Node.js, needs to be updated from 1.12.2 to 1.19.4.
This isn't a simple TCP tunnel being switched on and off, this is a replication of Minecraft's networking protocol that allows for deep integration with high-level APIs with minimal boilerplate. It's why complex logging behaviors and Mineflayer actions can be rapidly implemented with fewer LOC and lower development cost.
IceTank is currently working on updating Mcproxy to support 1.19. IceTank has a fantastic reputation and AFAIK still mains 2b2t. One the one hand, this is the beauty of open-source, on the other, this is a major point of failure that I don't have the time or skills to fix myself. Major thanks to IceTank and other contributors.
2. Non-Vanilla Behavior & Pay-to-Test
There is a myriad of problems caused by 2b's heavily-modded behavior—which is opaque, always-shifting, and requires constant attention and time and money.
And I don't just mean money in the asinine sense that "time is money" or "development is money", because even long-term run-of-the-mill maintenance requires one to run tests at an interval that isn't 6+ hours between each test.
And of course, as a maintainer and hoster, my maintenance duties go far beyond run-of-the-mill tests because I'd be notified of odd issues and glitches that I could't replicate anywhere other than 2b2t. It was incredibly frustrating and an exercise in futility. This impossible game of cat and mouse is the primary reason the next stable release of 2based2wait was in development hell for 8 months.
As a hoster (see: Eating your own dog food), high uptime and stability came first and foremost, leading to a mentality of "don't touch it or you might break it", which was oftentimes the case thanks to 2b's opaque and non-vanilla behavior.
With the update to 1.19.4, 2b2t's admins have implemented an even wider array of blatantly non-vanilla behavior that requires endless workarounds and debugging. At least Sisyphus's rock didn't get heavier every month and also have a paywall.
I haven't made a single penny from this project, redirecting prospective donors to the EFF and FSF with unknown success rates. Now that I no longer main 2b2t and have less free time, I really don't see myself doing the sort of extensive testing I used to do 2 years ago.
3. Dependency Hell
A lot of these problems only rear their head once you try to make software that actually remains functional for as long as possible with high uptime.
"Then why didn't you just write it in Rust/C99?!". That would alleviate most of the Node.js dependency hell and rot, but kinda the whole point of 2based2wait is tight integration with high-level Prismarine JS APIs that make 2based2wait a fun tool for hackers to tinker with.
It's difficult to balance fun programming with good engineering because good engineering isn't fun, and Node.js has some of the worst dependency hell known to mankind, second only to Python.
Anyone who says "A good engineer never blames their tools" has never tried to maintain anything larger than 2k LOC in Python or Node.js. Motherfuckers need package management.
Conclusion, The Future
I'm not cutting off support for 2b2t entirely, as it is relatively easy to occasionally fix trivial things like queue header parsing or brand packet changes or whatnot.
BUT I have zero interest in adding special loopholes and bugfixes for 2b2t. If 2b2t's anti-dupe or anti-xray breaks a bunch of shit, oh well. I ain't buying prio queue to fix bugs on a server I no longer play on.
However, 2based2wait will still be useful on other anarchy servers on 1.19.4 for things like sharing accounts with a bunch of people without invalidating the token or clamoring over each other trying to figure out what account is currently in use—not to mention fun things I've yet to add like the automatic Minecraft Replay Mod recorder.
In short, 2based2wait isn't dead, yet, but the onus will be on the users to file bug reports that aren't shit because I will no longer be eating my own dog food, at least on 2b2t, and I offer zero guarantee for 2b2t-specific support given the admin's recent changes.