- 63
- 3
- 4
В классе предмета, в конструкторе класс регистрируется как ивентовый. И эта строка выбивает краш. Но метод, что использует ивент должен проходить на сервере. А тот что присваивает текстуру вообще не является ивентом. (?!?!?!)
Java:
package frederic.extraaccessories.items;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.event.entity.living.LivingAttackEvent;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingAttackEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import baubles.api.BaubleType;
import baubles.common.container.InventoryBaubles;
import baubles.common.lib.PlayerHandler;
import frederic.extraaccessories.AddedItemsBlocks;
import frederic.extraaccessories.Main;
import frederic.extraaccessories.Reference;
import frederic.extraaccessories.api.ItemBaubles;
import frederic.extraaccessories.handler.GuiHandler;
import frederic.extraaccessories.helper.ItemNBTHelper;
import frederic.extraaccessories.inventory.InventoryItemStorage;
public class ItemHeartAmulet extends ItemBaubles {
private static final String TAG_BAUBLE_UUID_MOST = "baubleUUIDMost";
private static final String TAG_BAUBLE_UUID_LEAST = "baubleUUIDLeast";
public static List<String> damageNegations = new ArrayList();
public int healthAmmount = 0;
Multimap<String, AttributeModifier> attributes = HashMultimap.create();
public ItemHeartAmulet() {
this.setUnlocalizedName("heart_amulet");
this.setTextureName((Reference.MOD_ID + ":" + "heart_relic").substring(5));
MinecraftForge.EVENT_BUS.register(this);
damageNegations.add(DamageSource.lava.damageType);
damageNegations.add(DamageSource.inFire.damageType);
damageNegations.add(DamageSource.onFire.damageType);
}
public void onValidPlayerWornTick(ItemStack stack, EntityPlayer player) {
if (player.isBurning())
player.extinguish();
}
@SideOnly(Side.CLIENT)
@Override
public void registerIcons(IIconRegister iconReg) {
itemIcon = iconReg.registerIcon(Reference.MOD_ID + ":" + "heart_relic");
}
@SubscribeEvent
public void onPlayerAttacked(LivingAttackEvent event) {
if (event.entityLiving instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.entityLiving;
if (getHeartAmulet(player) != null && damageNegations.contains(event.source.damageType))
event.setCanceled(true);
}
}
public BaubleType getBaubleType(ItemStack arg0) {
return BaubleType.AMULET;
}
}
- Краш-лог
-
cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: net/minecraft/client/renderer/texture/IIconRegister
at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:559)
at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88)
at cpw.mods.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:320)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:176)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:631)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/renderer/texture/IIconRegister
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetPublicMethods(Class.java:2902)
at java.lang.Class.privateGetPublicMethods(Class.java:2917)
at java.lang.Class.privateGetPublicMethods(Class.java:2917)
at java.lang.Class.getMethods(Class.java:1615)
at cpw.mods.fml.common.eventhandler.EventBus.register(EventBus.java:60)
at frederic.extraaccessories.items.ItemHeartAmulet.<init>(ItemHeartAmulet.java:60)
at frederic.extraaccessories.AddedItemsBlocks.initItems(AddedItemsBlocks.java:69)
at frederic.extraaccessories.Main.preInit(Main.java:54)
Краш-лог:
cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: net/minecraft/client/renderer/texture/IIconRegister
at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:559)
at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88)
at cpw.mods.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:320)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:176)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:631)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/renderer/texture/IIconRegister
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetPublicMethods(Class.java:2902)
at java.lang.Class.privateGetPublicMethods(Class.java:2917)
at java.lang.Class.privateGetPublicMethods(Class.java:2917)
at java.lang.Class.getMethods(Class.java:1615)
at cpw.mods.fml.common.eventhandler.EventBus.register(EventBus.java:60)
at frederic.extraaccessories.items.ItemHeartAmulet.<init>(ItemHeartAmulet.java:60)
at frederic.extraaccessories.AddedItemsBlocks.initItems(AddedItemsBlocks.java:69)
at frederic.extraaccessories.Main.preInit(Main.java:54)