#Introduction
Hi guys, this is my first post here. I’d like to show you a project of mine that I think is really cool, and hopefully you will too. I am building a plugin for IntelliJ which assists in developing Minecraft plugins of all kinds. Bukkit, Spigot, and Paper are supported on the Bukkit end, Sponge of course, as well as BungeeCord, and Forge, and LiteLoader. But I am going to focus on Sponge here now.
#Overview
Minecraft Dev for IntelliJ, or what I’ll just refer to as Minecraft Dev from here on, supports custom project creation and detection with both Gradle and Maven. I will show you what I mean here.
First, you can create a project of various types, again, we are only focused on Sponge here:
Now you’ll be presented with a screen where you can input the build system information, and choose either Gradle or Maven. For Sponge the default is Gradle. The Java version chooser will be removed in a future release.
After that, you will be shown a Sponge-specific settings page. The required options will be filled in already for you, but you can fill in the optional fields as well.
And after you click next it will ask you where you want the project to be located (standard IntelliJ), then the plugin will generate the project for you. Gradle will import the project, and in this example this is what is generated:
I think this will lower the barrier of entry for Sponge plugin development, and some people I’ve already met with on the Sponge team agree.
#Contributing
Now I can already see the comments: “Couldn’t you just do this with some templates? What’s the point for installing a whole plugin?”
Well, the point of this post isn’t to get you to use this plugin, it’s to help me make it awesome. I already have a few people who have agreed to help out building the Sponge feature-set, but the more input we get the better. Now, if you still want to use the plugin then by all means, it is already uploaded to the plugin repository. You can install it by simply searching for “Minecraft” in IntelliJ’s built-in plugin wizard.
###Desired Feature Set
So I want people to contribute, but what do we have in mind for this plugin? Well, the possibilities are basically endless, we just need to come up with good features. We want features that would be legitimately useful to anyone, not just beginners, and we want it to feel like a native IDE experience. So here’s a few idea’s we have so far:
- Ore integration with a dependency chooser which automatically adds the required information to the Maven pom.xml or Gradle build.gradle
- Event listener generator
- Warnings for common mistakes, such as not using filtering for listeners where appropriate
- Automatic run configurations for debugging plugins on the server
This is a pretty short list, and I imagine people can come up with many, many more awesome ideas.
How to Contribute
I would love to get the community involved in this project, and I hope you guys find it as interesting as I do and see the potential in this project. gabizou and kashike have joined me in this project helping me create this, and it would be great to get more people involved.
Here is the Github link for this project, which includes the issue tracker. If you would like to contribute, feel free to fork the project and create pull requests with features. If you want to contribute in other ways, feel free to create issues for any bugs you find or features you think would be nice to add.
If you want to communicate with me on this project you can PM me on IRC at any time. I have a #demon
channel set up on esper
and spi.gt
that is dedicated to Minecraft Dev development discussion, so feel free to join me there. I am always in #sponge
and #spongedev
as well, where you can always ping me. If you don’t use IRC then feel free to PM me here or reply to this thread and I’ll try to get connected with you.