Coder Social home page Coder Social logo

documentation's Introduction

Documentation

This is the official MinecraftForge documentation, located at https://docs.minecraftforge.net.

It is intended to provide detailed documentation of Forge development concepts. This does not include javadocs.

The intent with this is to create a curated definitive source of documentation for developing mods with Forge. It is not a Java language tutorial, and basic concepts of Java should not be part of this documentation. Excessive example code will be avoided in lieu of more thorough explanations.

Feel free to submit pull requests related to documentation of Forge development here. See CONTRIBUTING.md

Don't expect this to be constantly being updated, though we will try and remedy egregious errors more quickly.

documentation's People

Contributors

3tusk avatar aeltumn avatar bonii-xx avatar bs2609 avatar cadiboo avatar championash5357 avatar choonster avatar cpw avatar cyborgmas avatar d0ctor-zed avatar diesieben07 avatar elifoster avatar g-rath avatar gigaherz avatar howtonotwin avatar invalidcards avatar jamieswhiteshirt avatar jtk222 avatar kaltinril avatar krasjet avatar lexmanos avatar marvin-roesch avatar mattdahepic avatar minecraftplaye avatar sciwhiz12 avatar shadowfacts avatar tehnut avatar thecurle avatar tterrag1098 avatar williewillus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

documentation's Issues

Javadocs location

README.md suggests the javadocs may be hosted somewhere, but does not say where. Will the location be eventually posted? javadocs would be quite useful.

Language

Enable an option for different languages, and for the community to help with translation, I am fluent in Portuguese.

Article for coremod pitfalls

Following a discussion on Discord, we believe one of the reasons coremods break so many things is that people simply do not know the pitfalls and how to avoid them.

