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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Also check the worldsave / serverconfig folder If there is no such file, make a test without this mod  
    • Hi, I've been having trouble trying to use forge as it shows a black screen when I open the game, but I can still interact with it and hear the music.  I've done all of the step by steps and most common fixes like updating drivers, keeping up to date with Java, deleting and reinstalling minecraft, restarting my computer MANY times, even smaller things like splash.properties (I didn't have that file so I added it and set it to false thinking it would do something, definitely not) and making sure to prioritize my rtx 3070 in the settings but with no luck. Minecraft works as intended when I uninstall forge and I also don't have any mods currently, it just gives me this issue when I install forge. I also increased the ram usage, made sure my hardware isn't full or anything, and even changed the resolution in hopes it would fix things. I checked my antivirus and firewall but that isn't the issue either. Trust me, I've done everything I can think of. For some reason the black screen does flicker a little into the main menu, but obviously unplayable. I couldn't even make my way to the settings with how little it flickered. I'm not sure if it flickered randomly or if it was because I was messing around moving and clicking a bunch, I didn't really test it that much.  
    • I've had a really weird issue recently,  I wanted to add the Depper and Darker mod on my dedicated server (MC 1.21 with Fabric 0.16.9, hosted on nitroserv.com) but whenever I do add the mod the sever stops doing anything after listing the mods, and I get no crash or error or anything, just a stuck server. Here's a normal log of the server booting up: https://pastebin.com/JipFF2Eh and here's the log of the server doing the weird thing: https://pastebin.com/W4JBh3eX I just don't understand it. I've tried removing other mods (somewhat randomly) but deeper and darker still breaks my server whenever I add it. NitroServ support staff is about as confused as I am and I've had no response from the Deeper and Darker support staff... Now I know this is the Forge support not the Fabric support but I'm just trying to know if anyone has any kind of idea to fix this (aside from not using the mod obviously) Also I still have a bunch of errors and warnings whenever the server does start properly, are there any of them I should be worried about?
  • Topics

×
×
  • Create New...

Important Information

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