I am lost, this is not Bukkit!

Hi everybody,
I am hitech95, I do not believe it to be an expert nor a rookie. Let’s say I’ve worked with java and minecraft (Forge, Bukkit etc.)
I must say that I gave a quick look at the project, unfortunately the documentation is not complete and I did not understand a thing or two :wink:
I just hope that these APIs are documented better than Forge (I abandoned forge because it was too chaotic and everything was changing too quickly :stuck_out_tongue: )
So, without further ado, I would like to give new life to my old plugin “BowWarfare Reloaded”
Now my doubt is: Is there a way to test what I do? Apparently the implementation of the API is not ready, right?
Do you have any post, guide, to follow just to make me a general idea?
I have found “Sponge Coding For Dummies”, no other?
Thanks, Nicolò

As long as you have a little experience compiling via gradle you should not have an issue testing your plugins. Though I do warn as always both the API and the implementation are far from stable or complete. So you can compile the API and implementation for testing, but nothing is guaranteed to work or stay the same. It is nice to play with though if you want to start learning it.

Firstly, Welcome to the forums!

The docs aren’t very good right now but I think you can get the basic idea, If you are comfortable building from source then you could try Granite or build the forge mod.

In terms of docs, You can find the creating a plugin tutorial here, It’s not perfect but it’s alright.

After reading that, You can search around the forums or the javadocs for more.

Why you so fast?

2 Likes

Got those desktop notifications :stuck_out_tongue:

Those are broken for me, everytime I move away from the sponge tab, it says I have 13 notifications.

1 Like

I updated the original post :slight_smile: Sorry for going off topic…

wow, what a beautiful community, you have answered me immediately!
I had asked such a thing (years ago) on Bukkit and no one had answered :cry:

@RobodudeMC I meant just that! I meant just that! I work with Android and Gradle is as my home. :smile:

@WetSponge Let’s see if I understand, to run the plugin or I can fill the coremod (Sponge) or use Granite. I do not understand where I can find granite, was a side project but now? I have to fill it out?

@RobodudeMC There is no problem for the off topic, maybe for you modders :grin:

Bye, Nicolò

2 Likes

Right now, there are two officially supported implementations:

  1. Sponge for Forge

You can find this at http://github.com/SpongePowered/Sponge , It is a Forge Coremod, Build it, Drop it into either a forge client’s coremods folder or a forge server’s coremods folder.

  1. Granite

Granite is to Sponge as CraftBukkit is to Bukkit: It is the non-forge implementation. It’s incredibly unstable and incomplete so you’re better off with Sponge for Forge

It’s not incredibly incomplete or unstable, it’s just missing some features.

@hitech95 do you have a specific question?

Wait, sponge also works on the client side? Wow!

My work will begin as soon as they are ready APIs, I need to manipulate the blocks … (reading the documentation it seems that the functionality is not implemented) I also need the event of damage to the player.

2 Likes

Ehm, what? I have to wait for a the blocks APIs and player APIs.

Sponge works on the clientside, but not in the way that you’re wanting (yet).

Minecraft clients all run a server under the hood - this is what @WetSponge meant by it running on the client. Rather than running a dedicated server, you can drop the mod into the client and have it run on the integrated server.

I mean for the client side that I can run the plugin from the “server” built-in client. So I don’t have two open instances.

Client side plugin is a my hope… :stuck_out_tongue_winking_eye:

Bye, Hitech95.

Nope! Blocks API and Entity/Player API was recently “overhauled” to say the least. The documentation for this is greatly needing some tender loving care that I’m sure @Inscrutable will be working on the documentation for the new “Data API”. I can personally say that there have been DataManipulators added for almost every single conceivable types, including Entity types, Block types, TileEntity types, and Item types. Note that since 1.8 added a lot of capabilities with ItemStacks being able to place down a TileEntity with completed TileEntity related data, the overhaul was absolutely necessary ;).

Granted, this leaves many of the entity interfaces empty because they all are extending the grand DataHolder.

Having said all of that, I would encourage you to understand that given this major work has been done only recently, a lot of the methods need to be implemented properly (which we’re working on actively atm), but if anything, it should feel very similar to working with ItemMeta or MaterialData APIs from Bukkit.

head explodes

Seriously, the Docs have been struggling to cope with the flood of API changes/additions in recent weeks.
Ideally we would like the author(s) of the code to have first pass at writing Docs for it, as they understand it best. It’s a lot harder for a third party to get into and explain without a lot of testing beforehand. On the flipside, extensive testing of the new API is needed to make sure it’s sufficiently robust. SpongeDocs could definitely use more contributors and contributions to describe and explain the new API features.

4 Likes

You are absolutely right.
In any case you are still working to interactions with the world.
It reminds me Forge, I hope it is more simple. :stuck_out_tongue_winking_eye:
I’m glad that there are so many people so kind.
Also be able to speak directly with developers is fantastic.

This is a particular question:
will I be able to disguise? On Bukkit you could interact with the gui (eg boss bar), can I do it with native APIs?

Bye, hitech95

There’s a packet API / Library similar to PacketLib planned, although it might not be integrated into sponge by default. afaik there is no way of changing the text on the boss-healthbar atm.

Where did you read that :frowning:? I was actually working on something like that.