Jump to content

[Solved] [1.9.4] Attack speed/damage


Ronaldi2001

Recommended Posts

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Discovering that a trusted colleague had accessed my Bitcoin account and transferred $30,000 worth of bitcoins was a devastating blow. It shattered the trust I had placed in them and left me feeling vulnerable and betrayed. However, in the face of adversity, I turned to MUYERN TRUST HACKER for assistance in reclaiming control over my finances and holding the perpetrators accountable for their actions. One of the standout features of MUYERN TRUST HACKER was its ability to provide real-time alerts and notifications, keeping me informed every step of the way. With the support of MUYERN TRUST HACKER, I was able to gather irrefutable evidence of the perpetrator's actions and hold them accountable for their crimes. Armed with the information provided by the platform, I pursued legal recourse and ensured that justice was served. The perpetrator faced severe consequences for their actions, including legal penalties and financial restitution. Beyond its role in facilitating the recovery process, MUYERN TRUST HACKER provided me with a sense of empowerment and resilience in the face of adversity. While the experience was undoubtedly challenging, it ultimately served as a testament to the importance of vigilance and the power of technology in safeguarding our digital assets. Thanks to MUYERN TRUST HACKER, I emerged stronger and more resilient, ready to face whatever challenges the future may hold. Mail; muyerntrusted[At] mail-me .c o m
    • Discovering that a trusted colleague had accessed my Bitcoin account and transferred $30,000 worth of bitcoins was a devastating blow. It shattered the trust I had placed in them and left me feeling vulnerable and betrayed. However, in the face of adversity, I turned to MUYERN TRUST HACKER web [ ht tps:// muyerntrusthack.solutions/ ] for assistance in reclaiming control over my finances and holding the perpetrators accountable for their actions. One of the standout features of MUYERN TRUST HACKER was its ability to provide real-time alerts and notifications, keeping me informed every step of the way. With the support of MUYERN TRUST HACKER, I was able to gather irrefutable evidence of the perpetrator's actions and hold them accountable for their crimes. Armed with the information provided by the platform, I pursued legal recourse and ensured that justice was served. The perpetrator faced severe consequences for their actions, including legal penalties and financial restitution. Beyond its role in facilitating the recovery process, MUYERN TRUST HACKER provided me with a sense of empowerment and resilience in the face of adversity. While the experience was undoubtedly challenging, it ultimately served as a testament to the importance of vigilance and the power of technology in safeguarding our digital assets. Thanks to MUYERN TRUST HACKER, I emerged stronger and more resilient, ready to face whatever challenges the future may hold. Mail; muyerntrusted[At] mail-me .c o m  
    • Do you have still this problem? (I have it too so I want to know if you did something with it)  
    • Thank you very much, the mod worked. I almost destroyed my computer out of anger because I couldn't find the error.
  • Topics

×
×
  • Create New...

Important Information

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