**Discontinued** Pore - A Bukkit-Sponge Bridge

That’s not how it works. Bukkit’s code is available under a GPL license. That can’t change, regardless of who owns the project as a whole.

1 Like

Sorry for the misunderstanding. I meant to say Bukkit uses code made by Mojang and Wolvereness. (Correct me if I am wrong)

Yours sincerely,

Regardless of who wrote the code, it is still under a GPL license. Go read the rest of this topic if you don’t understand, it has already been discussed.

Just an update, Pore has officially merged with the Lapis Blue project. There’s a Reddit thread about it here.

1 Like

Let’s take this scenario for a question i’d like to ask.

I have a server under construction that combines alot of the bigger plugins aswell as smaller ones that will likely be doomed now. This is a craftbukkit server. All the plugins are third-party.

  1. Will I with the usage of Pore be able to convert these plugins without ANY help of the plugin creators?
  2. Is it useless for me to keep building my server with the use of bukkit plugins?
  3. Lets say Pore succeeds perfectly in converting bukkit plugins to sponge, will the converted plugins be able to be updated in Sponge’s Code?

Thanks,

Calisthene.

  1. Pore will in theory support any plugin which doesn’t use NMS or OBC code, so hopefully, yes.
  2. Not if Pore succeeds in its goal.
  3. I’m not entirely sure what you mean by this, but I’d be more than happy to answer if you clarify a bit. :smile:

If I understand correctly, Pore isn’t a tool for translating code. Rather it is a plugin for Sponge which points calls to the Bukkit API to their respective Sponge API hooks, if possible (Note: I’m no develooer, so my terminology is probably a bit off).

On list form:

  • Bukkit plugin calls Bukkit API from Pore
  • Pore translates that specific call to the equivalent Sponge API call, then passes it on to the server.

Presumably the server’s response is sent to Pore, so it will then have to relay that back to the bukkit plugin.

So to answer your question: the plugin’s code won’t be converted by Pore, a developer will have to do that more or less manually if you want to start updating it for the SpongeAPI. In theory you can keep updating it for the BukkitAPI and Pore will still work so long as you don’t use NMS or OBC.

… Here’s to hoping I did understand correctly.

Ah, I misunderstood what @calisthene was asking. But yes, that explanation is spot-on. :slight_smile:

1 Like

What about Bukkit object classes? Will they be duplicated in Pore or will developers need to instead convert their return types from Bukkit-types to Sponge-types? Such as the Player or Entity and such. There’s a lot of Java concepts I don’t understand, especially concerning abstraction, but it seems like if you expect plugins to be able to run on Pore without modification, then it’d need to also provide the classes that Bukkit had. Seems like that’d be crucial, just sounds extraordinarily exhausting.

Everyone is saying it’s pointless to continue development for Bukkit plugins, but as far as I can tell, md_5 is still hard at work with Spigot, so it seems development for that platform isn’t hopeless yet, so long as you don’t mind the performance improvements they attempted for servers. I’ve even heard he may be able to regain legal right to distribution of Spigot (rather than binary patches) if he continues development for long enough to rid Spigot of most of the infringing code. Quite glad Spigot can continue to update while we wait for Sponge and some plugins to be released.

Craftbukkit works by implementing classes and methods from Bukkit to provide functionality. Pore will work in a similar way, but instead of providing functionality directly, it will instead pass method calls onto Sponge. So instead of a class “CraftPlayer” which implements “Player”, Pore has a class “PorePlayer” which implements it and subsequently provides a bridge.

It is somewhat tedious to translate each method individually, but seeing as SpongeAPI is for the most part parallel to Bukkit to some degree, it’s not terribly difficult. Lately, we’ve been focusing most of our efforts on doing so in the most efficient fashion possible.

I should also mention that Pore includes the Bukkit API itself in the JAR, so rather than throwing NoClassDefFoundErrors for API features we haven’t gotten to yet, Pore will simply throw a NotImplementedException.

1 Like

Any news about Pore ?

We very recently were able to update it for the new Data API included in SpongeAPI 2.0, thanks to Lamp-Post. Other than that, we’re still a bit away from a reasonably complete implementation. Lately we’ve just been trying to keep up with SpongeAPI changes and additions.

Does it work now?

It’s not recommended for use in production at this stage. It’s mostly untested, and a lot of the Bukkit API is still unimplemented.

If you can share the progress work here, because this plugin will be used by so many players in the future, i think :slight_smile:

It’s a bit difficult to gauge how far we are into development, in part because major changes to SpongeAPI may slow us down quite a bit, and our speed is somewhat inconsistent since the core team is essentially only two people. We’ll likely start sharing updates once we have enough of the Bukkit API implemented to get a reasonable number of plugins working. You may also find it informative to take a look at the commit history for the repository, which gives a synopsis of development progress.

Ok, thank you again for all the work done !

I’m happy to help the community. :slight_smile:

Pore is awsome! But I can’t seem to get Essentials working. I tried the original on the Bukkit forums (Outdated). Then I tried the Spigot version, but when a player joins Pore fails to send a onPlayerJoin() event to Essentials, and Essentials then bugs out where I can’t execute commands in-game or in-console.

Pore right now is not in a functional state.