Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/minecraft-dev/minecraftdev

Plugin for IntelliJ IDEA that gives special support for Minecraft modding projects.
https://github.com/minecraft-dev/minecraftdev

architectury bukkit bungeecord fabricmc forge gradle gradle-kotlin-dsl intellij intellij-plugin jetbrains kotlin mcp minecraft mixins paper quiltmc spigot sponge

Last synced: 26 days ago
JSON representation

Plugin for IntelliJ IDEA that gives special support for Minecraft modding projects.

Awesome Lists containing this project

README

        

logo

Minecraft Development for IntelliJ
==================================


Build Status


Main Build
Teamcity Build Status


2024.1
2024.1 Nightly Status


2024.2
2024.2 Nightly Status


2024.3
2024.3 Nightly Status


OS Tests

GitHub Action Status

Info and Documentation [![Current Release](https://img.shields.io/badge/release-1.8.1-orange.svg?style=flat-square)](https://plugins.jetbrains.com/plugin/8327)
----------------------

Visit [https://minecraftdev.org](https://minecraftdev.org) for some information about the project.

Installation
------------

This plugin is available on the [JetBrains IntelliJ plugin repository](https://plugins.jetbrains.com/plugin/8327).

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](#style-guide) section below.

The [Gradle IntelliJ Plugin](https://github.com/JetBrains/gradle-intellij-plugin)
will handle downloading the IntelliJ dependencies and packaging the
plugin.

Style Guide
-----------

This projects follows the opinionated [`ktlint`](https://ktlint.github.io/) linter and formatter. It uses the
[`ktlint-gradle`](https://github.com/jlleitschuh/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](https://github.com/DenWav)
- [**@Minecrell**](https://github.com/Minecrell)
- [**@PaleoCrafter** - Marvin Rösch](https://github.com/PaleoCrafter)
- [**@RedNesto**](https://github.com/RedNesto)
- [**@Earthcomputer** - Joseph Burton](https://github.com/Earthcomputer)

#### **Significant Contributors**

- [**@gabizou** - Gabriel Harris-Rouquette](https://github.com/gabizou)
- [**@kashike** - Riley Park](https://github.com/kashike)
- [**@jamierocks** - Jamie Mansfield](https://github.com/jamierocks)

License
-------

This project is licensed under [LGPLv3.0-only](license.txt).

Supported Platforms
-------------------

- [![Spigot Icon](src/main/resources/assets/icons/platform/Spigot.png?raw=true) **Spigot**](https://spigotmc.org/) ([![Paper Icon](src/main/resources/assets/icons/platform/Paper.png?raw=true) Paper](https://papermc.io/))
- [![Sponge Icon](src/main/resources/assets/icons/platform/Sponge_dark.png?raw=true) **Sponge**](https://www.spongepowered.org/)
- [![Architectury Icon](src/main/resources/assets/icons/platform/Architectury.png?raw=true) **Architectury**](https://github.com/architectury/architectury-api)
- [![Forge Icon](src/main/resources/assets/icons/platform/Forge.png?raw=true) **Minecraft Forge**](https://forums.minecraftforge.net/)
- Neoforge
- [![Fabric Icon](src/main/resources/assets/icons/platform/Fabric.png?raw=true) **Fabric**](https://fabricmc.net)
- [![Mixins Icon](src/main/resources/assets/icons/platform/Mixins_dark.png?raw=true) **Mixins**](https://github.com/SpongePowered/Mixin)
- [![BungeeCord Icon](src/main/resources/assets/icons/platform/BungeeCord.png?raw=true) **BungeeCord**](https://www.spigotmc.org/wiki/bungeecord/) ([![Waterfall Icon](src/main/resources/assets/icons/platform/Waterfall.png?raw=true) Waterfall](https://github.com/PaperMC/Waterfall))
- [![Velocity Icon](src/main/resources/assets/icons/platform/Velocity.png?raw=true) **Velocity**](https://velocitypowered.com/)
- [![Adventure Icon](src/main/resources/assets/icons/platform/Adventure.png?raw=true) **Adventure**](https://kyori.net/)