Lex has published a set of guidelines in the past (http://www.minecraftforge.net/forum/topic/58706-regarding-minecraft-112-and-policy-changes/), and I propose they be put into some document here. (Including, separation, signing, visible-source, and JAR-in-JAR)

There's no need to discuss what coremods are or how to make them, but it provides a visible, linkable place regarding the guidelines that should be followed, and the issues that happen when you don't.

I haven't had the need to coremod in over 3 years, so I probably can't write a good article about them, hence this being an issue instead of a PR.

Fails to launch with JRE9

I couldn't find any information if MinecraftForge supports JRE 9 yet or not. It seems not. I am opening an issue, but I think this is already known.

[23:54:18] [Client thread/INFO]: Setting user: sylcai
[23:54:21] [Client thread/WARN]: Skipping bad option: lastServer:
[23:54:21] [Client thread/INFO]: LWJGL Version: 2.9.4
[23:54:23] [Client thread/INFO]: [STDOUT]: ---- Minecraft Crash Report ----
// Oops.

Time: 4/16/17 11:54 PM
Description: Loading screen debug info

This is just a prompt for computer specs to be printed. THIS IS NOT A ERROR


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
	Minecraft Version: 1.11.2
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 1.8.0_121, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 91240448 bytes (87 MB) / 205201408 bytes (195 MB) up to 3141009408 bytes (2995 MB)
	JVM Flags: 3 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -XX:+UseConcMarkSweepGC -XX:-UseAdaptiveSizePolicy
	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
	FML: 
	Loaded coremods (and transformers): 
	GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.14008 Compatibility Profile Context 21.19.137.514' Renderer: 'AMD Radeon (TM) R9 200 Series'
[23:54:25] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:mercurius_updater
[23:54:26] [Sound Library Loader/INFO]: Starting up SoundSystem...
[23:54:26] [Thread-9/INFO]: Initializing LWJGL OpenAL
[23:54:26] [Thread-9/INFO]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
[23:54:26] [Thread-9/INFO]: OpenAL initialized.
[23:54:27] [Sound Library Loader/INFO]: Sound engine started
[23:54:28] [Client thread/INFO]: Created: 16x16 textures-atlas
[23:54:29] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:mercurius_updater
[23:54:29] [Client thread/INFO]: SoundSystem shutting down...
[23:54:29] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com
[23:54:29] [Sound Library Loader/INFO]: Starting up SoundSystem...
[23:54:30] [Thread-12/INFO]: Initializing LWJGL OpenAL
[23:54:30] [Thread-12/INFO]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
[23:54:30] [Thread-12/INFO]: OpenAL initialized.
[23:54:30] [Sound Library Loader/INFO]: Sound engine started
[23:54:32] [Client thread/INFO]: Created: 512x512 textures-atlas
[23:54:34] [Client thread/WARN]: Skipping bad option: lastServer:
[23:54:38] [Client thread/INFO]: Stopping!
[23:54:38] [Client thread/INFO]: SoundSystem shutting down...
[23:54:39] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com

TileEntity Page broken

So, I have no Idea what happened.
But some parts of the TileEntity Page are missing leaving this behind:
image

Needed block interaction methods

I think it would be useful to have lists of "hooks" (not sure what else you'd call them) in relevant pages. For example, the Block page says that it would be too long to document every single event like function. I agree with that. However, I think having a complete list of them with a brief description would not be that difficult and could be incredibly useful. This would also apply for items and anything else with a similarly huge amount of functions like this.

Here is a list of Block Interaction functions that are not documented yet (1.10.2-12.18.3.2254):

  • onBlockDestroyedByPlayer
  • neighborChanged
  • onBlockAdded
  • breakBlock: Done at #103
  • onBlockDestroyedByExplosion
  • onBlockActivated
  • onEntityWalk: Done at #103
  • onBlockClicked
  • onEntityCollidedWithBlock
  • onBlockPlacedBy
  • eventReceived
  • onLanded
  • onBlockHarvested
  • removedByPlayer
  • onBlockExploded
  • onPlantGrow

Conventions.Localization mentions en_US when it should be en_us

In the the localization section of the convention page en_US is mentioned as an example language file.
It has to be en_us to actually work.

Also please be so nice and add at least one example like the following
item..name = desired localized name here

Namespaces for classes not provided

Hello,

I'm new to Minecraft modding, but I'm not new to Java. One thing I'm finding a bit frustrating getting started is that the documentation doesn't tell me what namespaces common classes (like Block) are in. I assume this is part of net.minecraft, so it may have been omitted for "this is common knowledge of the modding community" reasons, but I think if anyone wants to start with Forge it would be really helpful to have at least the necessary information. (especially when "/docs/blocks/blocks.md" says "By simply instantiating the Block class ...", my first thought is "where's the Block class?")

Document information on the basics of Title Entities

There is a 'Tile Entities' navigation heading, but it only contains information about TileEntitySpecialRenderer.

There should be a page pertaining to what a 'Tile Entity' actually is.

It would be nice if the page talked about:

  • The difference between a Block and a Tile Entity
  • The basics on how to use them
  • When it's appropriate to use a Tile Entity
  • Constraints surrounding Tile Entities (read: their limitations; what they can't or shouldn't be used for).
  • Possible alternatives to Tile Entities (when/if relevant).

Add mention about sidedness and lambdas

As this does seem to come up reasonably regularly, I think it'd be good to have a note warning about using lambdas in proximity to sided code. The SimpleImpl example could possibly also have this mentioned, as the current version passes a lambda to addScheduledTask.

Documentation on Advancements

Some documentation about how advancements work within Forge and what different types and possibilities we have with them should be added.

Entity registration

In 1.12.2, entity registration is a bit more complicated than registering blocks, items, etc. which are singletons.
I suggest to update the registries concept page to cover entities registration in a new section.

Block Interaction onBlockActivated is outdated.

onBlockActivated no longer has an @Nullable ItemStack heldItem parameter, thus the parts talking about it are incorrect from what I can tell. If grabbing the stack from the player is still unreliable the Important section should reflect the new best practices.

I do see that there was an attempt to do something with it on #103 but at this point its almost a year stale and a simple cleanup would likely be a good idea for the whole page. As I don't know enough to point out anything outside of this small issue someone that knows what they are doing should be handling that.

warnings

This is normal ???

08:02:37 launcher main warn Couldn't get hash for net/minecraftforge/forge/1.12-14.21.1.2387/forge-1.12-14.21.1.2387.jar from http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12-14.21.1.2387/forge-1.12-14.21.1.2387.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\net/minecraftforge/forge/1.12-14.21.1.2387/forge-1.12-14.21.1.2387.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:37 launcher main warn Couldn't get hash for jline/jline/2.13/jline-2.13.jar from http://files.minecraftforge.net/maven/jline/jline/2.13/jline-2.13.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\jline/jline/2.13/jline-2.13.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:37 launcher main warn Couldn't get hash for com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.jar from http://files.minecraftforge.net/maven/com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\com/typesafe/akka/akka-actor_2.11/2.3.3/akka-actor_2.11-2.3.3.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:37 launcher main warn Couldn't get hash for com/typesafe/config/1.2.1/config-1.2.1.jar from http://files.minecraftforge.net/maven/com/typesafe/config/1.2.1/config-1.2.1.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\com/typesafe/config/1.2.1/config-1.2.1.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:37 launcher main warn Couldn't get hash for org/scala-lang/scala-actors-migration_2.11/1.1.0/scala-actors-migration_2.11-1.1.0.jar from http://files.minecraftforge.net/maven/org/scala-lang/scala-actors-migration_2.11/1.1.0/scala-actors-migration_2.11-1.1.0.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\org/scala-lang/scala-actors-migration_2.11/1.1.0/scala-actors-migration_2.11-1.1.0.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:37 launcher main warn Couldn't get hash for org/scala-lang/scala-compiler/2.11.1/scala-compiler-2.11.1.jar from http://files.minecraftforge.net/maven/org/scala-lang/scala-compiler/2.11.1/scala-compiler-2.11.1.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\org/scala-lang/scala-compiler/2.11.1/scala-compiler-2.11.1.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:37 launcher main warn Couldn't get hash for org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar from http://files.minecraftforge.net/maven/org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Couldn't get hash for org/scala-lang/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar from http://files.minecraftforge.net/maven/org/scala-lang/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Couldn't get hash for org/scala-lang/scala-swing_2.11/1.0.1/scala-swing_2.11-1.0.1.jar from http://files.minecraftforge.net/maven/org/scala-lang/scala-swing_2.11/1.0.1/scala-swing_2.11-1.0.1.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Couldn't get hash for org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.jar from http://files.minecraftforge.net/maven/org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Couldn't get hash for org/scala-lang/plugins/scala-continuations-plugin_2.11.1/1.0.2/scala-continuations-plugin_2.11.1-1.0.2.jar from http://files.minecraftforge.net/maven/org/scala-lang/plugins/scala-continuations-plugin_2.11.1/1.0.2/scala-continuations-plugin_2.11.1-1.0.2.jar.sha1: HTTP 404: Not Found
08:02:37 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\org/scala-lang/plugins/scala-continuations-plugin_2.11.1/1.0.2/scala-continuations-plugin_2.11.1-1.0.2.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:37 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:38 launcher main warn Couldn't get hash for org/scala-lang/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar from http://files.minecraftforge.net/maven/org/scala-lang/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar.sha1: HTTP 404: Not Found
08:02:38 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\org/scala-lang/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:38 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:38 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\org/scala-lang/scala-swing_2.11/1.0.1/scala-swing_2.11-1.0.1.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:38 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\org/scala-lang/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:38 launcher main warn Couldn't get hash for org/scala-lang/plugins/scala-continuations-library_2.11/1.0.2/scala-continuations-library_2.11-1.0.2.jar from http://files.minecraftforge.net/maven/org/scala-lang/plugins/scala-continuations-library_2.11/1.0.2/scala-continuations-library_2.11-1.0.2.jar.sha1: HTTP 404: Not Found
08:02:38 launcher main warn Have local file C:/Users\Art\AppData\Roaming.minecraft\libraries\org/scala-lang/plugins/scala-continuations-library_2.11/1.0.2/scala-continuations-library_2.11-1.0.2.jar but don't know what size or hash it should be. Have to assume it's good.
08:02:38 launcher main info Checking installations.

Documentation on creating and spawning custom entities

I see stuff related to extended Entity properties, but nothing related to creating and possibly registering a custom Entity class, as well as a controller to spawn it afterwards...

I'm trying to spawn a custom Entity with an lua function call in OpenComputers.

Note: Minecraft version 1.10.2

Fatal Error bug issues

[net.minecraft.client.Minecraft]: Error executing task java.util.concurrent.ExecutionException: java.lang.NullPointerException at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_191] at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_191] at net.minecraft.util.Util.func_181617_a(SourceFile:47) [h.class:?] at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1087) [bib.class:?] at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:397) [bib.class:?] at net.minecraft.client.main.Main.main(SourceFile:123) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_191] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_191] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_191] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_191] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] Caused by: java.lang.NullPointerException at net.minecraft.client.network.NetHandlerPlayClient.func_147263_a(NetHandlerPlayClient.java:740) ~[brz.class:?] at net.minecraft.network.play.server.SPacketChunkData.func_148833_a(SourceFile:96) ~[je.class:?] at net.minecraft.network.play.server.SPacketChunkData.func_148833_a(SourceFile:18) ~[je.class:?] at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:20) ~[hv$1.class:?] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_191] at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_191] at net.minecraft.util.Util.func_181617_a(SourceFile:46) ~[h.class:?] ... 9 more

