Jump to content

Recommended Posts

Posted

How exactly would I put it in my tool class that I want the damage be 100 and attack speed to be +10. I looked in the ItemTool call but I don't see what i'm supposed to do.

~ Ronaldi2001

Posted

this.damageVsEntity(100) ?

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

Code In the sword class:

 

package ronaldi2001.MoreItems.tools;

import java.util.List;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import ronaldi2001.MoreItems.ColorfulText;
import ronaldi2001.MoreItems.main.MoreItems;

public class UltimateSword extends ItemSword {

private final float attackDamage;

public UltimateSword(String unlocalizedName, ToolMaterial material) {
	super(material);
	this.setUnlocalizedName(unlocalizedName);
	this.setCreativeTab(MoreItems.tabMoreItems);
	this.attackDamage = 99.0F;

}

@Override
    public boolean hasEffect(ItemStack par1ItemStack)
    {
    return true;
    }

@SideOnly(Side.CLIENT)
public void addInformation(ItemStack itemstack, EntityPlayer player, List datalist, boolean bool){
	datalist.add(TextFormatting.YELLOW + ColorfulText.ultimate("No Durability")+TextFormatting.RESET+"");
}
}

 

The outcome in Minecraft:

 

https://www.dropbox.com/s/zj1kl3q2pu77x6b/Ultimate%20Sword%20In%20Inventory.png?dl=0

~ Ronaldi2001

Posted

I put all this in. I would assume that it would work with this but it doesn't.

package ronaldi2001.MoreItems.tools;

import java.util.List;

import com.google.common.collect.Multimap;

import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import ronaldi2001.MoreItems.ColorfulText;
import ronaldi2001.MoreItems.init.MoreItemsTools;
import ronaldi2001.MoreItems.main.MoreItems;

public class UltimateSword extends ItemSword {

    private final float attackDamage;
    private final Item.ToolMaterial material;

public UltimateSword(Item.ToolMaterial material) {
	super(MoreItemsTools.ULTIMATETOOLS);
	this.material = material;
	this.setUnlocalizedName("ultimate_sword");
	this.setCreativeTab(MoreItems.tabMoreItems);
        this.attackDamage = 99.0F + material.getDamageVsEntity();
}

    public float getDamageVsEntity()
    {
        return this.material.getDamageVsEntity();
    }

@Override
    public boolean hasEffect(ItemStack par1ItemStack)
    {
    return true;
    }

@SideOnly(Side.CLIENT)
public void addInformation(ItemStack itemstack, EntityPlayer player, List datalist, boolean bool){
	datalist.add(TextFormatting.YELLOW + ColorfulText.ultimate("No Durability")+TextFormatting.RESET+"");
}

    public Multimap<String, AttributeModifier> getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot)
    {
        Multimap<String, AttributeModifier> multimap = super.getItemAttributeModifiers(equipmentSlot);

        if (equipmentSlot == EntityEquipmentSlot.MAINHAND)
        {
            multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", (double)this.attackDamage, 0));
            multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", -2.4000000953674316D, 0));
        }

        return multimap;
    }
}

~ Ronaldi2001

Posted

What I have is the first thing I tried but it didn't work so idk. but this is the line in my class where I register the sword:

 

	GameRegistry.registerItem(ultimate_sword = new UltimateSword(ULTIMATETOOLS), "ultimate_sword");

 

With the .registerItem striked out.

 

~ Ronaldi2001

Posted

registerItem is struck-out because it's deprecated.  Use GameRegistry.register()

Be sure to call setRegistryName

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

Well, read the error message maybe?

 

I did and what should be there I have know idea?

 

Also holy crap that is an awful font.

 

That is my own handwriting and I turned it into a font.

~ Ronaldi2001

Posted

What I said was wrong not every tool allows me to set the damageVsEntity and attackSpeed. The two tools that I am having trouble with is the Sword and Hoe.

~ Ronaldi2001

Posted

I did it the same way I did and you said that should work but its not.

 

I put all this in. I would assume that it would work with this but it doesn't.

package ronaldi2001.MoreItems.tools;

import java.util.List;

import com.google.common.collect.Multimap;

import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import ronaldi2001.MoreItems.ColorfulText;
import ronaldi2001.MoreItems.init.MoreItemsTools;
import ronaldi2001.MoreItems.main.MoreItems;

public class UltimateSword extends ItemSword {

    private final float attackDamage;
    private final Item.ToolMaterial material;

public UltimateSword(Item.ToolMaterial material) {
	super(MoreItemsTools.ULTIMATETOOLS);
	this.material = material;
	this.setUnlocalizedName("ultimate_sword");
	this.setCreativeTab(MoreItems.tabMoreItems);
        this.attackDamage = 99.0F + material.getDamageVsEntity();
}

    public float getDamageVsEntity()
    {
        return this.material.getDamageVsEntity();
    }

@Override
    public boolean hasEffect(ItemStack par1ItemStack)
    {
    return true;
    }

@SideOnly(Side.CLIENT)
public void addInformation(ItemStack itemstack, EntityPlayer player, List datalist, boolean bool){
	datalist.add(TextFormatting.YELLOW + ColorfulText.ultimate("No Durability")+TextFormatting.RESET+"");
}

    public Multimap<String, AttributeModifier> getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot)
    {
        Multimap<String, AttributeModifier> multimap = super.getItemAttributeModifiers(equipmentSlot);

        if (equipmentSlot == EntityEquipmentSlot.MAINHAND)
        {
            multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", (double)this.attackDamage, 0));
            multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", -2.4000000953674316D, 0));
        }

        return multimap;
    }
}

 

You don't need half that code...  But yes, this should work. Are you actually using your sword class?

 

~ Ronaldi2001

Posted

Should I override ItemTool instead?

This question makes no sense, you cannot override a class.

All you need to do is extend ItemSword and override

getAttributeModifiers(EntityEquipmentSlot, ItemStack)

to provide whatever modifiers you want.

 

When I said override I meant extend but I got It now thank you so much!!!

~ Ronaldi2001

Guest
This topic is now closed to further replies.

Announcements



×
×
  • Create New...

Important Information

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