Skip to content

Instantly share code, notes, and snippets.

@NEZNAMY
Last active September 7, 2023 21:36
Show Gist options
  • Save NEZNAMY/21c1aabe57a0a462ee175386c510fdf8 to your computer and use it in GitHub Desktop.
Save NEZNAMY/21c1aabe57a0a462ee175386c510fdf8 to your computer and use it in GitHub Desktop.
Why I hate Velocity and refuse to support it

Last update: December 31st, 2022

Content

About

This page explains both subjective and objective reasons why I don't want to support Velocity. It is more complicated than BungeeCord, has far less features, has toxic community and on top of it not many users are actually interested to run TAB on Velocity.

Who is behind it

History with TAB

Although most server software is led by a different individual, it's quite frequently ran by the same group of people with different positions. This chaos all began with Minecraft 1.14.4, where TAB broke and caused issues on a version that it did not even claim to support at the time: (PaperMC/Paper#2038, from the great Tux himself). I was able to fix the issue and release an update within a few hours. However, since that day, they continually called TAB “brain-damaged” and kept telling everyone to uninstall TAB for the next 2 years, calling it buggy whilst still not being able to name a single bug (but since no one asked, they didn't even have to try).

Their attitude towards me

Every time I say something on one of their Discord servers; (kyori, old Velocity Discord), I get attacked by the same group of people whom seemingly have nothing better to be doing, other than sniping me: (see link above; https://discord.com/channels/472484458856185878/472486015525847050/840301445341249557; there's more but I cannot find it). Last time I was attacked was when they saw I was tracking Velocity 2.0 development with my plugin, which I was apparently not allowed to do.

Conversation

image
image
image

The best part about this is that 1 week later, an announcement was made asking developers to start adding v2 support and then a few days later they cancelled it because why not (screenshots not available anymore, because Velocity discord got deleted and I forgot to save them).

Bug report feedback

About a year ago, a bug in Adventure (a library Velocity uses) was exposed by TAB, which led to the plugin getting called "brain-damaged" again and again. Everyone just threw irrelevant messages at me when I was asking for explanation behind their statements, which I didn't even end up getting.

Conversation

image image image image image image image image image image image image

Later, when I found another Kyori bug related to boss bars, I decided to not tell them to avoid this situation again and implemented a workaround with comments explaining why the code looks the way it does. Apparently, someone is reading my commits after all, because despite me not telling anyone, the next day the bug was fixed saying "someone found this bug, but decided not to report it". Then again, I was told it's my fault, for trying to use the boss bar function on proxy, which should not be used on proxy; rather, backend servers. Great.

API

Lack of functions

Out of all TAB's functions, only header/footer, bossbar, tablist name formatting (partially) and global playerlist (partially) are available on Velocity. This makes it not worth installing on proxy.

Non-deterministic API

Tablist name format is bound to player UUID, not names. However, Velocity has no way of getting player's tablist UUID (they even told me on Discord), so that function may or may not work. Same with global playerlist, which might duplicate players because of this. In the end, header/footer is the only fully working feature on Velocity.

Hard to add functions

To make the plugin any bit worth installing on Velocity, I had to add missing features myself by injecting packets that Velocity is missing. This is obviously not a good solution; however, there was no other way. Even this process was complicated, as they refuse to upload the Velocity proxy module to maven to allow this without manually linking the local maven file, which is a pain. I was able to find a way without local file, but it's not as clean, required two additional maven projects to be made and just proves they are trying to make it as hard as possible to do this. I ended up dropping that entirely eventually.

Constant changes

First, they decided to use 'optionals' in the code, then make a thread explaining that it's useless. For Velocity 2.0, they decided to remove get/set prefixes from methods, shortly after making a thread arguing if it should be reverted or not. They ask developers to start porting plugins for Velocity 2.0. Just a few days later, it's not a thing anymore. We could go on and on.

Missing features are unlikely to be added

Over the past 3 years, I've requested scoreboard packets to be added 3 times, as well as many, many other users did previously and still request; yet, they still show no interest in doing so. At the same time, they disliked when the BTLP author said that he 'won't add Velocity support due to missing features without actually naming them.' I named them. It made no difference.

Someone opened a pull request adding team API, (which although is just 1/4 of the missing content), is a good start. Yes, it has flaws, but they were not even pointed at. The PR got declined, because the Velocity author wants Kyori/Adventure developers to do this, while they don't want to.

As shown in the PR above, no one is interested to add any functions, everyone is just forwarding requests to others, (Velocity wants Kyori to implement a scoreboard API, while they want velocity to do it).

Lack of users

On top of everything, the number of people wishing to use TAB on Velocity is simply really low and not worth all of the trouble and time, especially for a free open source project.

It's just switching from one abandoned software to another

While BungeeCord is effectively abandoned with issues/pull requests from 2013 still open and the only updates it gets are to add support for new MC versions, Velocity started catching up. Issues are now getting ignored, pull requests are getting ignored or declined. The only changes are library version bumps and new MC versions support. Just like BungeeCord. While the fact that it's a project made in free time is respectable, asking users to switch from one abandoned software to another with far less plugin support is less so. Spending 1 hour a month on the project because that's how much community pays for is simply not going to work.

Conclusion

Asking me to add support for Velocity is like asking me to stop doing what I enjoy and instead focus on something that I do not. It's frustrating having to implement features with an API that has virtually no flexibility. To make things worse, dealing with toxic assholes whenever I find a bug/push a feature request; just to have very poor functionality on server software that I don't use nor ever will. For no financial reward, requested by users of a free open source project. Meanwhile, my friends say they earn actual money by coding in their free time, which they can actually use to pay for things with, as well as saying how friendly and respectable their employers/colleagues are about the fact they still study and have limited time. And here I am, doing this and dealing with this community. Doesn't sound too good anymore, does it?

Ever since Minecraft plugins were first developed, authors were not considered humans; rather, are treated as a source of free software which can be used to gain profit off of running Minecraft servers. Since authors are trying to be nice, they fix reported bugs and add requested features, which are being abused by end-users that are taking all of this for granted. For the first time ever, I will consider abusing the powers given to me by creating a plugin - the ability to modify its code and decline a request.

Velocity team doesn't realize that by supporting Velocity I made it one step easier for server owners to switch to a new server platform, thanks to more plugins being available. I am not asking for anything in return from them, I did it by myself to help Velocity grow, but their toxic feedback is completely inappropriate and proves that they don't care at all. If they don't care about their software, why should I?

Consider this as a form of protest, if you wish.

@arima0k
Copy link

arima0k commented Apr 22, 2022

Some people are so immersive on code/machines, that forget the human factor, is a pretty common error I've seen it many times. ...and these are the results.
You know you did the best you can. I'm a velocity user, but can live without global TAB list.
Thank you for your work.

@myavuzokumus
Copy link

I have been a Velocity user and supporter for about 1 year. At the hosting company I work for, I talk about the continuous transition for customers and the benefit of some events. I tried to provide support for Velocity migration of many plugins. I introduced Velocity to the plugin authors around who were really trying to do their job, and I helped them with all their tests to support Velocity.

As a long time TAB user, today I decided to switch TAB on my Proxy network Velocity. But it didn't work. Then I saw this situation held against you and frankly I was very upset. For projects to grow, they always need support from their community.

Hopefully these aspects and issues will be fixed somehow and Velocity support will be added back to the TAB plugin. There's a reason why so many people prefer you @NEZNAMY, you're good at your job and I commend you for your perspective.

@editon96
Copy link

editon96 commented Jul 3, 2022

I am sad too over that situation... :/

I switch to the Future of Proxy: Velocity and under 1.18.2 all worked well.
I love you work and think many others do that too. But then it gives the loud liddel minority that destroy all.
And the peaple ther happy dont say something...

I hope Velocity support over Snap or other thinks would happen in the Futture until then I dont have a good TAB Plugin like yourse, it dont exsist an alternative thats soo good like yours...

Thanks for all your Time and Work! @NEZNAMY

@AlexanderOFGR
Copy link

Was about to switch to Velocity and then saw that the plugin is not supported. Did some research and found this post.

I am so sorry for you getting treated this way and I seriously hope the Minecraft Dev community grows up one day. I hope that in the future things get better and Velocity support gets properly added. Until then, I am sticking with BungeeCord. Don't want to lose an excellent plugin like yours just for some performance gain <3

Thank you for making this possible

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment