You can also just modify your /gradle/wrapper/gradle-wrapper.properties file
change the distributionUrl line to
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
You will still need java 8 for writing the mod though, this only allows gradle to use java 10
You've started 3 threads all the same, I recommend seeing if your ISP or country blocks access to those resources, and see about downloading them from mirrors. It isn't as simple as downloading a full build from somewhere else due to Minecraft's Propriety & how forge sets itself up
why not just pass n in the constructor?
public ToolAxe(String name, ToolMaterial material, int n)
{
super(material, 6.0F + n, -3.0F + n);
setUnlocalizedName(name);
setRegistryName(name);
setCreativeTab(CreativeTabs.TOOLS);
ModItems.ITEMS.add(this);
}
Its not the code thats the problem the code is perfectly correct. Its your JSON models pointing to locations that don't exist.
{
"parent": "item/generated",
"textures": {
"layer0": "rc:items/broken_heart"
}
}
You do notice that layer0 points to /textures/items/broken_heart.png
but the file is in /texures/item/broken_heart.png
Currently in 1.12.2 Vanilla uses "/models/item" for models and "/textures/items" for textures
However in 1.13 Vanilla with be using "/models/item" and "/textures/item"
The texture folder can be called whatever you want. you just have to reference it correctly from code & JSON
This is good practice, but unnecessary. Forge's Mod Loader system knows that it is currently processing this mod and that this mod is registering the item & will add the Mod's ID to the domain of the resourceLocation
Either rename them in the JSON files to /items/
OR
rename the folder to textures/item (this is the naming that 1.13+ will use so I recommend you do this)