| Adding on to yours, since right now you have the most complete background answer. There's some history in the "Bukkit" family that might make their chaos make more sense. In the beginning, there was Bukkit, which was a plugin API. And there was its reference implementation, CraftBukkit. It was very popular, Bukkit was the de facto API for server-side modding, and I made 50 bucks off of advertising revenue share for downloads of my plugin, which was a lot for me as a high schooler with one (1) year of java experience. Times were good. Where was I? Oh yeah. So, for a long good while, times were swell. Then iirc Microsoft announced they were acquiring Mojang (I think this was the precipitating event? Someone correct me if not). And the main Craft/Bukkit guy threw in the towel and pulled a very clever poison pill: he DMCA'd his own repos. You see, Mojang essentially didn't care about server.jar distribution because they were a cool indie company. So CraftBukkit just included it. Which meant it was always in violation of Bukkit's GPL license since that code wasn't open source. So anyway, CraftBukkit explodes in a supernova and the resulting stellar nursery produces Spigot which pioneered the distribution strategy that all successors would then use - they distribute a decompilation map and their source, then you run a jar that downloads server.jar and performs the unholy mixing of licenses on your machine. This is where I left the scene so I only have a summary from here on out. Spigot is the main go-to for a while, but the stellar nursery is still hot, and so various creative differences produce Paper, which seems to have mostly caught on to replace spigot though it seems like spigot is still a nontrivial player as well. And these all still implement the same ole GPL licensed Bukkit API. |
So Bukkit wasn’t the first. It was hMod in 2010. Everyone came over from hMod because hey0 disappeared for a hot minute in late 2010. Everyone from Bukkit came from hMod, although there were also holdbacks who didn’t like someone stealing the hMod community, but a gathering of major plugin developers and devs from hMod forced everyone’s hand (but also, hey0 disappeared for a relatively long time with no explanation).
hMod also had a problem: it didn’t attempt to reverse any of the code obfuscation from Mojang, so working with it was extremely difficult. When hMod came about, it predated the MCP project as well by like 3 months, which started as a major community effort to deobfuscate the codebase. Bukkit came after MCP and could take from it inspiration.
We are still in year 2010.
Fast forward many years later… Microsoft had nothing to do with what happened actually. Bukkit was secretly owned by Curse, and much later Mojang secretly bought Bukkit.
This secret sale pissed off a lot of the community and one of the core but non-OG contributors (Wolverness — he joined Bukkit much later) issued a DMCA against the codebase as a form of protest. This was obviously controversial but he also had a lot of support.
Mojang actually never substantially interfered with the wholesale illegal distribution of its source code.
Anyway, because Mojang was officially hiring the Bukkit team, but only limited to some members from the OG 2010 team, and with the other core contributors not being included at all, and with the DMCA taking down the repos, Bukkit became dirty and there wasn’t a future for Bukkit anymore. Spigot, which was then a performance fork of Bukkit, became the de facto successor (not to say that there weren’t many other options and competing choices in play too).
Spigot didn’t create their distribution strategy though. MCP did things this way.