kaboomserver / server

Server files for the Kaboom server
The Unlicense
19 stars 27 forks source link

What is to be done now that Scissors is dead/dying? #132

Open OptimisticDeving opened 1 week ago

OptimisticDeving commented 1 week ago

Hello,

Now that the shutdown of TotalFreedom is imminent (on Monday, or maybe even today), as per the announcement in their Discord, Scissors is very, very likely to become unmaintained in the near future as well (they even mentioned Scissors as "EXTREMELY annoying to maintain" in the shutdown announcement), the choice of server software Kaboom uses comes into question. Obviously, in light of this news, we can't keep using Scissors forever.

Do we create a new Paper fork that does what Scissors did but better, do we maintain our own fork of Scissors as a repo in this organization and improve its legacy or do we switch back to Paper with all of its associated issues?

And by maintaining a fork, I mean a repository on this organization, where contributions are made via PR (and approved by you, of course). I'm sure you don't want to give any Kaboom player write access to such an important repository, and I'd agree with you.

Personally, I prefer the first and second options. I like the stability Scissors offered for creative servers like this one, even if the way things were patched wasn't the most elegant. I don't mind helping contribute to a fork of Paper or a fork of Scissors, whichever ends up being the chosen option.

For updating this server software, instead of manually updating the upstream ref which is what was done with Scissors, I suggest we look to Tentacles (Purpur's example fork project) for inspiration as they have already written a script to automatically update upstream when patches can be cleanly applied. See their workflow, and the script that their workflow invokes, along with the script that commits the "Updated upstream" commit. Writing something similar for a Paper fork shouldn't be too difficult.

kaboombot commented 1 week ago

That's a good question...

In the past, patches were added to the Extras plugin, to avoid having to update them after every new Minecraft version. It worked to some extent, but was obviously very limited in terms of what we could patch, using only the Bukkit API.

We eventually switched to Scissors, due to some people involved with Kaboom development writing many of the patches for it. These people have since quit.

Unfortunately, I don't have the resources (time, motivation) to maintain something like Scissors. The bare minimum of merging PRs, maybe, but adding new patches or updating patches to work in new Minecraft versions, no. Due to my involvement in Cuberite, familiarizing myself with Mojang's proprietary code wouldn't be a good idea either.

Ideally, there would be a separate project outside of Kaboom (either a fork of Scissors, or something new), but I also don't want another situation where one person ends up doing all the work adding and updating patches, and eventually burns out. Then there's also the issue of finding trustworthy people to maintain such a project in the long run.

OptimisticDeving commented 1 week ago

Ideally, there would be a separate project outside of Kaboom (either a fork of Scissors, or something new), but I also don't want another situation where one person ends up doing all the work adding and updating patches, and eventually burns out. Then there's also the issue of finding trustworthy people to maintain such a project in the long run.

I'm not aware of any projects outside of Scissors that offer similar features (patching creative and OP-only exploits and the such) with a decent patch quality. But then again, it isn't like I've particularly looked, so it might just exist.

The issue of trust is why I suggested making the repository under this organization (so you could review and merge PRs), however you bring up a good point with your involvement in Cuberite. I'm not really sure how you could work around that if the project was developed under this organization and you were the sole person reviewing pull requests.

I don't think there would be any other option besides switching back to Paper as eventually plugins like ViaVersion will drop support for the versions of Minecraft Scissors supports, so it's not like we can stay on Scissors forever.

As I said in the initial issue comment, I'm open to maintaining (with other Kaboom players, of course) a fork of Scissors/Paper exclusively for Kaboom, but I can see no reason for you to trust me (seeing as this is a new GitHub account and I've only just started to make contributions to Extras on it).

It's probably fine if the server sticks on Scissors for another few months, provided the server is updated to 1.20.6 at the bare minimum. But, nevertheless, this problem will need to be solved.