modrinth / code

The Modrinth monorepo containing all code which powers Modrinth!
https://modrinth.com
Other
863 stars 150 forks source link

Filter - Selecting Paper as a filter automatically selects spigot/bukkit plugins #2256

Open QarthO opened 3 weeks ago

QarthO commented 3 weeks ago

Please confirm the following.

Describe the bug

image

I make Paper plugins, my plugins are not compatible with Spigot nor Bukkit. Spigot/Bukkit plugins should be compatible with its forks, (ie. paper/purpur) but paper and purpur plugins are not always compatible with their upstream versions.

Minenash commented 3 weeks ago

Spigot/Bukkit plugins should be compatible with its forks, (ie. paper/purpur) but paper and purpur plugins are not always compatible with their upstream versions.

Isn't that what's the auto select here is doing? The loader is ORed instead of ANDed. So if you're searching for plugins to run on a paper server, you get all paper plugins, all spigot plugins, and all bukkit plugins.

BrailleBennett commented 2 weeks ago

I think I understand. We're saying that the behavior should be if you select for example paper, you will auto select purpur, pufferfish, etc. But if you select paper, the upstream forks like bukkit and spigot shouldn't be selected. So this auto selection is implemented in reverse currently. It's selecting all of the upstream forks instead of all of the downstream forks.

QarthO commented 2 weeks ago

To be honest it just shouldn't auto select other loaders in either direction. Thinking more about it, paper in the recent updates (ie. Mojang mapped vs spigot mapped) have made spigot plugins less compatible with paper, and paper plugins less compatible with bukkit/spigot.

Prospector commented 2 weeks ago

We can remove this feature if there is a consensus in the community. We originally added it when we added plugins due to feedback we received that all plugins from upstream loaders should work fine and should be included, it sounds like this is no longer the case then?

QarthO commented 2 weeks ago

"should work fine"

I'd say this is an okay assumption. But not always the case. Paper has switched to using mojang mappings, and as an attempt to maintain compatibility, they automatically remap the spigot mapped plugins on server startup. But its not perfect, and I've experienced a lot of spigot plugins that aren't compatible. Paper will also be no longer relocating the Craftbukkit package, so any spigot plugin referencing it will not work, (in the past, checking CraftBukkit internals used to be a very standard way a lot of plugins used to check versions). The majority of plugins should work fine down stream, but its not always, and I believe its a non-negligible amount. As an end user who doesn't fully understand all of this, selecting a loader and other loaders automatically being selected can lead to some confusion. I strongly am on the side that if a spigot plugin happens to support Paper (and downstream forks), then the project author should specify that.

Prospector commented 2 weeks ago

Yeah, the same is true for Fabric mods on Quilt, we suggest authors mark their Fabric mods as supporting Quilt if they want to deal with that and leave it up to them, it sounds like we should do the same for Paper going forward.