Minecraft 15w43c, Minecraft 15w45a, Minecraft 16w15b, Minecraft 1.10.2, Minecraft 16w42a, Minecraft 16w43a, Minecraft 16w44a, Minecraft 1.11 Pre-Release 1, Minecraft 1.11, Minecraft 16w50a, Minecraft 1.11.1, Minecraft 1.11.2, Minecraft 17w06a, Minecraft 17w13b, Minecraft 17w15a, Minecraft 17w16b, Minecraft 17w17b, Minecraft 17w18b, Minecraft 1.12 Pre-Release 2, Minecraft 1.12.1, Minecraft 1.12.2, Minecraft 17w45b, Minecraft 18w06a, Minecraft 18w15a
Apparently Minecraft treats one character long namespaces as "minecraft:"
- /give @p a:stone
- /give @p aa:stone
Does not work
- /effect @p a:instant_health
- /effect @p aa:instant_health
Does not work
- /advancement grant/revoke only a:root
Works, affects minecraft:root
- /advancement grant/revoke only aa:root
Doesn't work, unless you created a custom advancement with aa namespace
- Create a:test function
- /function @p a:test
- Create minecraft:test function and repeat step 2
- (same can be done with advancements)
The following is based on a decompiled version of Minecraft 1.9 using MCP 9.24 beta.
The reason why this happens is because the method net.minecraft.util.ResourceLocation.splitObjectName(String) only uses the provided namespace if the index of the colon (":") is higher than 1. Instead it should probably test if it is higher then 0 because only if it is 0 the String starts with the colon.