Jump to content

[Solved]Make New Items Enchantable?


Recommended Posts

So I've been following tutorials and learning how to work with forge, and I've got a new material that can be made into tools.  For some reason, I can't enchant any of them. 


Here's some example code for the pickaxe:


package moar.main;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks;
import net.minecraft.item.Item;
import net.minecraft.creativetab.*;
import moar.main.Moar;

public class MoarPickaxe extends MoarTool
public static final Block[] blocksEffectiveAgainst = new Block[] {Block.cobblestone, 
	Block.stoneDoubleSlab, Block.stoneSingleSlab, Block.stone, Block.sandStone, 
	Block.cobblestoneMossy, Block.oreIron, Block.blockSteel, Block.oreCoal, Block.blockGold, 
	Block.oreGold, Block.oreDiamond, Block.blockDiamond, Block.ice, Block.netherrack, Block.oreLapis, 
	Block.blockLapis, Block.oreRedstone, Block.oreRedstoneGlowing, Block.rail, Block.railDetector, Block.railPowered, Moar.oreSilver};
public MoarPickaxe(int ID, EnumToolMaterial m, int texture, String name)
         super(ID, 1, m, blocksEffectiveAgainst);
public boolean canHarvestBlock(Block par1Block)
         return par1Block == Block.obsidian ? this.toolMaterial.getHarvestLevel() == 3 : 
        	 (par1Block != Block.blockDiamond && par1Block != Block.oreDiamond ? (par1Block != Block.oreEmerald && par1Block != Block.blockEmerald ? (par1Block != Block.blockGold && par1Block != Block.oreGold ? (par1Block != Block.blockSteel && par1Block != Block.oreIron ? (par1Block != Block.blockLapis && par1Block != Block.oreLapis ? (par1Block != Block.oreRedstone && par1Block != Block.oreRedstoneGlowing ? (par1Block.blockMaterial == Material.rock ? true : (par1Block.blockMaterial == Material.iron ? true : par1Block.blockMaterial == Material.anvil)) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 1) : this.toolMaterial.getHarvestLevel() >= 1) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 2);
public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block)
         return par2Block != null && (par2Block.blockMaterial == Material.iron || par2Block.blockMaterial == Material.anvil || par2Block.blockMaterial == Material.rock) ? this.efficiencyOnProperMaterial : super.getStrVsBlock(par1ItemStack, par2Block);
public String getTextureFile() 
        return CommonProxy.ITEMS_PNG;
public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) {
return Moar.silverIngot.itemID == par2ItemStack.itemID ? true:
super.getIsRepairable(par1ItemStack, par2ItemStack);



And my main class:


package moar.main;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import net.minecraft.item.EnumAction;
import net.minecraft.item.EnumToolMaterial;

@Mod(modid="moar", name="MOAR", version="0.0.0")
@NetworkMod(clientSideRequired=true, serverSideRequired=false)
public class Moar {
        public static Moar instance;
        public static EnumToolMaterial silver = net.minecraftforge.common.EnumHelper.addToolMaterial("silver", 2, 1561, 4.0F, 2, 10);
        public final static Item silverIngot = new MoarItem(5000).setMaxStackSize(64).setIconIndex(0).setItemName("silverIngot"); 
        //Tools and Weapons
        public final static Item silverSword = new MoarSword(5001, silver, 1, "silverSword");
        public final static Item silverShovel = new MoarShovel(5002, silver, 2, "silverShovel");
        public final static Item silverPickaxe = new MoarPickaxe(5003, silver, 3, "silverPickaxe");
        public final static Item silverAxe = new MoarAxe(5004, silver, 4, "silverAxe");
        public final static Item silverHoe = new MoarHoes(5005, silver, 5, "silverHoe");
        public final static Block oreSilver = new MoarBlock(500,16,Material.iron);
        public static CommonProxy proxy;
        public void preInit(FMLPreInitializationEvent event) {
                // Stub Method
        public void load(FMLInitializationEvent event) {

                LanguageRegistry.addName(silverIngot, "Silver Ingot");
                LanguageRegistry.addName(oreSilver, "Silver Ore");
                LanguageRegistry.addName(silverSword, "Silver Sword");
                LanguageRegistry.addName(silverPickaxe, "Silver Pickaxe");
                LanguageRegistry.addName(silverShovel, "Silver Shovel");
                LanguageRegistry.addName(silverAxe, "Silver Axe");
                LanguageRegistry.addName(silverHoe, "Silver Hoe");
                //Harvest Levels
                MinecraftForge.setBlockHarvestLevel(oreSilver, "pickaxe", 2);
                //Block Registry
                GameRegistry.registerBlock(oreSilver, "oreSilver");
                //Crafting Recipes
                GameRegistry.addRecipe(new ItemStack(Moar.silverSword, 1), "#", "#", "X", '#', Moar.silverIngot, 'X', Item.stick);
                GameRegistry.addRecipe(new ItemStack(Moar.silverShovel, 1), "#", "X", "X", '#', Moar.silverIngot, 'X', Item.stick);
                GameRegistry.addRecipe(new ItemStack(Moar.silverPickaxe, 1), "###"," X ", " X ", '#', Moar.silverIngot, 'X', Item.stick);
                GameRegistry.addRecipe(new ItemStack(Moar.silverAxe, 1), "## ", "#X ", " X ", '#', Moar.silverIngot, 'X', Item.stick);
                GameRegistry.addRecipe(new ItemStack(Moar.silverHoe, 1), "## ", " X ", " X ", '#', Moar.silverIngot, 'X', Item.stick);
                //Furnace Recipes
                GameRegistry.addSmelting(oreSilver.blockID, new ItemStack(silverIngot), 0.5F);
        public void postInit(FMLPostInitializationEvent event) {
                // Stub Method



Is there something that I'm missing to make them enchantable?

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.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • we tried both versions and both cant run on her laptop for some reason idk what to do  
    • Okay so we tried both versions and both cant run on her pc for some reason!  
    • Well. Make sure you installed a correct jdk for your forge mdk version. Make sure your JAVA_HOME and %PATH% environment-variables are setup correctly. (If you're on windows)   I downloaded an example forge mdk for my version and extracted the contents to a folder I'm working in Using Eclipse, I opened Eclipse and imported an existing gradle Project (with its root directory in the folder directory which I previously extracted my contents to). Waited for Eclipse to do its thing After it having finished, I ran genEclipseRuns, setupDecompWorkspace and setupDevWorkspace (Gradle Tasks > your mod name here > forgegradle)    If it still didn't work (and you're using Eclipse) run cleanEclipse and, in a command prompt  Also If I recall correctly, someone, somewhere said that the way you setup your workspace changes depending on your Minecraft Version. I did this in 1.8.9.
    • https://mclo.gs/ZlRMU4G Still crash, help 
    • Hi, im having problem with error: Could not resolve dependency: net.minecraftforge:forge:1.20.1:userdev   im new in modding, but i tried everything, and it is still not working. all versions are correct etc.   build gradle: plugins {     id 'eclipse'     id 'idea'     id 'maven-publish'     id 'net.minecraftforge.gradle' version '[6.0,6.2)'     id 'org.parchmentmc.librarian.forgegradle' version '1.+' } version = mod_version group = mod_group_id base {     archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft {     // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md     // Additional setup is needed to use their mappings: https://parchmentmc.org/docs/getting-started     mappings channel: mapping_channel, version: mapping_version          copyIdeResources = true          runs {         // applies to all the run configs below         configureEach {             workingDirectory project.file('run')             property 'forge.logging.markers', 'REGISTRIES'             // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels             property 'forge.logging.console.level', 'debug'             mods {                 "${mod_id}" {                     source sourceSets.main                 }             }         }         client {             // Comma-separated list of namespaces to load gametests from. Empty = all namespaces.             property 'forge.enabledGameTestNamespaces', mod_id         }         server {             property 'forge.enabledGameTestNamespaces', mod_id             args '--nogui'         }                  gameTestServer {             property 'forge.enabledGameTestNamespaces', mod_id         }         data {             workingDirectory project.file('run-data')                          args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')         }     } } // Include resources generated by data generators. sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { } dependencies {     minecraft "net.minecraftforge:forge:1.20.1" } tasks.named('processResources', ProcessResources).configure {     var replaceProperties = [             minecraft_version: minecraft_version, minecraft_version_range: minecraft_version_range,             forge_version: forge_version, forge_version_range: forge_version_range,             loader_version_range: loader_version_range,             mod_id: mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version,             mod_authors: mod_authors, mod_description: mod_description,     ]     inputs.properties replaceProperties     filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) {         expand replaceProperties + [project: project]     } } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure {     manifest {         attributes([                 'Specification-Title'     : mod_id,                 'Specification-Vendor'    : mod_authors,                 'Specification-Version'   : '1', // We are version 1 of ourselves                 'Implementation-Title'    : project.name,                 'Implementation-Version'  : project.jar.archiveVersion,                 'Implementation-Vendor'   : mod_authors,                 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")         ])     }     // This is the preferred method to reobfuscate your jar file     finalizedBy 'reobfJar' } publishing {     publications {         register('mavenJava', MavenPublication) {             artifact jar         }     }     repositories {         maven {             url "file://${project.projectDir}/mcmodsrepo"         }     } } tasks.withType(JavaCompile).configureEach {     options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation }       please help me out
  • Topics

  • Create New...

Important Information

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