Minecrell / ServerListPlus

A flexible Minecraft plugin to customize the appearance of your server in the server list
https://git.io/slp
GNU General Public License v3.0
240 stars 58 forks source link

Alternatives for ServerListPlus #338

Open stephan-gh opened 3 years ago

stephan-gh commented 3 years ago

Realistically speaking, ServerListPlus has been semi-abandoned for a while. I try to reply to some issues here on GitHub occasionally, but it's unlikely I will ever get back to implementing any new feature requests. This is because my interests changed and I haven't played Minecraft for years now.

This issue exists to allow discussing possible alternatives that are more actively maintained. You can comment with possible alternatives that you found and share what you find good or bad about them.

SlimeDog commented 3 years ago

We are currently using ServerListMOTD which is a resurrection/continuation of this one. It has 300+ downloads (the original had 1800). It has full PAPI support. It's only 6 months old, but the developer seems committed. He supports only two plugins, both of which he resurrected. You can read about him at the bottom of the Overview page.

Andre601 commented 3 years ago

Here are some other plugins I know of and their pros and cons (personal opinion):

stephan-gh commented 3 years ago

@Andre601 @SlimeDog Mainly just curious, aside from having a rather inactive maintainer, what are the main features that ServerListPlus is missing? I could think of PlaceholderAPI support and hex colors, is there any other major feature that was introduced with some Minecraft update?

SlimeDog commented 3 years ago

You have arrived at the "missing features" list. I don't personally care about hex colors, but others may do. PAPI support is essential.

Andre601 commented 3 years ago

@Andre601 @SlimeDog Mainly just curious, aside from having a rather inactive maintainer, what are the main features that ServerListPlus is missing? I could think of PlaceholderAPI support and hex colors, is there any other major feature that was introduced with some Minecraft update?

For me, something like "predicates" or "conditions" to display different MOTDs based on those is something that isn't just missing from SLP alone but many different MOTD plugins. So many out there only offer randomized MOTDs and icons at most but not really any "if X show MOTD Y with Icon Z". Like displaying a specific MOTD if the player in question is banned to tell them where to appeal.

I btw added the SLP Fork from Minebench (https://github.com/Minebench/ServerListPlus) here as it also adds RGB support while keeping SLPs main features intact.

SlimeDog commented 3 years ago

Predicates would be nice. I would probably make use of them. Perhaps you should add that as a feature request on ServerListMOTD. :)

Andre601 commented 3 years ago

Predicates would be nice. I would probably make use of them. Perhaps you should add that as a feature request on ServerListMOTD. :)

I have no use for this plugin. So why don't you make one? xD

SlimeDog commented 3 years ago

Oh. I misunderstood. I thought you were looking for alternatives to SLP that supported PAPI and might implement new features.

stephan-gh commented 3 years ago

For me, something like "predicates" or "conditions" to display different MOTDs based on those is something that isn't just missing from SLP alone but many different MOTD plugins.

Yeah agreed, this would have been exactly the "trigger" concept in ServerListPlus 4.0.

Basically, instead of having fixed Default, Personalized and Banned "profiles" you could have created an arbitrary number of profiles and enable them either permanently or based on a trigger. This would then have been similarly easy to extend as placeholders, which would have significantly simplified implementing feature requests for new kinds of triggers. This is why I started labeling issues with "trigger" long ago: https://github.com/Minecrell/ServerListPlus/issues?q=is%3Aopen+is%3Aissue+label%3Atrigger

I was playing with some ideas here https://gist.github.com/Minecrell/8470683b0f710fbf5d46044a1a17607e although I never figured it out fully because it's kind of tricky to find a compromise between flexibility and complexity.

To be honest, I kind of regret never finishing up SLP 4.0, I had nice ideas for it. :)

Andre601 commented 3 years ago

Don't we all? I personally regret never working on PingNachricht anymore, but I don't feel like working on it anymore, especially since I dislike working with ProtocolLib.

stephan-gh commented 3 years ago

I personally regret never working on PingNachricht anymore, but I don't feel like working on it anymore, especially since I dislike working with ProtocolLib.

