J'essaie de détecter quand un certain item est dans l'inventaire d'un joueur, et quand il y est, le joueur a un effet de potion(qui s'enlève dès que l'item n'est plus détecté dans l'inventaire)
Voici le code de la classe de l'item en question:
Code : Tout sélectionner
package com.maxanimator.myawesomemod.items;
import com.maxanimator.myawesomemod.init.ModItems;
import ibxm.Player;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.MobEffects;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArrow;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.world.World;
public class StrenghtSkillOrb extends Item{
public StrenghtSkillOrb(String name)
{
setUnlocalizedName(name);
setRegistryName(name);
}
public PotionEffect onEntityItemUpdate(EntityItem entityItem, EntityPlayer player)
{
if(player.inventory.hasItemStack(new ItemStack(ModItems.strenght_skill_orb)))
{
return new PotionEffect(MobEffects.STRENGTH, 1, 0, true, true);
}
return null;
}
}
Code : Tout sélectionner
package com.maxanimator.myawesomemod.init;
import com.maxanimator.myawesomemod.References;
import com.maxanimator.myawesomemod.items.BasicItem;
import com.maxanimator.myawesomemod.items.SpearWeapon;
import com.maxanimator.myawesomemod.items.StrenghtSkillOrb;
import com.maxanimator.myawesomemod.items.armor.ObsidianArmor;
import com.maxanimator.myawesomemod.items.armor.QuartzArmor;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.SoundEvents;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.common.util.EnumHelper;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@Mod.EventBusSubscriber(modid = References.MODID)
public class ModItems
{
public static Item item_test, iron_spear, quartz_helmet, quartz_chestplate, quartz_leggings, quartz_boots, nether_gem, minecoin, obsidian_helmet, obsidian_chestplate, obsidian_leggings, obsidian_boots,
empty_skill_orb, strenght_skill_orb;
public static ArmorMaterial QuartzArmor = EnumHelper.addArmorMaterial("QuartzArmor", References.MODID + ":quartz_layer_1", 13, new int[] {1, 4, 5, 2}, 13, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0F);
public static ArmorMaterial ObsidianArmor = EnumHelper.addArmorMaterial("ObsidianArmor", References.MODID + ":obsidian_layer_1", 13, new int[] {1, 2, 3, 1}, 7, SoundEvents.ITEM_ARMOR_EQUIP_GENERIC, 0.0F);
public static void init()
{
item_test = new BasicItem("item_test");
iron_spear = new SpearWeapon("iron_spear", ToolMaterial.IRON).setCreativeTab(CreativeTabs.COMBAT);
quartz_helmet = new QuartzArmor("quartz_helmet", QuartzArmor, 1, EntityEquipmentSlot.HEAD).setCreativeTab(CreativeTabs.COMBAT);
quartz_chestplate = new QuartzArmor("quartz_chestplate", QuartzArmor, 1, EntityEquipmentSlot.CHEST).setCreativeTab(CreativeTabs.COMBAT);
quartz_leggings = new QuartzArmor("quartz_leggings", QuartzArmor, 2, EntityEquipmentSlot.LEGS).setCreativeTab(CreativeTabs.COMBAT);
quartz_boots = new QuartzArmor("quartz_boots", QuartzArmor, 1, EntityEquipmentSlot.FEET).setCreativeTab(CreativeTabs.COMBAT);
nether_gem = new BasicItem("nether_gem").setCreativeTab(CreativeTabs.MATERIALS);
minecoin = new BasicItem("minecoin").setCreativeTab(CreativeTabs.MISC);
obsidian_helmet = new ObsidianArmor("obsidian_helmet", ObsidianArmor, 1, EntityEquipmentSlot.HEAD).setCreativeTab(CreativeTabs.COMBAT);
obsidian_chestplate = new ObsidianArmor("obsidian_chestplate", ObsidianArmor, 1, EntityEquipmentSlot.CHEST).setCreativeTab(CreativeTabs.COMBAT);
obsidian_leggings = new ObsidianArmor("obsidian_leggings", ObsidianArmor, 2, EntityEquipmentSlot.LEGS).setCreativeTab(CreativeTabs.COMBAT);
obsidian_boots = new ObsidianArmor("obsidian_boots", ObsidianArmor, 1, EntityEquipmentSlot.FEET).setCreativeTab(CreativeTabs.COMBAT);
empty_skill_orb = new StrenghtSkillOrb("empty_skill_orb").setCreativeTab(CreativeTabs.MISC);
strenght_skill_orb = new StrenghtSkillOrb("strenght_skill_orb").setCreativeTab(CreativeTabs.MISC);
}
@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event)
{
event.getRegistry().registerAll(item_test, iron_spear, quartz_helmet, quartz_chestplate, quartz_leggings, quartz_boots, nether_gem, minecoin, obsidian_helmet, obsidian_chestplate, obsidian_leggings,
obsidian_boots, empty_skill_orb, strenght_skill_orb);
}
@SubscribeEvent
public static void registerRenders(ModelRegistryEvent event)
{
registerRender(item_test);
registerRender(iron_spear);
registerRender(quartz_helmet);
registerRender(quartz_chestplate);
registerRender(quartz_leggings);
registerRender(quartz_boots);
registerRender(nether_gem);
registerRender(minecoin);
registerRender(obsidian_helmet);
registerRender(obsidian_chestplate);
registerRender(obsidian_leggings);
registerRender(obsidian_boots);
registerRender(empty_skill_orb);
registerRender(strenght_skill_orb);
}
private static void registerRender(Item item)
{
ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
}
}