kaboomserver / server

Server files for the Kaboom server
The Unlicense
20 stars 32 forks source link

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

Open OptimisticDeving opened 5 months ago

OptimisticDeving commented 5 months 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 5 months 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 5 months 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.

amyavi commented 2 months ago

@kaboombot Could we get an update on this? The server has been plagued by several crash/freeze exploits for the past few weeks and it's difficult to see the server reach more than 30 minutes of uptime, since it's being crashed so often.

I don't see any sort of creative exploit patch oriented Paper fork being created anytime soon, mainly because the creative server genre has been dying lately. Also, most creative servers would rather just block any sort of NBT than deal with making a fork of Paper.

I think the best option is to just make a blank repo on this org and let people contribute to it through PRs. Even if there's only a single maintainer and they get tired out and stop working on it, it'll certainly be a better outcome than having the server rot away on 1.20.4 for months.

amyavi commented 3 weeks ago

Minecraft 1.21.2 has patched a lot of crash exploits that scissors used to fix. While I am aware of several crash exploits that still work in that version, I believe it might be better for the server to just update to Paper 1.21.3 when it's stable enough, rather than being stuck on 1.20.4.

kaboombot commented 2 weeks ago

The reality is that no matter how much time I spend away from Minecraft and this server, the dreadful feeling when doing anything related to Minecraft servers remains.

If someone goes through the effort of testing the server with Paper 1.21.3, updating the configs if necessary, ensuring plugins work, and change the download link of the server jar, I could merge a PR.