Jump to content

Where to find code documentation/examples


Lazauya
 Share

Recommended Posts

I'm trying to make a mod. I have a lot of coding experience, so I'm very comfortable looking at source code for examples/explanations. I just have no idea where the Forge/Minecraft sources are located.

For instance, if I want to make some kind of a multiblock structure, where could I look at the code for Nether portals?

Link to comment
Share on other sites

Documentation is in the code as Javadoc comments.

Force src is here (including test mods):

https://github.com/MinecraftForge/MinecraftForge/

Edited by Draco18s

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

You might find this tutorial project useful:

https://github.com/TheGreyGhost/MinecraftByExample

 

In order to find the code for Nether portals, you need to know a bit about the objects and datastructures used by Minecraft; that's where the various tutorials around the web can be a big help. The source code itself is generally poorly documented (very few comments in vanilla code, and somewhat patchy comments for the Forge code) and often the names of methods can be misleading or even wrong, because the code has been decompiled and then manually deobfuscated by crowdsourcing.

 

So for example for NetherPortals, the relevant code is in NetherPortalBlock and PortalSize, but it will be difficult to understand what's going on.  You might be better off with BedBlock or DoorBlock but even those are likely to be hard work until you have a number of the key concepts around blocks and blockstates under your belt.

 

-TGG

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • When I tried to install forge, i got an error saying failed to download libraries com.google.code.findbugs:jsr305:3.0.2commons-io:commons-io:2.4 So i reinstalled Java on my computer, but now im getting a different error: Failed to run processor: java.net.ConnectException:Connection refused: connect How do I fix this? Log: JVM info: Oracle Corporation - 1.8.0_361 - 25.361-b09 java.net.preferIPv4Stack=true Found java version 1.8.0_361 Extracting json Considering minecraft client jar Downloading libraries Found 0 additional library directories Considering library cpw.mods:securejarhandler:2.1.4   File exists: Checksum validated. Considering library org.ow2.asm:asm:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-util:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.3   File exists: Checksum validated. Considering library net.minecraftforge:accesstransformers:8.0.4   File exists: Checksum validated. Considering library org.antlr:antlr4-runtime:4.9.1   File exists: Checksum validated. Considering library net.minecraftforge:eventbus:6.0.3   File exists: Checksum validated. Considering library net.minecraftforge:forgespi:6.0.0   File exists: Checksum validated. Considering library net.minecraftforge:coremods:5.0.1   File exists: Checksum validated. Considering library cpw.mods:modlauncher:10.0.8   File exists: Checksum validated. Considering library net.minecraftforge:unsafe:0.2.0   File exists: Checksum validated. Considering library com.electronwill.night-config:core:3.6.4   File exists: Checksum validated. Considering library com.electronwill.night-config:toml:3.6.4   File exists: Checksum validated. Considering library org.apache.maven:maven-artifact:3.8.5   File exists: Checksum validated. Considering library net.jodah:typetools:0.8.3   File exists: Checksum validated. Considering library net.minecrell:terminalconsoleappender:1.2.0   File exists: Checksum validated. Considering library org.jline:jline-reader:3.12.1   File exists: Checksum validated. Considering library org.jline:jline-terminal:3.12.1   File exists: Checksum validated. Considering library org.spongepowered:mixin:0.8.5   File exists: Checksum validated. Considering library org.openjdk.nashorn:nashorn-core:15.3   File exists: Checksum validated. Considering library net.minecraftforge:JarJarSelector:0.3.19   File exists: Checksum validated. Considering library net.minecraftforge:JarJarMetadata:0.3.19   File exists: Checksum validated. Considering library cpw.mods:bootstraplauncher:1.1.2   File exists: Checksum validated. Considering library net.minecraftforge:JarJarFileSystems:0.3.19   File exists: Checksum validated. Considering library net.minecraftforge:fmlloader:1.19.3-44.1.0   File exists: Checksum validated. Considering library com.github.jponge:lzma-java:1.3   File exists: Checksum validated. Considering library com.google.code.findbugs:jsr305:3.0.2   File exists: Checksum validated. Considering library com.google.code.gson:gson:2.8.7   File exists: Checksum validated. Considering library com.google.errorprone:error_prone_annotations:2.1.3   File exists: Checksum validated. Considering library com.google.guava:guava:20.0   File exists: Checksum validated. Considering library com.google.guava:guava:25.1-jre   File exists: Checksum validated. Considering library com.google.j2objc:j2objc-annotations:1.1   File exists: Checksum validated. Considering library com.nothome:javaxdelta:2.0.1   File exists: Checksum validated. Considering library com.opencsv:opencsv:4.4   File exists: Checksum validated. Considering library commons-beanutils:commons-beanutils:1.9.3   File exists: Checksum validated. Considering library commons-collections:commons-collections:3.2.2   File exists: Checksum validated. Considering library commons-io:commons-io:2.4   File exists: Checksum validated. Considering library commons-logging:commons-logging:1.2   File exists: Checksum validated. Considering library de.oceanlabs.mcp:mcp_config:1.19.3-20221207.122022@zip   File exists: Checksum validated. Considering library de.siegmar:fastcsv:2.0.0   File exists: Checksum validated. Considering library net.md-5:SpecialSource:1.11.0   File exists: Checksum validated. Considering library net.minecraftforge:ForgeAutoRenamingTool:0.1.22:all   File exists: Checksum validated. Considering library net.minecraftforge:binarypatcher:1.1.1   File exists: Checksum validated. Considering library net.minecraftforge:fmlcore:1.19.3-44.1.0   File exists: Checksum validated. Considering library net.minecraftforge:fmlloader:1.19.3-44.1.0   File exists: Checksum validated. Considering library net.minecraftforge:forge:1.19.3-44.1.0:universal   File exists: Checksum validated. Considering library net.minecraftforge:installertools:1.3.0   File exists: Checksum validated. Considering library net.minecraftforge:jarsplitter:1.1.4   File exists: Checksum validated. Considering library net.minecraftforge:javafmllanguage:1.19.3-44.1.0   File exists: Checksum validated. Considering library net.minecraftforge:lowcodelanguage:1.19.3-44.1.0   File exists: Checksum validated. Considering library net.minecraftforge:mclanguage:1.19.3-44.1.0   File exists: Checksum validated. Considering library net.minecraftforge:srgutils:0.4.11   File exists: Checksum validated. Considering library net.minecraftforge:srgutils:0.4.3   File exists: Checksum validated. Considering library net.minecraftforge:srgutils:0.4.9   File exists: Checksum validated. Considering library net.sf.jopt-simple:jopt-simple:5.0.4   File exists: Checksum validated. Considering library net.sf.jopt-simple:jopt-simple:6.0-alpha-3   File exists: Checksum validated. Considering library org.apache.commons:commons-collections4:4.2   File exists: Checksum validated. Considering library org.apache.commons:commons-lang3:3.8.1   File exists: Checksum validated. Considering library org.apache.commons:commons-text:1.3   File exists: Checksum validated. Considering library org.checkerframework:checker-qual:2.0.0   File exists: Checksum validated. Considering library org.codehaus.mojo:animal-sniffer-annotations:1.14   File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-analysis:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-commons:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm-tree:9.3   File exists: Checksum validated. Considering library org.ow2.asm:asm:9.2   File exists: Checksum validated. Considering library org.ow2.asm:asm:9.3   File exists: Checksum validated. Considering library trove:trove:1.0.2   File exists: Checksum validated. Created Temporary Directory: C:\Users\*\AppData\Local\Temp\forge_installer4970719337943492025   Extracting: /data/client.lzma Building Processors ===============================================================================   MainClass: net.minecraftforge.installertools.ConsoleTool   Classpath:     C:\Users\*\AppData\Roaming\.minecraft\libraries\net\minecraftforge\installertools\1.3.0\installertools-1.3.0.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\net\md-5\SpecialSource\1.11.0\SpecialSource-1.11.0.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.8.7\gson-2.8.7.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\de\siegmar\fastcsv\2.0.0\fastcsv-2.0.0.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\net\minecraftforge\srgutils\0.4.11\srgutils-0.4.11.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-commons\9.3\asm-commons-9.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\20.0\guava-20.0.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\com\opencsv\opencsv\4.4\opencsv-4.4.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-analysis\9.3\asm-analysis-9.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-tree\9.3\asm-tree-9.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\9.3\asm-9.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-text\1.3\commons-text-1.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-collections4\4.2\commons-collections4-4.2.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\commons-logging\commons-logging\1.2\commons-logging-1.2.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar   Args: --task, MCP_DATA, --input, C:\Users\*\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.19.3-20221207.122022\mcp_config-1.19.3-20221207.122022.zip, --output, C:\Users\*\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.19.3-20221207.122022\mcp_config-1.19.3-20221207.122022-mappings.txt, --key, mappings Task: MCP_DATA Input:  C:\Users\*\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.19.3-20221207.122022\mcp_config-1.19.3-20221207.122022.zip Output: C:\Users\*\AppData\Roaming\.minecraft\libraries\de\oceanlabs\mcp\mcp_config\1.19.3-20221207.122022\mcp_config-1.19.3-20221207.122022-mappings.txt Key:    mappings Extracting: config/joined.tsrg ===============================================================================   MainClass: net.minecraftforge.installertools.ConsoleTool   Classpath:     C:\Users\*\AppData\Roaming\.minecraft\libraries\net\minecraftforge\installertools\1.3.0\installertools-1.3.0.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\net\md-5\SpecialSource\1.11.0\SpecialSource-1.11.0.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\5.0.4\jopt-simple-5.0.4.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.8.7\gson-2.8.7.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\de\siegmar\fastcsv\2.0.0\fastcsv-2.0.0.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\net\minecraftforge\srgutils\0.4.11\srgutils-0.4.11.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-commons\9.3\asm-commons-9.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\20.0\guava-20.0.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\com\opencsv\opencsv\4.4\opencsv-4.4.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-analysis\9.3\asm-analysis-9.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm-tree\9.3\asm-tree-9.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\ow2\asm\asm\9.3\asm-9.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-text\1.3\commons-text-1.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-collections4\4.2\commons-collections4-4.2.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\commons-logging\commons-logging\1.2\commons-logging-1.2.jar     C:\Users\*\AppData\Roaming\.minecraft\libraries\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar   Args: --task, DOWNLOAD_MOJMAPS, --version, 1.19.3, --side, client, --output, C:\Users\*\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.19.3-20221207.122022\client-1.19.3-20221207.122022-mappings.txt Task: DOWNLOAD_MOJMAPS MC Version: 1.19.3 Side:       client Output:     C:\Users\*\AppData\Roaming\.minecraft\libraries\net\minecraft\client\1.19.3-20221207.122022\client-1.19.3-20221207.122022-mappings.txt java.net.ConnectException: Connection refused: connect     at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)     at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)     at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)     at java.net.AbstractPlainSocketImpl.connect(Unknown Source)     at java.net.PlainSocketImpl.connect(Unknown Source)     at java.net.SocksSocketImpl.connect(Unknown Source)     at java.net.Socket.connect(Unknown Source)     at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)     at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source)     at sun.net.NetworkClient.doConnect(Unknown Source)     at sun.net.www.http.HttpClient.openServer(Unknown Source)     at sun.net.www.http.HttpClient.openServer(Unknown Source)     at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source)     at sun.net.www.protocol.https.HttpsClient.New(Unknown Source)     at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)     at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)     at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)     at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)     at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)     at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)     at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)     at java.net.URL.openStream(Unknown Source)     at net.minecraftforge.installertools.DownloadMojmaps.process(DownloadMojmaps.java:65)     at net.minecraftforge.installertools.ConsoleTool.main(ConsoleTool.java:55)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)     at java.lang.reflect.Method.invoke(Unknown Source)     at net.minecraftforge.installer.actions.PostProcessors.process(PostProcessors.java:226)     at net.minecraftforge.installer.actions.ClientInstall.run(ClientInstall.java:144)     at net.minecraftforge.installer.InstallerPanel.run(InstallerPanel.java:423)     at net.minecraftforge.installer.SimpleInstaller.launchGui(SimpleInstaller.java:175)     at net.minecraftforge.installer.SimpleInstaller.main(SimpleInstaller.java:147) Failed to run processor: java.net.ConnectException:Connection refused: connect See log for more details.  
    • I can get Player Mod Name by use this code. ImmutableList<String> mods = NetworkHooks.getConnectionData(p.connection.netManager) .getModList(); That code just getting the mod name. but I want to get mod version. How can I get Player Mod Version ? in 1.16.5 Please help me.  
    • As a result of the popularity of NFTs, today, the best crypto games are available in almost every market you can think of. To give you an idea, we discuss some of the types of blockchain games that might interest you below. 1. Virtual world games 2. Fantasy sports 3. Fighting games 4. Development games. The following two are currently popular Cryptokitties is a casual virtual cat game traded in Ethereum crypto-currency, which was launched and operated on November 28, 2017. FairyCat: Fairy Cat, a new blockchain game launching in 2023, has one of the highest returns of any blockchain game and will be the most popular virtual coin game in 2023.   One of the main reasons why most investors choose to play P2E crypto games is to make money. However, you may have noticed that many top crypto games offer rewards in the form of NFTs. However, the NFTs in the games are unique and transparent. In other words, when you buy assets in the game, you become the owner. Depending on the game, the NFTs you collect can be player avatars, characters, creatures, special items, or any other artifact. These NFTs can be traded or sold on other platforms, allowing you to receive cash or other crypto-currencies in return. In addition, you can keep these rewards until you find the right time to cash them in.
    • As a result of the popularity of NFTs, today, the best crypto games are available in almost every market you can think of. To give you an idea, we discuss some of the types of blockchain games that might interest you below. 1. Virtual world games 2. Fantasy sports 3. Fighting games 4. Development games. The following two are currently popular Cryptokitties is a casual virtual cat game traded in Ethereum crypto-currency, which was launched and operated on November 28, 2017. FairyCat: Fairy Cat, a new blockchain game launching in 2023, has one of the highest returns of any blockchain game and will be the most popular virtual coin game in 2023.   One of the main reasons why most investors choose to play P2E crypto games is to make money. However, you may have noticed that many top crypto games offer rewards in the form of NFTs. However, the NFTs in the games are unique and transparent. In other words, when you buy assets in the game, you become the owner. Depending on the game, the NFTs you collect can be player avatars, characters, creatures, special items, or any other artifact. These NFTs can be traded or sold on other platforms, allowing you to receive cash or other crypto-currencies in return. In addition, you can keep these rewards until you find the right time to cash them in.
    • As a result of the popularity of NFTs, today, the best crypto games are available in almost every market you can think of. To give you an idea, we discuss some of the types of blockchain games that might interest you below. 1. Virtual world games 2. Fantasy sports 3. Fighting games 4. Development games. The following two are currently popular   Cryptokitties is a casual virtual cat game traded in Ethereum crypto-currency, which was launched and operated on November 28, 2017. FairyCat: Fairy Cat, a new blockchain game launching in 2023, has one of the highest returns of any blockchain game and will be the most popular virtual coin game in 2023.   One of the main reasons why most investors choose to play P2E crypto games is to make money. However, you may have noticed that many top crypto games offer rewards in the form of NFTs. However, the NFTs in the games are unique and transparent. In other words, when you buy assets in the game, you become the owner. Depending on the game, the NFTs you collect can be player avatars, characters, creatures, special items, or any other artifact. These NFTs can be traded or sold on other platforms, allowing you to receive cash or other crypto-currencies in return. In addition, you can keep these rewards until you find the right time to cash them in.
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.