I was following Harry talks tutorial to weapons and tools, and while following, i encountered an error when making the SwordItem on this line:
"ItemList.wooden_katana = new SwordItem(ToolMaterialList.katana_wooden_material, -1.0f, 6.0f, new Item.Properties().group(ItemGroup.MISC)).setRegistryName(location(wooden_katana));"
At the end of this line, where it says "wooden_katana", it gives the following error:
"wooden_katana cannot be resolved to a variable"
even though i set the variable in the class "ToolMaterialList".
The second error on the line is shown in the typical red underlines from "new SwordItem" to "ItemGroup.Misc))" which says:
"The constructor SwordItem(ToolMaterialList, float, float, Item.Properties) is undefined"
How do I fix these errors?
ToolMaterialList.java
package redstonewiz.asianweaponry.lists;
import net.minecraft.item.IItemTier;
import net.minecraft.item.Item;
import net.minecraft.item.crafting.Ingredient;
public enum ToolMaterialList implements IItemTier
{
katana_diamond_material(3.0F, 0.0F, 2000, 3, 14, ItemList.katana_diamond_material),
katana_iron_material(2.5F, 0.0F, 2000, 3, 14, ItemList.katana_diamond_material),
katana_gold_material(1F, 0.0F, 2000, 3, 14, ItemList.katana_diamond_material),
katana_stone_material(2.0F, 0.0F, 2000, 3, 14, ItemList.katana_diamond_material),
katana_wooden_material(1.0F, 0.0F, 2000, 3, 14, ItemList.katana_diamond_material);
private float attackDamage, efficiency;
private int durability, HarvestLevel, enchantibility;
private Item repairMaterial;
private ToolMaterialList(float attackDamage, float efficiency, int durability, int HarvestLevel, int enchantibility, Item repairMaterial)
{
// TODO Auto-generated constructor stub
this.attackDamage = attackDamage;
this.efficiency = efficiency;
this.durability = durability;
this.HarvestLevel = HarvestLevel;
this.enchantibility = enchantibility;
this.repairMaterial = repairMaterial;
}
@Override
public int getMaxUses() {
// TODO Auto-generated method stub
return this.durability;
}
@Override
public float getEfficiency() {
// TODO Auto-generated method stub
return this.efficiency;
}
@Override
public float getAttackDamage() {
// TODO Auto-generated method stub
return this.attackDamage;
}
@Override
public int getHarvestLevel() {
// TODO Auto-generated method stub
return this.HarvestLevel;
}
@Override
public int getEnchantability() {
// TODO Auto-generated method stub
return this.enchantibility;
}
@Override
public Ingredient getRepairMaterial() {
// TODO Auto-generated method stub
return Ingredient.fromItems(this.repairMaterial);
}
}
ItemList.java
package redstonewiz.asianweaponry.lists;
import net.minecraft.item.Item;
import net.minecraft.item.SwordItem;
public class ItemList
{
public static Item bluesteel_ingot;
public static Item katana_diamond_material;
public static SwordItem diamond_katana;
public static SwordItem iron_katana;
public static SwordItem golden_katana;
public static SwordItem stone_katana;
public static SwordItem wooden_katana;
}
AsianWeaponryMod.java (my main)
package redstonewiz.asianweaponry;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.SwordItem;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import redstonewiz.asianweaponry.items.ItemCustomKatana;
import redstonewiz.asianweaponry.lists.ItemList;
import redstonewiz.asianweaponry.lists.ToolMaterialList;
@Mod("asianweaponrymod")
public class AsianWeaponryMod
{
public static AsianWeaponryMod instance;
public static final String modid = "asianweaponrymod";
private static final Logger logger = LogManager.getLogger(modid);
public AsianWeaponryMod()
{
instance = this;
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::clientRegistries);
// TODO Auto-generated constructor stub
MinecraftForge.EVENT_BUS.register(this);
}
private void setup(final FMLCommonSetupEvent event)
{
logger.info("Setup method registered");
}
private void clientRegistries(final FMLCommonSetupEvent event)
{
logger.info("clientRegistries method registered");
}
@Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD)
public static class RegistryEvents
{
@SubscribeEvent
public static void registerItems(final RegistryEvent.Register<Item> event)
{
event.getRegistry().registerAll
(
ItemList.wooden_katana = new SwordItem(ToolMaterialList.katana_wooden_material, -1.0f, 6.0f, new Item.Properties().group(ItemGroup.MISC)).setRegistryName(location(wooden_katana));
logger.info("Items registered.");
}
private static ResourceLocation location(String name)
{
return new ResourceLocation(modid, name);
}
}
}