Awesome
<p align="center"><a href="https://minecraftdev.org/"><img src="https://minecraftdev.org/assets/icon.svg" height="120" alt="logo"/></a></p>Minecraft Development for IntelliJ
<table> <tr> <td align="center" colspan="3"><b>Build Status</b></td> </tr> <tr> <td align="right"><b>Main Build</b></td> <td colspan="2"><a href="https://ci.mcdev.io/viewType.html?buildTypeId=MinecraftDev_Build"><img src="https://ci.mcdev.io/app/rest/builds/buildType:(id:MinecraftDev_Build)/statusIcon.svg" alt="Teamcity Build Status" /></a></td> </tr> <tr> <td align="left">2024.1</td> <td align="left"><a href="https://ci.mcdev.io/viewType.html?buildTypeId=MinecraftDev_Nightly_20241"><img src="https://ci.mcdev.io/app/rest/builds/buildType:(id:MinecraftDev_Nightly_20241)/statusIcon.svg" alt="2024.1 Nightly Status" /></a></td> </tr> <tr> <td align="left">2024.2</td> <td align="left"><a href="https://ci.mcdev.io/viewType.html?buildTypeId=MinecraftDev_Nightly_20242"><img src="https://ci.mcdev.io/app/rest/builds/buildType:(id:MinecraftDev_Nightly_20242)/statusIcon.svg" alt="2024.2 Nightly Status" /></a></td> </tr> <tr> <td align="left">2024.3</td> <td align="left"><a href="https://ci.mcdev.io/viewType.html?buildTypeId=MinecraftDev_Nightly_20243"><img src="https://ci.mcdev.io/app/rest/builds/buildType:(id:MinecraftDev_Nightly_20243)/statusIcon.svg" alt="2024.3 Nightly Status" /></a></td> </tr> <tr> <td align="right"><b>OS Tests</b></td> <td align="left" colspan="2"> <a href="https://github.com/minecraft-dev/MinecraftDev/actions?query=workflow%3A%22Test%22"><img src="https://github.com/minecraft-dev/MinecraftDev/workflows/Test/badge.svg?branch=dev&event=push" alt="GitHub Action Status" /></a> </td> </tr> </table>Info and Documentation
<a href="https://discord.gg/j6UNcfr"><img src="https://i.imgur.com/JXu9C1G.png" height="48px"></img></a>
Visit https://minecraftdev.org for some information about the project.
Installation
This plugin is available on the JetBrains IntelliJ plugin repository.
Because of this, you can install the plugin through IntelliJ's internal plugin browser. Navigate to
File -> Settings -> Plugins
and click the Browse Repositories...
button at the bottom of the window. In the search
box, simply search for Minecraft
. You can install it from there and restart IntelliJ to activate the plugin.
Building
Build the plugin with:
./gradlew build
The output .zip file for the plugin will be in build/distributions
.
Test the plugin in IntelliJ with:
./gradlew runIde
Code is generated during the build task, to run the generation task without building use:
./gradlew generate
This task is necessary to work on the code without errors before the initial build.
To format the code in this project:
./gradlew format
This will format using ktlint
described below in the style guide section below.
The Gradle IntelliJ Plugin will handle downloading the IntelliJ dependencies and packaging the plugin.
Style Guide
This projects follows the opinionated ktlint
linter and formatter. It uses the
ktlint-gradle
plugin to automatically check and format the code in
this repo.
IDE Setup
It's recommended to run the ktlintApplyToIdea
and addKtlintFormatGitPreCommitHook
tasks to configure your
IDE with ktlint
style settings and to automatically format this project's code before committing:
./gradlew ktlintApplyToIdea addKtlintFormatGitPreCommitHook
IntelliJ includes a lot of dependencies transitively, including common dependencies that are used a lot, such as Kotlin,
Commons Lang3, Guava, etc. Unfortunately, the source distribution for IntelliJ does not contain sources for libraries as
well, so these libraries are imported into the IDE without sources by default. If you want to attach sources for (most)
of the dependencies IntelliJ includes, run the resolveIntellijLibSources
task and refresh the Gradle project in
IntelliJ:
./gradlew resolveIntellijLibSources
If you're curious about that task, it is implemented in buildSrc
.
Developers
- Project Owner - @DenWav - Kyle Wood
- @Minecrell
- @PaleoCrafter - Marvin Rösch
- @RedNesto
- @Earthcomputer - Joseph Burton
Significant Contributors
License
This project is licensed under LGPLv3.0-only.
Supported Platforms
- Spigot ( Paper)
- Sponge
- Architectury
- Minecraft Forge
- <a href="https://neoforged.net/"><img src="src/main/resources/assets/icons/platform/NeoForge.png?raw=true" width="16" height="16"/> <b>Neoforge</b><a/>
- Fabric
- Mixins
- BungeeCord ( Waterfall)
- Velocity
- Adventure