Posted May 29, 20169 yr So anything extending ItemTool has an attackdelay variable that can be changed easily. ItemSword doesn't but I figured out how it works, though when I implement it in my custom sword to get an attack speed of 3.2 it doesn't work, stays at 1.6, why is that? public class TungstenSword extends ItemSword { public TungstenSword() { super(EnumHelper.addToolMaterial("tungsten_sword_material", 2, 8591, 1.0f, 5.0f, 30)); setUnlocalizedName("tungsten_sword"); setCreativeTab(CreativeTabs.COMBAT); } @Override 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.getDamageVsEntity(), 0)); multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", (double) -0.8D, 0)); } return multimap; } }
May 29, 20169 yr Author So anything extending ItemTool has an attackdelay variable that can be changed easily. ItemSword doesn't but I figured out how it works, though when I implement it in my custom sword to get an attack speed of 3.2 it doesn't work, stays at 1.6, why is that? public class TungstenSword extends ItemSword { public TungstenSword() { super(EnumHelper.addToolMaterial("tungsten_sword_material", 2, 8591, 1.0f, 5.0f, 30)); setUnlocalizedName("tungsten_sword"); setCreativeTab(CreativeTabs.COMBAT); } @Override 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.getDamageVsEntity(), 0)); multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getAttributeUnlocalizedName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", (double) -0.8D, 0)); } return multimap; } }
May 29, 20169 yr You need to remove the existing modifiers added by ItemSword from the Multimap before adding your own. You can see how I do this here. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
May 29, 20169 yr You need to remove the existing modifiers added by ItemSword from the Multimap before adding your own. You can see how I do this here. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
May 30, 20169 yr If you are calling clear on it, why bother filling it with super call? Super should be called if you want to preserve parent attribs and while you should (to preserve hierarchy) do what Choonster does, you can just make new Map. Simply don't call super and make new Multimap. 1.7.10 is no longer supported by forge, you are on your own.
May 30, 20169 yr If you are calling clear on it, why bother filling it with super call? Super should be called if you want to preserve parent attribs and while you should (to preserve hierarchy) do what Choonster does, you can just make new Map. Simply don't call super and make new Multimap. 1.7.10 is no longer supported by forge, you are on your own.
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.