21 févr. 2020, 18:10

Bonjour !
j’aimerais que quand le joueur porte mon casque, il passe en créatif.
Voici mon code mais il ne vas pas

package com.drastic.mod.init.objects.armour;

import com.drastic.mod.Main;
import com.drastic.mod.init.ItemInit;
import com.drastic.mod.render.models.armor.ModelGbHead;
import com.drastic.mod.util.IHasModel;

import net.minecraft.client.model.ModelBiped;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ITeleporter;

public class GbArmor extends ItemArmor implements IHasModel
{

    public GbArmor(String name, ArmorMaterial materialIn, EntityEquipmentSlot equipmentSlotIn)
    {
        super(materialIn, 1, equipmentSlotIn);
        setUnlocalizedName(name);
        setRegistryName(name);
        setCreativeTab(Main.BadassTab);
        setMaxStackSize(1);
        
        ItemInit.ITEMS.add(this);
    }

    @Override
    public void registerModels()
    {
        Main.proxy.registerItemRederer(this, 0);        
    }
    
    @Override
    public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, EntityEquipmentSlot armorSlot, ModelBiped _default)
    {
        if(itemStack != ItemStack.EMPTY && itemStack.getItem() instanceof ItemArmor)
        {
            ModelGbHead model = new ModelGbHead();
            
            model.bipedHead.showModel = armorSlot == EntityEquipmentSlot.HEAD;
            
            model.isChild = _default.isChild;
            model.isRiding = _default.isRiding;
            model.isSneak = _default.isSneak;
            model.rightArmPose = _default.rightArmPose;
            model.leftArmPose = _default.leftArmPose;    
            
            return model;
        }
        
        return null;
    }
    
    @Override
    public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack)
    {
        if(isFullSet(player)) 
        {
            player.capabilities.isCreativeMode = true;
        }
        else
        {
            player.capabilities.isCreativeMode = false;
        }
        super.onArmorTick(world, player, itemStack);
    }
    
    
    public static boolean isFullSet(EntityPlayer player){       
        ItemStack head = player.getItemStackFromSlot(EntityEquipmentSlot.HEAD);
        
        return !head.isEmpty() && head.getItem() instanceof GbArmor;
    }
}