The commit with 1506 comments

Thought I'd reminisce on something I went through in late 2012:

https://github.com/Bukkit/CraftBukkit/commit/8f12382e8efc8c39a919af9180dd884caf3720ff

I was a participant. I deleted my posts because it was just too much. Have fun reading.
Even "minor" update cause numerous internal breaks. Everything that uses it needs to get updated anyway. Plugins have silently corrupted worlds, crash servers, and numerous other bugs simply because the admins didn't update or the devs didn't pay attention.
Sounds like a watertight argument to me. What's the big deal?
I still don't understand why CraftBukkit changes interface literally *every* single update.

If major version represented API breakage, they'd be in the hundreds.
Last edited on
CraftBukkit implements Bukkit, so they can break CraftBukkit API all they want. @helios the big deal is that many plugin devs are very young (take a guess why).
Last edited on
No, they shouldn't break API all they want because each breakage means a plugin has to change. The likelihood of there being a plugin from last month that works this month is probably zero.
Last edited on
From what I read, it's not that they change the API, but that all too many plugins use non-API functions.
Yeah. Many times there is no API in Bukkit for a particular task and the only option is to access the underlying implementation, of which there are more than just CraftBukkit. There's also a lot of accessing the underlying partially-obfuscated decompiled minecraft server code.
I remember having to deal with several issues.

onEnable/onDisable are now required when it once wasn't. Break.
An associated yml file is required when it once wasn't. Break.
Listener API has changed probably a dozen times. Break. Break. Break. Break.
Variable names change often. Break.

Picture having a mildly sized 20 player server that's full and trying to keep this crap up to date. I spent hours on this and whenever I suggested otherwise, I was quickly shot down by people who called such things "needed".

There is no proper versioning, there's generally no sense of compatibility. Instead, when the API changes, they just let the few hundred plugins break pointlessly to change the name of a function or to change how the listener works, or something, even if it has no performance, flexibility, or security advantage, just cosmetics.

Just saying, it wasn't a lovely experience. It also sucks that we are forced to upkeep the plugins to keep up with Minecraft clients (which was supposed to have started supporting a stable API of its own over a year and half ago).

It's better than messing with obfuscated code that could change at any moment at the snap of a command line argument, but it could be better.

Having recently started making plugins, the experience is pretty nice, I have not yet experienced upkeep. It's hard to fault a free open source project for it's problems though. Bukkit team already takes a huge amount of crap, it's hard not to defend them.

But honestly, as a plugin developer for Bukkit it must be a dream compared to a mod developer or someone who works on Forge.
Last edited on
Topic archived. No new replies allowed.