Don't reinvent the wheel!

Many parts of the Bukkit API are really nice. Good examples are the Permission API (and the also permissions.yml), the event system and the basic command API. There are also bad things like the static plugin.yml, and the Player/OfflinePlayer system.

The Bukkit API is open-source, and not affected by copyright issues or DMCA. Before adding anything to the Sponge API, we should compare it to the way Bukkit did it and see if it is better or not. If the Bukkit system is better, copy and extend it.

I am writing this after I saw the first proposal of the sponge permission API. Compared to Bukkit’s permission, the system is overly complex, the only improvement is the Context object


Bukkit is licensed under GPL, so we can’t use it with propetiary Minecraft server. The fact that we can’t use Bukkit any way is only reason why Sponge exists.

That… And, Sponge is not reinventing the wheel, they are perfecting it, or do your cars usually come with wooden wheels?


True - any direct copying of Bukkit code is a complete non-starter, unless the Sponge API is to be GPL’d (which it isn’t).

However, that does not preclude using parts of the Bukkit API as inspiration, e.g. the concept of a permissions API which plugins can implement, or the MaterialData abstraction of direction block/data manipulation (which was nice, but always incomplete). Just no direct lifting of any code.



Wow this sentence is worded really well


Thank you, sir. :slight_smile:

They are not reinventing the wheel. They are making a jetpack.

1 Like

I would not worry about the permissions system.

That’s because I happen to be the inventor of it. It was something I wrote for my IRC bot in 2007, and when I mentioned in Bukkit’s IRC channel very early on, Niji stole it and made the Permissions plugin. From what I have seen, everyone has completely screwed it up. It’s supposed to be far more elegant and powerful than how I’ve seen people implement it, Bukkit included.

The only permission system that’s going to be finalized in Sponge is one that’s going to be easy to use while still powerful.


I agree on you, @sk89q. Sponge is better than Bukkit.