Please fix 💃

[Page Request] Designing a mod API

Basically some "recommended guidelines" for what mod APIs should look like.
Ama said in stream chat he's had it planned, I'm just adding it here so people can add their input and for it to be officially on the todo-list ^-^

API Documentation

Hi all,

I am going to work on creating a full API Documentation for the Forge API.

Only problem is that I cannot seem to get the source code setup with Intellij Idea... the instructions in the README do not work. Thanks

Registries: why?

There are two things to address here.

  1. It is recommended to use the RegistryEvents to register your stuff, but you can just as easily and correctly do it using the GameRegistry in preInit (which is the way we've done it forever, too). It is not explained why it is recommended to use RegistryEvents over the other way. This needs to be explained.
  2. The value of making a registry with the RegistryBuilder is not explained. I can just as easily make a static class in my API that functions as a registry. Why should we use the RegistryBuilder over a private static map or list gated behind some helper functions? This needs to be explained in the docs.

Migration guides

Some general migration guides would be good. Since many people are still on 1.7, I think it would be good to start there:

  • 1.7 -> 1.8
  • 1.8 -> 1.9
  • 1.9 -> 1.10
  • 1.10 -> 1.11
  • 1.11 -> 1.12

and then any future versions as well.

Links in code invisible

Given the Markdown snippet [test][test], mkdocs produces the html <a><code>test</code></a>. As code overrides the blue color of a with its own orange, the resulting link (Above snippet rendered) is practically invisible.

Adding the following to style_fixes.css:

/* Color code inside links. This makes links like [`test`][test] visible. */
a code {
    color: inherit;
}

results in Above snippet rendered with css fix.

Loading Stages documentation is incorrect for OreDictionary

As of 1.12.2-14.23.4.2707, OreDictionary.registerOre() requires items to be registered prior to the call.
Documentation page conventions/loadstages tells us that "Assigning ore dictionary names" is part of PreInitilization.
Item registration event is fired after PreInitilization, after assigning ore dictionary names...

Requesting documentation for VertexBuffer

Hey there,

I was writing some entity-rendering code tonight and was having a bit of trouble understanding the new(ish) VertexBuffer class.

While I have a better grip on it now, I'd love for someone with a deeper knowledge of MC code to actually explain it on the documentation. For example, I don't know what each VertexFormat does. There is basically no useful javadoc in the code :(

Thanks!

Inter-mod Communication

I can't seem to find any information on Forge's Inter-mod Communication system in the docs. Could this be located/added?

network simpleimpl descriminator

The docs state that if you want to send the same message to both sides you need to register it twice with different discriminators, yet when you register them with the same discriminator it works just fine

is this an error in the documentation or is this not suposed to work this way?

spongeforge & forge

spongeforge-1.12.2-2611-7.1.0-BETA-3002.jar

forge-1.12.2-14.23.2.2654-universal.jar

https://pastebin.com/9nA6B0Rg

not compatible with the latest version of forge

the concern is that it is based on forge RECOMMENDED so when you solved problems we can not use the latest version of forge because it is not in RECOMMENDED

i also opened at spongeforge but the concern is, that it's based on the forge RECOMMENDED

Documentation on loot tables

How to add new ones, add stuff to existing ones, and anything else you can do with loot tables. My understanding is that Lex added some new loot table stuff in 1.9 or 1.10. Documentation of that system would be awesome.

Documentation for World and Biome generation

i found that there's no documentation whatsoever about world- and biome generation. i found a few topics at the forge forum but all those are using the BiomeGen class, which isn't available anymore. rather there's a Biome class which i can extend from, but no idea how i register a new biome (theres Biome.register and GameRegistry.register).

also, would be nice to know how to add a new biome to the default world, and even nicer if it could be selected in the "create world" advanced dialog of the client (where you can set of which biomes the world should be created, e.g. "All", "Ocean", "Hills", etc

Proposal: abolish the confusing physical/logical prefixes in favor of more distinct terms

In my experience, physical vs logical client/server are confusing at best. I've been using my own terminology for a while; it has made things a lot easier to explain and think about:

  • Physical client → Client
  • Logical client → Replica
  • Logical server → Primary
  • Physical server → Server

Primary/replica are mainly used in the context of distributed systems and databases, but hear me out here.

The physical server holds multiple logical servers, as when talking about a logical server you generally mean the world itself. Currently they all run on one thread, but they are separate in virtually every other way. As such I suggest renaming the logical server to a primary, as it is an authoritative copy of a world.

Meanwhile, the physical client may hold primaries and always holds a replica. Some others I've proposed this to have argued that since the client's replica is an incomplete slice of the world, it's not a proper use of the term. However, in distributed systems it's uncommon to have a complete replica. Generally you have a replica of a shard, not the entire system (unless it's a small system).

Since the client's copy of the world is non-authoritative, and local changes are overwritten by the server, I suggest renaming the logical client to a replica.

Since both logical terms are replaced, this makes the physical prefix on the client and server redundant. As such I suggest dropping the prefix entirely. This also brings these terms in line with the Side enum, and no longer will the note that Side refers to physical side be needed.

I'm posting this as an issue rather than a PR as I mainly wanted to start a discussion, and there's no One True Way to update the docs to these terms.

In the event this does become the official terminology, it'd also be good to update the oft-contested field isRemote to isReplica. Bonus: isRe still completes properly.

EDIT: After some discussions in IRC I'm a lot less convinced this is as clear as I thought, but I'm leaving the issue open if anyone else has other ideas.

Translation project?

Hello, can I translate this documentation to Chinese? I think this documentation can help Chinese mod developers.

Javadocs?

I can't find any Javadocs for Forge. They are essential for development, aren't they?

They will be located at ...

?

GUI interaction reference page doesn't exist.

was looking for docs on dimension ID to/from NBT when I stumbled across the GUI portion.
it says more​information at link, but the page is invalid.

shouldn't this have been documented directly to prevent issue like this?

Mod-specific Logger & Logger configuration setup

Having a page in the documentation (likely in utilities) would be beneficial to let newer modders know about the proper way to use the Log4j API and use the mod-specific Logger that FML provides. Additionally, documentation on configuring the logging.properties file would be greatly appreciated.

API Documentation

Is there anywhere I can find documentation for the API? If not should I work on creating one? That is, will it be possible to actually write an API Reference for this?

New Config Annotations

There isn't any documentation on the new @Config annotations, nor on the ConfigManager class. I only stumbled upon them while reading a comment on an issue on the main MinecraftForge repository, so I doubt many people even know they exist yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.