fonction liée à l'armure

okami35

Aventurier
29 Mai 2011
59
0
1
Bonjour,
Je cherche à faire une armure qui imunise contre le feu. Cependant, je ne trouve pas la fonction qui est appelée lorsque l'armure est équipée (j'ai essayé le onItemUse mais ça ne marche pas).
Avec un onItemRightClick par contre ça marche nickel, mais ce n'est pas l'objectif.
Il existe forcément une fonction appelée lorsque l'armure est équipée.

Merci d'avance
 

okami35

Aventurier
29 Mai 2011
59
0
1
J'ai donc utilisé cette fonction là:
Code:
if(player.inventory.armorItemInSlot(2) != null) {
La condition passe lorsqu'il s'agit par exemple d'un plastron en diamant, mais lorsque j'équipe une armure que j'ai codé moi même, la condition ne passe pas, et je ne vois vraiment pas pourquoi.

Merci d'avance
 

Bl@ckhole

Capitaine de la Garde Princière de Rozland
29 Juillet 2011
838
33
23
28
Peut être parce que ton armure personnalisée n'hérite pas d'une classe d'armure de minecraft, et que donc il ne le reconnait pas ?
 

okami35

Aventurier
29 Mai 2011
59
0
1
Si elle hérite de ItemArmor, c'est ça que je ne comprends pas.
Et quand je la porte elle est bien détectée comme une armure et compagnie.

Merci de ton aide
 

okami35

Aventurier
29 Mai 2011
59
0
1
Impossible, j'aurai un nulPointerException qui sera levée (cette condition .equals(monarmure) est après), mais avec des tests je sais qu'il ne passe pas le != null déjà.

Merci
 

okami35

Aventurier
29 Mai 2011
59
0
1
J'ai trouvé le problème, en mon objet armure est hérité de ItemArmor et du coup il ne le prend pas comme armure.
Sauf que je veux pouvoir appeller ma fonction updateTick depuis cette classe.
Quelqu'un aurait une idée? voila le code de la classe

Code:
package net.minecraft.src;

public class item_firearmor extends ItemArmor{
	

	public item_firearmor(int i, int j, int k, int l) {
		super(i, j, k, l);
		// TODO Auto-generated constructor stub
	}
	

	public void onUpdate(ItemStack itemstack, World world, Entity entity, int i, boolean flag)
    {
		EntityPlayer player = (EntityPlayer) entity;
		if(player.inventory.armorItemInSlot(2) != null) {
			//player.addChatMessage(player.inventory.armorItemInSlot(2).getItemName());
			player.addChatMessage("test");
		if(player.inventory.armorItemInSlot(2).getItem().equals(Item.plateDiamond)) {
			entity.isImmuneToFire = true;
		}
		else
			entity.isImmuneToFire = false;
		}
		
		else
			entity.isImmuneToFire = false;
    }


}