Home

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 Current Release

<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

Significant Contributors

License

This project is licensed under LGPLv3.0-only.

Supported Platforms