Bukkit2Sponge: an implementation of SpongeAPI for Bukkit servers

Have an old Bukkit server you want to run SpongeAPI plugins on? Announcing Bukkit2Sponge, a new implementation of the Sponge API as a Bukkit plugin, now available:

Bukkit2Sponge is essentially the opposite of Pore, in that instead of allowing you to run Bukkit plugins on Sponge servers, it lets you run Sponge plugins on Bukkit servers.

This project is in its early stages, not much is bridged yet, but I’m posting about it now to gauge interest and invite interested users to help out or provide feedback. At this point, SpongeAPI plugins load and a handful of events are implemented.

10 Likes

I’ll have to keep a close eye on this. It’s definitely ambitious. Good luck. :smile:

No offence but the name sounds like you are going Bukkit -> Sponge

Maybe this should be named Sponge2Bukkit?

4 Likes

Or even Sponge4Bukkit possibly, as it’s not a rewriter but an implementation.

4 Likes

Depends on your perspective :slight_smile: , as either a plugin developer or server owner, could go either way.

I think of it as turning your Bukkit server “into” a SpongeAPI server (Bukkit → Sponge).

I was never that great at naming things, though. One of the hardest problems in computer science. Might change it later.

Been waiting until someone had the courage to attempt this :D. Good luck!

geeez, aren’t you gonna have lots of fun writing this.

i’ll be waiting for it .w.

1 Like

Was wondering why something like this hadn’t already popped up.

I wish you luck on implementing the features in Sponge that aren’t in Bukkit though - might have to dig into NMS…

the hype i had for sponge made me forget nms existed.
dear god, have fun with reimplementing that over and over and over assuming spigot’ll keep updating the same way bukkit did

Most likely because it’s probably* impossible.

* I don’t deal in absolutes. But I’m pretty sure it’s not possible.

1 Like

I am pretty sure its possible, it just won’t be able to cover the complete SpongeAPI. What can be “fixed” using the Null Object Pattern (just makes sure plugins don’t crash but may break them) And it will be a lot of NMS. I just hope he makes his NMS code smart (this class can find nms from 1.3
2 till 1.7.10), or their will be lots of complains from people running 1.7.10-1.4.7.

(their is something wrong with this wall of text :worried:)

1 Like

I am mainly targeting non-Minecraft Bukkit API implementations (Glowstone and Glowstone++, but Bukkit2Sponge doesn’t yet work on the latter due to this bug), so for better or worse won’t be able to use NMS.

I’m thinking the way around this it to enhance the forks of the Bukkit API as needed to add support for required functionality needed in SpongeAPI, but of course this does introduce the complication of working with the respective teams to keep the API forks (Spigot-Bukkit, Glowkit, and Glowkit/Spigot-Bukkit) synchronized. For now I’ll probably stick to what can be covered on common ground.

1 Like
Including javax.inject:javax.inject:jar:1 in the shaded jar.

I would say, try to relocate javax.inject because the javax package looks kinda sealed.

I’ve been working on something sort of like this (a plugin API that works on Bukkit and Sponge), maybe in the future I could contribute some work.

To be honest, I once tried to work on my RPG plugin project to make it platform agnostic such that it would work on both Bukkit and SpongeAPI, but alas, I’d be reinventing the wheel with the strides SpongeAPI has made.

To be honest, from my personal point of view, I once worked on plugin commissions for Bukkit and as soon as I started questioning the amount of bloated logic to perform some basic operations with Bukkit/Spigot’s API, I stopped doing plugin commissions.

In general, I wouldn’t want to contemplate having a SpongeAPI implementation on CraftBukkit/Spigot because of the amount of differences the two API’s have, it would be incredibly difficult to try to implement, unless you’re creating a SpongeAPI implementation directly on top of Spigot.

Again, this is all my personal opinion.

4 Likes

I just wanted to start a topic of all implementations yesterday. Good luck, I will be needing this in some time :smile:

Unfortunately I am extremely busy right now, otherwise I would like to help

Thank the lord.

#SpigotIsTheUltimateServerAndNothingWillEverBeBetterThanIt

Also, I may help this. It’s pretty neat.

Um… No. I don’t even.

9 Likes

Care to support that claim?

8 Likes

Ehm, I hope you realise that a lot of plugin devs are dropping bukkit support. So after some years, you can come back and try to defend that statement :stuck_out_tongue:.

3 Likes