Developers' FAQ

##Frequently Asked Questions (for plugin developers)

###New API? Where do I start?
You can start by heading off to the official Sponge Documentation and reading up a bit on how to start writing your own plugins. Keep in mind the guides there typically assume you have prior knowledge of Java. If you just wanna delve right into exploring all the classes, or just need to look something up, the JavaDocs for SpongeAPI are available.

###I want to make plugins, but I don’t know Java!
Learning a programming language takes time and effort. There are a number of resources everywhere around the internet; look around for some. The official Java Documentation by Oracle is a nice place to start.

###How do I test my plugin?
Usually, you’ll want to have a test server to play around with your plugin. Instructions to set up a Sponge server can be found in the Official Sponge Documentation. Instructions to set up a Sponge server within a development environment can be found within the respective project’s README.md (Forge/Vanilla).

###Do I test with Sponge or SpongeVanilla?
This is entirely upon your preference. If you would like to work with trying to make your plugin support interventions by server mods, then you should work with Sponge. If you only want to focus on a vanilla, mod-free environment, play with SpongeVanilla.

###Help! My plugin isn’t working!
Always debug your plugin as much as you can, so you can be sure whether or not the fault belongs to your code, or to the Sponge implementation’s. If you find it to be your problem, do a little research on the forum and see if someone else has had the same problem and has a solution given to them (Search button on the top right [magnifying glass]); it makes it a whole lot easier for us forum stalkers to not have to deal with much duplicates. If you cannot find a solution, you can post your dilemma on the forums under the Plugin Development category and some of us can see what we can do.

Please remember that we are only a community and not a full-blown organization of professional helpers; do your research first before asking us.

###How should I report bugs or improvements?
Before submitting an issue, you should check to see if someone else has already addressed it. Check the issue tracker of the repository and the forums for your problem, and if you don’t find any, then continue on.

Issues regarding Sponge or the API should be submitted to the respective repository’s GitHub Issue Tracker. Be as elaborate as possible with explaining your issue, creating a system takes a lot of brain power and information is all we have to work with. Include use cases, possible solutions and resources like stacktraces if you have them.

###Something’s wrong with Sponge?
The team isn’t perfect with their work; there’re always gonna be a few bugs here and there within the code. As an open source project, the team welcomes any effort to help squash these bugs. Assuming you’ve correctly debugged your plugin and are certain the fault isn’t your code, you can always submit an issue to the GitHub Issue Tracker for the respective implementation of Sponge you’re developing for (Forge/Vanilla). This is only for things that’re wrong with how Sponge is working; if you have a missing feature, scroll down.

###The API’s missing something I need!
As always, hunt down for information to see if your feature has already been addressed by someone else, or if its even already implemented and you just turned a blind eye. This helps keep duplicates on the low so we can keep focus on tracking things we haven’t already gotten to. If it has yet to exist, you can file an issue on the SpongeAPI’s repository issue tracker and discuss your new feature there with the team.

###When will [feature] be implemented?
Careful with your words. As a developer, this stands to be a very irritating question; the development process is a delicate one–we cannot afford to rush things and leave i’s undotted and t’s not crossed. A lazy development process like that will kill the project faster than we think it would. Be patient; the team works hard and they’ve come far. Rememebr, you can always try to help as a contributor to the project.

###I wanna try and help with Sponge!
The team welcomes any and all contributions to the project; if you wish to help build the internal code of Sponge, you should check the issue trackers of the Sponge and SpongeVanilla repositories to check what needs to be done. If you wish to help with planning the API features, visit the SpongeAPI repository. Please remember to follow the contribution guidelines when writing contributions. The guidelines are shown to you by GitHub when you attempt to make a pull request or an issue.
####… but I’m not a coder?
Don’t worry; you don’t need to know a single bit of Java or any of the sorts like our developers. A contribution can be as small as pitching ideas to the team – your creative mind can help shape the project on its way. But, if you’d rather help with something else, the SpongeDocs are hurting for updates on information! You can help by researching the current build of Sponge and figuring out how it works, and putting it in words on a documentation page!

If there are any other questions you think I should address in this FAQ, please make a post in this topic.

##Resources
####Go sight-seeing!
Official Sponge Documentation
SpongeAPI Java Docmentation

Sponge (Forge) Repository
Sponge (Vanilla) Repository
SpongeAPI Repository
SpongeDocs Repository

Oracle’s Java Documentation

13 Likes

I love you, @Xemiru.

6 Likes

Maybe a duplicate post in Plugin Development? Also @FerusGrim could you pin this?

2 Likes

Everyone loves @Xemiru

5 Likes

Not everyone. @mbaxter loves cats.
Well… maybe he loves @Xemiru and cats :stuck_out_tongue:

3 Likes

Love is in the air :blush: now that I have expressed my feelings I would like to thank you for mentioning the duplicate issue we have around here :smile:

3 Likes

pretty sure there’s a way to pin it in the plugins category instead of duping it
but what do i know, i just became a regular like 3 days ago

3 Likes

Don’t forget your badge :wink:

nyuuuh.
i am proud of my discourse nubbiness. -3-

EDIT: then again, gray text that tells the world i’m finally able to move my own topics around

3 Likes

Time to link to the beautiful Oracle docs?

Surely the answer is “SpongeAPI” or pointing folks to the SDK?

So this isn’t ready yet, and thus not worthy of pinning? :wink:

Could use a link here.

Probably good to change the ‘?’ to something clear that you’re talking about a feature.

1 Like

added those recs

also, i did mean choosing between Sponge and SpongeVanilla; they’re two different implementations. though, i can see why you pointed it out, that q was supposed to answer testing plugins; admittedly its answer was a little vague to point that out.

1 Like

anything I missed?

@xemiru A pull request to the spongedocs repository :stuck_out_tongue:

1 Like

guess i can do that but it still fits here since people’re more commonly on the forums than they are on the docs or githubs

1 Like