Resource Minecraft Development IntelliJ Plugin

Discussion in 'Spigot Plugin Development' started by DemonWav, May 20, 2016.

  1. Introduction
    Hi guys, 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, Paper, Sponge, and BungeeCord are supported, with Forge, and LiteLoader support soon. But I am going to focus on Spigot here now.

    Overview
    The Minecraft Development IntelliJ Plugin, or what I'll just refer to as MDIP 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 Spigot here:

    [​IMG]

    Now you'll be presented with a screen where you can input the build system information, and choose either Gradle or Maven. For Spigot the default is Maven. The Java version chooser will be removed in a future release.

    [​IMG]

    After that, you will be shown a Spigot-specific settings page. The required options will be filled in already for you, but you can fill in the optional fields as well.

    [​IMG]

    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. Maven will import the project, and in this example this is what is generated (I also added one example event listener):

    [​IMG]

    I think this will lower the barrier of entry for Spigot plugin development, and some people I've already met with 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 I need help with the Bukkit platform feature-set. 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:
    • Event listener generator
    • Command generator
    • Permissions validation and auto-completion
    • Warnings for common mistakes, such as calling Bukkit API's in async methods
    • 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 MDIP development discussion, so feel free to join me there. I am always in #spigot and #spigot-dev 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.
     
    #1 DemonWav, May 20, 2016
    Last edited: May 20, 2016
    • Like Like x 29
    • Winner Winner x 10
    • Useful Useful x 6
    • Creative Creative x 2
  2. Well done, this is a solid idea (no pun intended), not many developers on the site would have the ability to make something like that and even if they did, I doubt many would have been creative enough to come up with it :p Starred :)
     
    • Like Like x 4
  3. Very well made, I personally don't use IntelliJ so I guess there will be no version available for me :(
     
  4. Nice idea. Support for bungee would make it even better.
     
  5. Sorry, I forgot to mention it does support BungeeCord, as shown in the screenshot.
     
  6. Yeah just noticed :p
     
  7. wow! I've been hoping for something like this for some time, glad you made it :) maybe you can add support for Nukkit? also, maybe support for live reloading of the plugin/hooking into the server itself?
     
  8. I wouldn't be against it if someone submitted a PR for it and managed the plugin's Nukkit platform support, but it's not a platform that I will personally work on, sorry.
     
  9. Now that you did this I might switch to IntelliJ soon :O
    I just have 2 questions:
    1) Is it possible to open 2 projects at once
    2) What are the autoformat and autoimport shortcuts
     
  10. Amaaaaaaazing plugin! Love the plugin! Just tested it, and everything works as shown, and all of the features are extremely useful when starting a new project. Also, must say, great job with it!
     
  11. 1. It supports opening multiple modules of differing types in the project, and opening multiple projects side-by-side. It doesn't currently support single modules with more than one module type, but it will in the future.
    2. Nothing yet, this is heavily WIP and we are working on adding events generators first.
     
  12. I'm looking forward to it.
     
  13. Are you making these?
    U meant like the ones built into intelli. Eclipse has an extremely useful autoimport and auto format shortcuts soon anted to know if intelli had it.
     
  14. IntelliJ has a just as advanced (or in my opinion, must more advanced) auto-completion and auto-formatting than Eclipse. But I don't really understand your question. We are adding code generation shortcuts for certain things, but things like auto-format are handled by the IDE, Ctrl-Alt-L reformats your code in IntelliJ.
     
  15. Oh thanks. I just wanted to know the key combinations for both of these .
     
  16. I can't find it in the plugins thing though.
     
  17. It requires IntelliJ 2016.1 and up.
     
  18. Oh. thanks!
     
  19. Can you add a way to pick a specific Spigot version? :3
     
    • Agree Agree x 2