19 oct. 2017, 19:03

Bonjour à tous !

Je me suis lancé dans les capabilities .
Tout fonctionne , la syncro client/serveur aussi bref tout va bien .

Sauf que je souhaite afficher le chiffre de la capabilities dans le tooltip de l’item .
Sachant que la fonction “addInformation” se fait côté client , je suis passé par la fonction “onUpdate” qui elle est côté serveur .

J’ai donc ça :

public class BooksItem extends Item
{

private int level;

public BooksItem(String name)
{
this.setUnlocalizedName(name);
this.setRegistryName(name);
this.setCreativeTab(DofusCraftCore.books);
this.setHasSubtypes(true);
this.setMaxStackSize(1);
}

@Override
public void addInformation(ItemStack stack, EntityPlayer playerIn, List <string>tooltip, boolean advanced)
{
tooltip.add("Niveau : " + this.level);
}

@Override
public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected)
{
if(!worldIn.isRemote)
{
if(entityIn instanceof EntityPlayer)
{
if(this.level != entityIn.getCapability(DofusCraftLevelsProvider.LEVEL_CAP, null).getLevel())
{
this.level = entityIn.getCapability(DofusCraftLevelsProvider.LEVEL_CAP, null).getLevel();
}
}
}
}

@Override
public void getSubItems(Item item, CreativeTabs tab, List <itemstack>items)
{
items.add(new ItemStack(item, 1, 0));
items.add(new ItemStack(item, 1, 1));
items.add(new ItemStack(item, 1, 2));
items.add(new ItemStack(item, 1, 3));
items.add(new ItemStack(item, 1, 4));
items.add(new ItemStack(item, 1, 5));
items.add(new ItemStack(item, 1, 6));
items.add(new ItemStack(item, 1, 7));
}

@Override
public String getUnlocalizedName(ItemStack stack)
{
if( stack.getItemDamage() == 0 )
{
return this.getUnlocalizedName();
}
if( stack.getItemDamage() == 1 )
{
return this.getUnlocalizedName();
}
if( stack.getItemDamage() == 2 )
{
return this.getUnlocalizedName();
}
if( stack.getItemDamage() == 3 )
{
return this.getUnlocalizedName();
}
if( stack.getItemDamage() == 4 )
{
return this.getUnlocalizedName();
}
if( stack.getItemDamage() == 5 )
{
return this.getUnlocalizedName();
}
if( stack.getItemDamage() == 6 )
{
return this.getUnlocalizedName();
}
if( stack.getItemDamage() == 7 )
{
return this.getUnlocalizedName();
}
return this.getUnlocalizedName();
}
}

Seulement , l’affichage fonctionne parfaitement en solo , mais pas sur serveur ….
Sur serveur cela affiche “0” , alors que dans la capabilities la valeur est de 7 …

Une idée ?

Merci d’avance !</itemstack></string>