IMO at this point, the extended ServerListPingEvent I contributed to Paper (see https://github.com/PaperMC/Paper/pull/980) should really be preferred over using ProtocolLib for server list stuff. And if some of the alternatives don't have support for that, you might want to ask them to add it. :)

Without the Bukkit drama something like this might have existed years before... Actually I had a PR open for server list stuff on the Spigot repository when the DMCA drama happened. Similar code became part of Paper eventually, but many years later.

SlimeDog commented 3 years ago

Does ServerListPingEvent exist in Spigot, or only Paper? If only Paper, then it's not really useful for Spigot plugins.

stephan-gh commented 3 years ago

Does ServerListPingEvent exist in Spigot, or only Paper? If only Paper, then it's not really useful for Spigot plugins.

It exists only in Paper. I stopped contributing to Spigot after the Bukkit drama, because of their weird source hosting, CLA and general approach to PRs. Paper was much more friendly to work with.

Anyway, given that the original API (Bukkit) + implementation (CraftBukkit) is dead now you can decide which implementations you want to support. ServerListPlus supports the Paper event optionally (in addition to the old ProtocolLib implementation).

stephan-gh commented 3 years ago

It exists only in Paper. I stopped contributing to Spigot after the Bukkit drama, because of their weird source hosting, CLA and general approach to PRs. Paper was much more friendly to work with.

Well, I don't know if anyone tried bringing it to Spigot (although I doubt it). Anyone is free to take the code and suggest it for Spigot. Or whatever is considered as the main implementation nowadays :)

SlimeDog commented 3 years ago

"Main" is a squishy concept, but Paper and its many derivatives still consider Spigot the "upstream". And Paper makes the explicit claim that any Spigot plugin will work on Paper (despite some evidence to the contrary). The reverse is obviously not true. If a developer wants their plugin(s) to work across the Minecraft derivatives, then they must account -- as you did -- for the differences (ie., enhancements that have not been incorporated into Spigot).

Andre601 commented 3 years ago

Alright... Quickly clearing stuff up

Does ServerListPingEvent exist in Spigot, or only Paper? If only Paper, then it's not really useful for Spigot plugins.

It exists only in Paper. I stopped contributing to Spigot after the Bukkit drama, because of their weird source hosting, CLA and general approach to PRs. Paper was much more friendly to work with.

Nope. The ServerListPingEvent does exist in Spigot. See here. What you're referring to is the PaperServerListPingEvent which has the enhancements.

Anyway, given that the original API (Bukkit) + implementation (CraftBukkit) is dead now you can decide which implementations you want to support. ServerListPlus supports the Paper event optionally (in addition to the old ProtocolLib implementation).

I wouldn't call it dead. While it's true that Paper does provided a lot of wanted features does it not make sense to only support them. Spigot still makes 42.3% (68.8k Servers) of over 204,000 servers so it's still a big thing and still receives updates.

This would be like if I would make OneVersionRemake only support Waterfall and/or Velocity, but intentionally deny BungeeCord.

"Main" is a squishy concept, but Paper and its many derivatives still consider Spigot the "upstream". And Paper makes the explicit claim that any Spigot plugin will work on Paper (despite some evidence to the contrary). The reverse is obviously not true. If a developer wants their plugin(s) to work across the Minecraft derivatives, then they must account -- as you did -- for the differences (ie., enhancements that have not been incorporated into Spigot).

Yep. That's one issue and a main reason as to why Paper offers a library for this, that tries to use Paper's enhancement while providing gracefully fallback support for Spigot. But if people don't use this do they often need to do things like using Class.forName("io.papermc.blablabla") to see if Paper is used or not.

Andre601 commented 3 years ago

Also, I think this becomes kinda off-topic and no longer about the issue's main purpose, so shouldn't we move it to somewhere else? Unfortunately does this repo not use Discussions (And I don't think it's worth enabling that) to say "Let's go to a discussion for this"

stephan-gh commented 3 years ago

Unfortunately does this repo not use Discussions (And I don't think it's worth enabling that) to say "Let's go to a discussion for this"

FWIW I enabled them, but mainly because I was curious how they look or what that even is (never used it). I will now hide all unrelated comments I guess :)

Andre601 commented 3 years ago

Unfortunately does this repo not use Discussions (And I don't think it's worth enabling that) to say "Let's go to a discussion for this"

FWIW I enabled them, but mainly because I was curious how they look or what that even is (never used it). I will now hide all unrelated comments I guess :)

They're essentially like StackOverflow (You can select answers, if enabled, and up/downvote responses)

haha44444 commented 3 years ago

In fact, I think this MOTD plugin is also very good: CleanMOTD(Source)

notkirb commented 1 year ago

I used to use PistonMOTD.

Andre601 commented 1 year ago

A while ago I made a plugin that aims to provide what SLP does called AdvancedServerList.

Benefits are multiple profiles with priority and conditions. Downside is no Sponge v8 support (yet).

Andre601 commented 1 year ago

Kinda wondering if this is still relevant to the current state of SLP, or if things have changed...

SlimeDog commented 1 year ago

Irrelevant to me. I have been using ASL for some time now.

stephan-gh commented 1 year ago

The status of SLP has not really changed. I did make a release with the new features that have accumulated over the years but still don't plan to have major new functional changes. I think it's fine to continue using SLP for people who are fine with the current state, but if someone is looking for new features or actively handled feature requests switching to a different plugin is probably better.

Andre601 commented 4 months ago

I am wondering if it would be worth it to pin this issue, so that people know about the plugins state as of currently and what possible alternatives there are...

SlimeDog commented 4 months ago

I recommend putting the information in places where people are likely to stumble across it: SpigotMC resource page, Github code README, and the like. Putting it here is fine too, but not as likely to be found by casual passers-by.