package me.km.capabilities; import java.util.List; import me.km.KajetansMod; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.common.capabilities.CapabilityManager; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.event.AttachCapabilitiesEvent; import net.minecraftforge.event.entity.player.ItemTooltipEvent; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class CapabilitiesEvents { public static final ResourceLocation DEFENSE_CAP = new ResourceLocation(KajetansMod.MODID, "defense"); public static void init() { CapabilityManager.INSTANCE.register(IDefense.class, new DefenseStorage(), ItemDefenseStats.class); } @SubscribeEvent public void attachDefenseData(AttachCapabilitiesEvent e) { if(e.getObject().getItem() instanceof ItemArmor) { e.addCapability(DEFENSE_CAP, new DefenseProvider()); } } @SideOnly(Side.CLIENT) @SubscribeEvent public void showingTooltip(ItemTooltipEvent e) { ItemStack stack = e.getItemStack(); if(stack.hasCapability(DefenseProvider.DEFENSE_CAP, null)) { IDefense defense = stack.getCapability(DefenseProvider.DEFENSE_CAP, null); int magic = defense.getMagicDefense(); if(magic != 0) { List list = e.getToolTip(); String s = TextFormatting.BLUE + " +"; for(int i = 0; i < list.size(); i++) { if(list.get(i).startsWith(s)) { list.add(i, TextFormatting.BLUE + " +" + magic + " Magic Armor"); break; } } } } } }