Table of Contents
Reading the Minecraft source
Reading the Minecraft source is an important skill in modding. This is mainly because
- Most of the Minecraft things are not documented
- Documentations/tutorials get outdated fairly quickly
To read the Minecraft source, you need to generate sources first. See the “Generating Minecraft Sources” section in Setting up a mod development environment.
Searching for a Minecraft class
To search a Minecraft class, follow these steps.
Intellij IDEA
- Set the search scope to
Project and Libraries
or wider - Type the class name in the search box
Visual Studio Code
- Open the search pane with
Ctrl + P
- Type the class name with prefix
#
Eclipse
- Open the search pane with
Ctrl + Shift + T
In Visual Studio Code, you can also use Ctrl + T
to open the class search directly.
Finding the class you want to see
Locating the part of code you want to see is a challenging task. Here are some tips.
- Take full advantage of IDE's ability to find the relevant code such as
Call hierarchy
,Method hierarchy
orType hierarchy
. - Take a look at open source mods which are similar to what you want to make.
- If you are adding a new content, there is a good chance you need to access registries defined in
net.minecraft.util.registry.Registries
. - Keep in mind that everything starts from one main class (
net.minecraft.client.main.Main
for client,net.minecraft.server.Main
for dedicated server). - Search Minecraft code for translation keys.
assets/assets/minecraft/lang/en_us.json
contains all keys used in vanilla.
Reading the bytecode
Reading the bytecode is occasionally required because
- Mixin operates on bytecode, not the source code. Understanding the bytecode is essential when you write a complex mixin.
- Decompiler (FernFlower) is not perfect. It sometimes produces an invalid java code such as
int i = true;
.
If you are not familiar with the java bytecode, reference the JVM specification.
To see the bytecode, follow these steps.
Intellij IDEA
- Open the class of which you want to see the bytecode
- Select
View
from the main menu - Select
Show Bytecode
External Tools
If your IDE doesn't support bytecode viewing, use external bytecode viewers such as https://github.com/Konloch/bytecode-viewer.
FAQ
Where are the generated sources?
It's either in the user gradle cache (~/.gradle/caches/fabric-loom
) or in the project gradle cache (./.gradle/loom-cache
).
You can use the sources jar outside of your IDE.