MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Extended Entity Properties

    Planifier Épinglé Verrouillé Déplacé Les entités
    1.7.2
    127 Messages 21 Publieurs 39.8k Vues 5 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • bin4r1sB Hors-ligne
      bin4r1s
      dernière édition par

      PlayerData.java (le code intéressant) :

      
      public final void sync() 
      {
          PacketData$01 packet = new PacketData$01(this.mana, this.playerMaxMana, this.spell_levels, this.mana_regen_ticks);
         Dragons.network.sendToServer(packet);
      
          if (!player.worldObj.isRemote) 
          {
              EntityPlayerMP player1 = (EntityPlayerMP) player;
              Dragons.network.sendTo(packet, player1);
          }
      }
      

      PacketData$01.java :

      
      package fr.MrBlockTNT.Dragons.network;
      
      import fr.MrBlockTNT.Dragons.event.PlayerData;
      import io.netty.buffer.ByteBuf;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.network.NetHandlerPlayClient;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.network.NetHandlerPlayServer;
      import cpw.mods.fml.common.network.simpleimpl.IMessage;
      import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
      import cpw.mods.fml.common.network.simpleimpl.MessageContext;
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      
      public class PacketData$01 implements IMessage
      {
      private short mana, playerMaxMana;
      private int regen_ticks;
      private byte[] levels;
      
          public PacketData$01() { }
      
          public PacketData$01(short mana, short playerMaxMana, byte[] levels, int r_ticks) 
          {
              this.mana = mana;
              this.playerMaxMana = playerMaxMana;
              this.levels = levels;
              this.regen_ticks = r_ticks;
          }
      
          @Override
          public void fromBytes(ByteBuf buf) 
          {
              mana = buf.readShort();
              playerMaxMana = buf.readShort();
              byte size = buf.readByte();
              levels = new byte;
              for(int i = 0; i < size; i++)
              levels* = buf.readByte();
              regen_ticks = buf.readInt();
          }
      
          @Override
          public void toBytes(ByteBuf buf) 
          {
          buf.writeShort(mana);
          buf.writeShort(playerMaxMana);
          buf.writeByte(levels.length);
          for(int i = 0; i < levels.length; i++)
          buf.writeByte(levels*);
          buf.writeInt(regen_ticks);
          }
      
          public static class Handler implements IMessageHandler <packetdata$01, imessage="">{
      
              @Override
              public IMessage onMessage(PacketData$01 message, MessageContext ctx) 
              {
              if(ctx.netHandler instanceof NetHandlerPlayServer)
              {
              PlayerData dat = PlayerData.get(getClientPlayer());
              dat.update(message.mana, message.playerMaxMana, message.levels, message.regen_ticks);
              }
              else if(ctx.netHandler instanceof NetHandlerPlayClient)
              {
              PlayerData dat = PlayerData.get(getClientPlayer());
              dat.update(message.mana, message.playerMaxMana, message.levels, message.regen_ticks);
              }
                  return null;
              }
      
              @SideOnly(Side.CLIENT)
              public EntityPlayer getClientPlayer()
              {
              return Minecraft.getMinecraft().thePlayer;
              }
          }
      }
      ```</packetdata$01,>

      Mes mods:

      • New Ores
      • More Dragons
      1 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par

        if(ctx.netHandler instanceof NetHandlerPlayServer)
        {
        PlayerData dat = PlayerData.get(getClientPlayer());

        ??!!??

        Et autre problème, le nom de la classe. Mettre un $ dans le nom est une très mauvaise idée.

        1 réponse Dernière réponse Répondre Citer 0
        • bin4r1sB Hors-ligne
          bin4r1s
          dernière édition par

          En fait, je ne voyais pas trop comment récupérer le joueur pour le côté serveur 😞 mais je viens de me rendre compte que c’est complètement c** stupide puisque le serveur ne pourra pas le récupérer (SideOnly). Une idée ? (J’avais aussi pensé à envoyer l’entity player mais il semblerait que je ne puisse pas (et puis ça serai trop lourd…)).

          Sinon pour le nom je voulais un séparateur entre le nom du packet et son index x)

          Mes mods:

          • New Ores
          • More Dragons
          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

            PlayerData dat = PlayerData.get(((NetHandlerPlayServer)netHandler).playerEntity);

            Le $ est utilisé pour les noms des classes lorsque tu utilise des sous classe.
            Par exemple si tu fais :

            public class BlaBla
            {
                 public static class AutreClasse
                 {
                 }
            }
            

            Lors de la compilation ça va créer deux fichiers .class :
            BlaBla.class
            BlaBla$AutreClasse.class

            Donc c’est très déconseillé de mettre des $ dans le nom de la classe, ça risque de créer des problèmes avec ça.

            1 réponse Dernière réponse Répondre Citer 0
            • bin4r1sB Hors-ligne
              bin4r1s
              dernière édition par

              Ah d’accord, merci 🙂 je vais changer ça.

              EDIT :
              Ah ben en fait je perds toujours des packets 😞 . Nouveau code :

              
              @Override
              
              public IMessage onMessage(PacketData_01 message, MessageContext ctx) 
              {
                       if(ctx.netHandler instanceof NetHandlerPlayServer)
                      {
                               PlayerData dat = PlayerData.get(((NetHandlerPlayServer)ctx.netHandler).playerEntity);
                               dat.update(message.mana, message.playerMaxMana, message.levels, message.regen_ticks);
                      }
                      else if(ctx.netHandler instanceof NetHandlerPlayClient)
                      {
                               PlayerData dat = PlayerData.get(getClientPlayer());
                               dat.update(message.mana, message.playerMaxMana, message.levels, message.regen_ticks);
                      }
                      return null;
              }
              
              

              Mes mods:

              • New Ores
              • More Dragons
              1 réponse Dernière réponse Répondre Citer 0
              • bin4r1sB Hors-ligne
                bin4r1s
                dernière édition par

                Up, help svp  😞

                Mes mods:

                • New Ores
                • More Dragons
                1 réponse Dernière réponse Répondre Citer 0
                • robin4002R Hors-ligne
                  robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                  dernière édition par

                  Ta fonction dat.update fait quoi ?

                  1 réponse Dernière réponse Répondre Citer 0
                  • bin4r1sB Hors-ligne
                    bin4r1s
                    dernière édition par

                    Elle met juste à jour les propriétés du joueur.

                    Mes mods:

                    • New Ores
                    • More Dragons
                    1 réponse Dernière réponse Répondre Citer 0
                    • robin4002R Hors-ligne
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                      dernière édition par

                      Un copier/coller de la fonction aurait été utile. Car je suspecte que tu renvoie un paquet à chaque fois, enfin je ne vois pas d’autres explications.

                      1 réponse Dernière réponse Répondre Citer 0
                      • bin4r1sB Hors-ligne
                        bin4r1s
                        dernière édition par

                        
                        public void update(short mana, short playerMaxMana, byte[] levels, int regen)
                        
                        {
                               this.mana = mana;
                               this.playerMaxMana = playerMaxMana;
                               this.spell_levels = levels;
                               this.mana_regen_ticks = regen;
                        }
                        

                        En effet ta théorie sur le fait que je renvoie le packet à chaque fois n’est pas impossible. Je check ça.

                        EDIT : Rien trouvé 😞 (Enfin intelligible pour moi)

                        Code (peut-être auras-tu plus de chance 🙂 ) :
                        PlayerData.java
                        PacketData_01.java
                        CommonProxy.java

                        Il y a quelques erreurs dans un constructeur et la méthode update notamment car je suis en train de mettre en place quelque chose.

                        Mes mods:

                        • New Ores
                        • More Dragons
                        1 réponse Dernière réponse Répondre Citer 0
                        • bin4r1sB Hors-ligne
                          bin4r1s
                          dernière édition par

                          Up 😢

                          Mes mods:

                          • New Ores
                          • More Dragons
                          1 réponse Dernière réponse Répondre Citer 0
                          • robin4002R Hors-ligne
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                            dernière édition par

                            Je ne vois pas d’erreur non plus 😕
                            Sinon envoie un zip de ton dossier src, je vais faire des tests en local.

                            1 réponse Dernière réponse Répondre Citer 0
                            • bin4r1sB Hors-ligne
                              bin4r1s
                              dernière édition par

                              Regarde tes MPs

                              Mes mods:

                              • New Ores
                              • More Dragons
                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002R Hors-ligne
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                dernière édition par

                                Je l’ai vu, il me faut juste le temps de regarder.
                                J’édite mon message dès que c’est bon (d’ici midi, et si j’ai pas trouvé pour midi je regarderais cette aprèm).

                                En semaine mon temps est très limité.

                                Finalement ça a été assez rapide. Le problème c’est que les paquets qui partent du serveur se perdent, le client ne sait pas quoi en faire.
                                Dans ta classe principale tu as ça actuellement :

                                ​        // Network
                                
                                        network = NetworkRegistry.INSTANCE.newSimpleChannel(MODID + ":CHANNEL_1");
                                        network.registerMessage(PacketData_01.Handler.class, PacketData_01.class, 0, Side.SERVER);
                                

                                Donc si le paquet par du client vers le serveur le serveur sait ce qu’il doit faire.
                                Mais dans l’autre sens non.
                                Solution ? Il suffit d’ajouter cette ligne en plus :

                                ​        network.registerMessage(PacketData_01.Handler.class, PacketData_01.class, 0, Side.CLIENT);
                                
                                1 réponse Dernière réponse Répondre Citer 0
                                • bin4r1sB Hors-ligne
                                  bin4r1s
                                  dernière édition par

                                  Merci je teste 🙂

                                  EDIT :
                                  Super ça marche ! Un grand merci 🙂

                                  Mes mods:

                                  • New Ores
                                  • More Dragons
                                  1 réponse Dernière réponse Répondre Citer 0
                                  • Antoine_A Hors-ligne
                                    Antoine_
                                    dernière édition par

                                    Bonjour j’ai suivi ce tuto mais j’ai des erreur dans ma console je ne comprend pas car le packet marche mais il y a des erreurs

                                    [14:07:56 ERROR]: SimpleChannelHandlerWrapper exception
                                    java.lang.RuntimeException: Missing
                                    at cpw.mods.fml.server.FMLServerHandler.getClientToServerNetworkManager(FMLServerHandler.java:238) ~[FMLServerHandler.class:1.7.10-1448.121]
                                    at cpw.mods.fml.common.FMLCommonHandler.getClientToServerNetworkManager(FMLCommonHandler.java:542) ~[FMLCommonHandler.class:1.7.10-1448.121]
                                    at cpw.mods.fml.common.network.FMLOutboundHandler$OutboundTarget$8.selectNetworks(FMLOutboundHandler.java:225) ~[FMLOutboundHandler$OutboundTarget$8.class:1.7.10-1448
                                    
                                    .121]
                                    at cpw.mods.fml.common.network.FMLOutboundHandler.write(FMLOutboundHandler.java:273) ~[FMLOutboundHandler.class:1.7.10-1448.121]
                                    at io.netty.channel.DefaultChannelHandlerContext.invokeWrite(DefaultChannelHandlerContext.java:644) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.write(DefaultChannelHandlerContext.java:698) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.write(DefaultChannelHandlerContext.java:637) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:115) ~[MessageToMessageEncoder.class:?]
                                    at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) ~[MessageToMessageCodec.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.invokeWrite(DefaultChannelHandlerContext.java:644) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.write(DefaultChannelHandlerContext.java:698) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.writeAndFlush(DefaultChannelHandlerContext.java:688) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.writeAndFlush(DefaultChannelHandlerContext.java:717) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java
                                    
                                    :893) ~[DefaultChannelPipeline.class:?]
                                    at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:239) ~[AbstractChannel.class:?]
                                    at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.sendToServer(SimpleNetworkWrapper.java:236) [SimpleNetworkWrapper.class:1.7.10-1448.121]
                                    at joueur.ExtendedEntityPropCaracteristique.sync(ExtendedEntityPropCaracteristique.java:183) [ExtendedEntityPropCaracteristique.class:?]
                                    at joueur.ExtendedEntityPropCaracteristique.addKamas(ExtendedEntityPropCaracteristique.java:277) [ExtendedEntityPropCaracteristique.class:?]
                                    at equipement.epees.Goultard.func_77659_a(Goultard.java:29) [Goultard.class:?]
                                    at net.minecraft.item.ItemStack.func_77957_a(ItemStack.java:172) [add.class:?]
                                    at net.minecraft.server.management.ItemInWorldManager.func_73085_a(ItemInWorldManager.java:382) [mx.class:?]
                                    
                                    at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:825) [nh.class:?]
                                    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:60) [jo.class:?]
                                    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:9) [jo.class:?]
                                    at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:244) [ej.class:?]
                                    at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:173) [nc.class:?]
                                    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:991) [MinecraftServer.class:?]
                                    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:431) [lt.class:?]
                                    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:809) [MinecraftServer.class:?]
                                    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:669) [MinecraftServer.class:?]
                                    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45-internal]
                                    [14:07:56 WARN]: More than one exception was raised. Will report only the first one and log others.
                                    java.lang.RuntimeException: Missing
                                    at cpw.mods.fml.server.FMLServerHandler.getClientToServerNetworkManager(FMLServerHandler.java:238) ~[FMLServerHandler.class:1.7.10-1448.121]
                                    at cpw.mods.fml.common.FMLCommonHandler.getClientToServerNetworkManager(FMLCommonHandler.java:542) ~[FMLCommonHandler.class:1.7.10-1448.121]
                                    at cpw.mods.fml.common.network.FMLOutboundHandler$OutboundTarget$8.selectNetworks(FMLOutboundHandler.java:225) ~[FMLOutboundHandler$OutboundTarget$8.class:1.7.10-1448.121]
                                    at cpw.mods.fml.common.network.FMLOutboundHandler.write(FMLOutboundHandler.java:273) ~[FMLOutboundHandler.class:1.7.10-1448.121]
                                    at io.netty.channel.DefaultChannelHandlerContext.invokeWrite(DefaultChannelHandlerContext.java:644) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.write(DefaultChannelHandlerContext.java:698) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.write(DefaultChannelHandlerContext.java:637) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:115) ~[MessageToMessageEncoder.class:?]
                                    at io.netty.handler.codec.MessageToMessageCodec.write(MessageToMessageCodec.java:116) ~[MessageToMessageCodec.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.invokeWrite(DefaultChannelHandlerContext.java:644) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.write(DefaultChannelHandlerContext.java:698) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.writeAndFlush(DefaultChannelHandlerContext.java:688) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelHandlerContext.writeAndFlush(DefaultChannelHandlerContext.java
                                    
                                    :717) ~[DefaultChannelHandlerContext.class:?]
                                    at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:893) ~[DefaultChannelPipeline.class:?]
                                    at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:239) ~[AbstractChannel.class:?]
                                    at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.sendToServer(SimpleNetworkWrapper.java:236) [SimpleNetworkWrapper.class:1.7.10-1448.121]
                                    at joueur.ExtendedEntityPropCaracteristique.sync(ExtendedEntityPropCaracteristique.java:183) [ExtendedEntityPropCaracteristique.class:?]
                                    at joueur.ExtendedEntityPropCaracteristique.addKamas(ExtendedEntityPropCaracteristique.java:277) [ExtendedEntityPropCaracteristique.class:?]
                                    at net.minecraft.item.ItemStack.func_77957_a(ItemStack.java:172) [add.class:?]
                                    at net.minecraft.server.management.ItemInWorldManager.func_73085_a(ItemInWorldManager.java:382) [mx.class:?]
                                    at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:825) [nh.class:?]
                                    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:60) [jo.class:?]
                                    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:9) [jo.class:?]
                                    at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:244) [ej.class:?]
                                    at net.minecraft.network.NetworkSystem.func_1
                                    
                                    51269_c(NetworkSystem.java:173) [nc.class:?]
                                    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:991) [MinecraftServer.class:?]
                                    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:431) [lt.class:?]
                                    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:809) [MinecraftServer.class:?]
                                    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:669) [MinecraftServer.class:?]
                                    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45-internal]
                                    
                                    

                                    Mon extends entityproperties

                                    public static final ExtendedEntityPropCaracteristique get(EntityPlayer player)
                                    {
                                    return (ExtendedEntityPropCaracteristique) player.getExtendedProperties(EXT_PROP_NAME);
                                    }
                                    
                                    @Override
                                    public void saveNBTData(NBTTagCompound compound)
                                    {
                                    NBTTagCompound properties = new NBTTagCompound();
                                    properties.setLong("Cooldown", this.cooldown);
                                    properties.setLong("Argent", this.argent);
                                    compound.setTag(EXT_PROP_NAME, properties);
                                    }
                                    
                                    @Override
                                    public void loadNBTData(NBTTagCompound compound)
                                    {
                                    NBTTagCompound properties = (NBTTagCompound) compound.getTag(EXT_PROP_NAME);
                                    this.cooldown = properties.getLong("Cooldown");
                                    this.argent = properties.getLong("Argent");
                                    }
                                    
                                    @Override
                                    public void init(Entity entity, World world)
                                    {
                                    // TODO Auto-generated method stub
                                    }
                                    
                                    public final void sync()
                                    {
                                    Packetcaracteristique packetcaracteristique = new Packetcaracteristique(this.cooldown , this.argent);
                                    //La ligne suivante dépend de votre manière d'envoyer les packets. Celle-ci vient de mon mod, je ne la changerais pas car je ne peux l'appliquer à votre mod, mais elle reste bonne pour un exemple.
                                    TutoMod.network.sendToServer((IMessage)new Packetcaracteristique());
                                    
                                    if (!player.worldObj.isRemote)
                                    {
                                    EntityPlayerMP player1 = (EntityPlayerMP) player;
                                    //Ici, même chose que précédemment, sauf que le packet est envoyé au player.
                                    TutoMod.network.sendTo((IMessage)new Packetcaracteristique(), player1);
                                    }
                                    }
                                    
                                    private static String getSaveKey(EntityPlayer player)
                                    {
                                    return player.getDisplayName() + ":" + EXT_PROP_NAME;
                                    }
                                    
                                    public static void saveProxyData(EntityPlayer player)
                                    {
                                    ExtendedEntityPropCaracteristique playerData = ExtendedEntityPropCaracteristique.get(player);
                                    NBTTagCompound savedData = new NBTTagCompound();
                                    playerData.saveNBTData(savedData);
                                    Commonproxy.storeEntityData(getSaveKey(player), savedData);
                                    }
                                    
                                    public static void loadProxyData(EntityPlayer player)
                                    {
                                    ExtendedEntityPropCaracteristique playerData = ExtendedEntityPropCaracteristique.get(player);
                                    NBTTagCompound savedData = Commonproxy.getEntityData(getSaveKey(player));
                                    if (savedData != null)
                                    {
                                    playerData.loadNBTData(savedData);
                                    }
                                    playerData.sync();
                                    }
                                    public void update(long cooldown, long argent)
                                    
                                    {
                                    this.cooldown = cooldown;
                                    this.argent = argent;
                                    }
                                    public boolean pay(long amount)
                                    {
                                    boolean sufficient = amount <= this.argent;
                                    if (sufficient)
                                    {
                                    this.argent -= amount;
                                    this.sync();
                                    } else
                                    {
                                    return false;
                                    }
                                    return sufficient;
                                    }
                                    
                                    public void addMoney(long amount)
                                    {
                                    this.argent += amount;
                                    this.sync();
                                    }
                                    
                                    public long getMoney()
                                    {
                                    return this.argent;
                                    }
                                    
                                    public void setMoney(long newMoney)
                                    {
                                    this.argent = newMoney;
                                    this.sync();
                                    }
                                    }
                                    
                                    

                                    mon packet

                                    implements IMessage
                                    {
                                    public long cooldown;
                                    public long argent;
                                    
                                    public Packetcaracteristique()
                                    {
                                    
                                    }
                                    
                                    public Packetcaracteristique(long cooldown, long argent)
                                    {
                                    this.cooldown = cooldown;
                                    this.argent = argent;
                                    }
                                    
                                    @Override
                                    public void fromBytes(ByteBuf buf)
                                    {
                                    cooldown = buf.readInt();
                                    argent = buf.readInt();
                                    }
                                    
                                    @Override
                                    public void toBytes(ByteBuf buf)
                                    {
                                    buf.writeLong(cooldown);
                                    buf.writeLong(argent);
                                    }
                                    
                                    public static class Handler implements IMessageHandler <packetcaracteristique, imessage="">{
                                    @Override
                                    public IMessage onMessage(Packetcaracteristique message, MessageContext ctx)
                                    {
                                    if(ctx.netHandler instanceof NetHandlerPlayServer)
                                    {
                                    ExtendedEntityPropCaracteristique prop = ExtendedEntityPropCaracteristique.get(((NetHandlerPlayServer)ctx.netHandler).playerEntity);
                                    prop.update(message.cooldown, message.argent);
                                    }
                                    else if(ctx.netHandler instanceof NetHandlerPlayClient)
                                    {
                                    ExtendedEntityPropCaracteristique prop = ExtendedEntityPropCaracteristique.get(getClientPlayer());
                                    prop.update(message.cooldown, message.argent);
                                    }
                                    return null;
                                    }
                                    }
                                    
                                    @SideOnly(Side.CLIENT)
                                    public static EntityPlayer getClientPlayer()
                                    {
                                    return Minecraft.getMinecraft().thePlayer;
                                    }
                                    
                                    }
                                    

                                    Mon init

                                    network.registerMessage(Packetcaracteristique.Handler.class, Packetcaracteristique.class, 1, Side.SERVER);
                                    network.registerMessage(Packetcaracteristique.Handler.class, Packetcaracteristique.class, 1, Side.CLIENT);
                                    ```</packetcaracteristique,>
                                    1 réponse Dernière réponse Répondre Citer 0
                                    • SCAREXS Hors-ligne
                                      SCAREX
                                      dernière édition par

                                      D’un côté tu fais un readInt et l’autre writeLong, essaie déjà en mettant un readLong plutôt

                                      Site web contenant mes scripts : http://SCAREXgaming.github.io

                                      Pas de demandes de support par MP ni par skype SVP.
                                      Je n'accepte sur skype que l…

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • Antoine_A Hors-ligne
                                        Antoine_
                                        dernière édition par

                                        ah oui desolé l’erreur est déjà corrigé j’avais remarqué entre temps mais ca ne fonctionne toujours pas toujours ce message d’erreur dans la console

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • SCAREXS Hors-ligne
                                          SCAREX
                                          dernière édition par

                                          Est-ce que ce serai possible d’avoir les classes complètes (avec les imports) car sinon le rapport d’erreur est faussé.

                                          Site web contenant mes scripts : http://SCAREXgaming.github.io

                                          Pas de demandes de support par MP ni par skype SVP.
                                          Je n'accepte sur skype que l…

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • Antoine_A Hors-ligne
                                            Antoine_
                                            dernière édition par

                                            Dessolé pour le retard weekend de décembre chargé avec le père noël 😃 bon voici mes classe scarex :

                                            mon ExtendedEntityPropCaracteristique :

                                            package joueur;
                                            import interfaces.gui.metiers.Guilevelmetier;
                                            import cpw.mods.fml.common.network.simpleimpl.IMessage;
                                            import cpw.mods.fml.relauncher.Side;
                                            import cpw.mods.fml.relauncher.SideOnly;
                                            import mods.TutoMod;
                                            import mods.common.Commonproxy;
                                            import net.minecraft.client.Minecraft;
                                            import net.minecraft.entity.Entity;
                                            import net.minecraft.entity.player.EntityPlayer;
                                            import net.minecraft.entity.player.EntityPlayerMP;
                                            import net.minecraft.nbt.NBTTagCompound;
                                            import net.minecraft.util.ChatComponentTranslation;
                                            import net.minecraft.world.World;
                                            import net.minecraftforge.common.IExtendedEntityProperties;
                                            
                                            public class ExtendedEntityPropCaracteristique implements IExtendedEntityProperties
                                            {
                                            public final static String EXT_PROP_NAME = "Caracteristiquejoueur";
                                            private final EntityPlayer player;
                                            public long cooldown;
                                            public long kamas;
                                            public long classe;
                                            public long levelbucheron;
                                            
                                            public long xpalchimiste, xpbucheron , xpchasseur , xpmineur , xppaysan , xppecheur , xpbijoutier , xpboulanger , xpbricoleur , xpforgeurdedagues , xpforgeurdepees ,
                                            xpforgeurdehaches , xpforgeurdemarteaux , xpforgeurdepelles , xppoissonnier , xpcordonnier , xpforgeurdeboucliers , xpsculpteurdarcs , xpsculpteurdebaguettes ,
                                            xpsculpteurdebatons , xptailleur , xpcordomage , xpcostumage , xpjoaillomage , xpforgemagededagues , xpforgemagedepees , xpforgemagedhaches , xpforgemagedemarteaux ,
                                            xpforgemagedepelles , xpsculptemagedarcs , xpsculptemagedebaguettes , xpsculptemagedebaton;
                                            
                                            public ExtendedEntityPropCaracteristique(EntityPlayer player)
                                            {
                                            this.player = player;
                                            this.cooldown = 0;
                                            this.kamas = 0;
                                            this.classe =0;
                                            
                                            this.levelbucheron = 0;
                                            this.xpalchimiste = 0;
                                            this.xpbucheron = 0;
                                            this.xpchasseur = 0;
                                            this.xpmineur = 0;
                                            this.xppaysan = 0;
                                            this.xppecheur = 0;
                                            this.xpbijoutier = 0;
                                            this.xpboulanger = 0;
                                            this.xpbricoleur = 0;
                                            this.xpforgeurdedagues = 0;
                                            this.xpforgeurdepees = 0;
                                            this.xpforgeurdehaches = 0;
                                            this.xpforgeurdemarteaux = 0;
                                            this.xpforgeurdepelles = 0;
                                            this.xppoissonnier = 0;
                                            this.xpcordonnier = 0;
                                            this.xpforgeurdeboucliers = 0;
                                            this.xpsculpteurdarcs = 0;
                                            this.xpsculpteurdebaguettes = 0;
                                            this.xpsculpteurdebatons = 0;
                                            this.xptailleur = 0;
                                            this.xpcordomage = 0;
                                            this.xpcostumage = 0;
                                            this.xpjoaillomage = 0;
                                            this.xpforgemagededagues = 0;
                                            this.xpforgemagedepees = 0;
                                            this.xpforgemagedhaches = 0;
                                            this.xpforgemagedemarteaux = 0;
                                            this.xpforgemagedepelles = 0;
                                            this.xpsculptemagedarcs = 0;
                                            this.xpsculptemagedebaguettes = 0;
                                            this.xpsculptemagedebaton = 0;
                                            }
                                            
                                            public static final void register(EntityPlayer player)
                                            {
                                            player.registerExtendedProperties(ExtendedEntityPropCaracteristique.EXT_PROP_NAME,
                                            new ExtendedEntityPropCaracteristique(player));
                                            }
                                            
                                            public static final ExtendedEntityPropCaracteristique get(EntityPlayer player)
                                            {
                                            return (ExtendedEntityPropCaracteristique) player.getExtendedProperties(EXT_PROP_NAME);
                                            }
                                            
                                            @Override
                                            public void saveNBTData(NBTTagCompound compound)
                                            {
                                            NBTTagCompound properties = new NBTTagCompound();
                                            properties.setLong("Cooldown", this.cooldown);
                                            properties.setLong("Kamas", this.kamas);
                                            properties.setLong("Classe", this.classe);
                                            properties.setLong("Xpalchimiste", this.xpalchimiste);
                                            properties.setLong("Xpbucheron", this.xpbucheron);
                                            properties.setLong("Xpchasseur", this.xpchasseur);
                                            properties.setLong("Xpmineur", this.xpmineur);
                                            properties.setLong("Xppaysan", this.xppaysan);
                                            properties.setLong("Xppecheur", this.xppecheur);
                                            properties.setLong("Xpbijoutier", this.xpbijoutier);
                                            properties.setLong("Xpboulanger", this.xpboulanger);
                                            properties.setLong("Xpbricoleur", this.xpbricoleur);
                                            properties.setLong("Xpforgeurdedagues", this.xpforgeurdedagues);
                                            properties.setLong("Xpforgeurdepees", this.xpforgeurdepees);
                                            properties.setLong("Xpforgeurdehaches", this.xpforgeurdehaches);
                                            properties.setLong("Xpforgeurdemarteaux", this.xpforgeurdemarteaux);
                                            properties.setLong("Xpforgeurdepelles", this.xpforgeurdepelles);
                                            properties.setLong("Xppoissonnier", this.xppoissonnier);
                                            properties.setLong("Xpcordonnier", this.xpcordonnier);
                                            properties.setLong("Xpforgeurdeboucliers", this.xpforgeurdeboucliers);
                                            properties.setLong("Xpsculpteurdarcs", this.xpsculpteurdarcs);
                                            properties.setLong("Xpsculpteurdebaguettes", this.xpsculpteurdebaguettes);
                                            properties.setLong("Xpsculpteurdebatons", this.xpsculpteurdebatons);
                                            properties.setLong("Xptailleur", this.xptailleur);
                                            properties.setLong("Xpcordomage", this.xpcordomage);
                                            properties.setLong("Xpcostumage", this.xpcostumage);
                                            properties.setLong("Xpjoaillomage", this.xpjoaillomage);
                                            properties.setLong("Xpforgemagededagues", this.xpforgemagededagues);
                                            properties.setLong("Xpforgemagedepees", this.xpforgemagedepees);
                                            properties.setLong("Xpforgemagedhaches", this.xpforgemagedhaches);
                                            properties.setLong("Xpforgemagedemarteaux", this.xpforgemagedemarteaux);
                                            properties.setLong("Xpforgemagedepelles", this.xpforgemagedepelles);
                                            properties.setLong("Xpsculptemagedarcs", this.xpsculptemagedarcs);
                                            properties.setLong("Xpsculptemagedebaguettes", this.xpsculptemagedebaguettes);
                                            properties.setLong("Xpsculptemagedebaton", this.xpsculptemagedebaton);
                                            properties.setLong("Levelbucheron", this.levelbucheron);
                                            compound.setTag(EXT_PROP_NAME, properties);
                                            }
                                            
                                            @Override
                                            public void loadNBTData(NBTTagCompound compound)
                                            {
                                            NBTTagCompound properties = (NBTTagCompound) compound.getTag(EXT_PROP_NAME);
                                            this.cooldown = properties.getLong("Cooldown");
                                            this.kamas = properties.getLong("Kamas");
                                            this.classe = properties.getLong("Classe");
                                            this.xpalchimiste =  properties.getLong("Xpalchimiste");
                                            this.xpbucheron = properties.getLong("Xpbucheron");
                                            this.xpmineur = properties.getLong("Xpmineur");
                                            this.xppaysan = properties.getLong("Xppaysan");
                                            this.xppecheur = properties.getLong("Xppecheur");
                                            this.xpbijoutier = properties.getLong("Xpbijoutier");
                                            this.xpboulanger = properties.getLong("Xpboulanger");
                                            this.xpbricoleur = properties.getLong("Xpbricoleur");
                                            this.xpforgeurdedagues = properties.getLong("Xpforgeurdedagues");
                                            this.xpforgeurdepees = properties.getLong("Xpforgeurdepees");
                                            this.xpforgeurdehaches = properties.getLong("Xpforgeurdehaches");
                                            this.xpforgemagedemarteaux  = properties.getLong("Xpforgemagedemarteaux");
                                            this.xpforgeurdepelles = properties.getLong("Xpforgeurdepelles");
                                            this.xppoissonnier = properties.getLong("Xppoissonnier");
                                            this.xpcordonnier = properties.getLong("Xpcordonnier");
                                            this.xpforgeurdeboucliers = properties.getLong("Xpforgeurdeboucliers");
                                            this.xpsculpteurdarcs = properties.getLong("Xpsculpteurdarcs");
                                            this.xpsculpteurdebaguettes = properties.getLong("Xpsculpteurdebaguettes");
                                            this.xpsculpteurdebatons = properties.getLong("Xpsculpteurdebatons");
                                            this.xptailleur = properties.getLong("Xptailleur");
                                            this.xpcordomage = properties.getLong("Xpcordomage");
                                            this.xpcostumage = properties.getLong("Xpcostumage");
                                            this.xpjoaillomage = properties.getLong("Xpjoaillomage");
                                            this.xpforgemagededagues = properties.getLong("Xpforgemagededagues");
                                            this.xpforgemagedepees = properties.getLong("Xpforgemagedepees");
                                            this.xpforgemagedhaches = properties.getLong("Xpforgemagedhaches");
                                            this.xpforgemagedemarteaux  = properties.getLong("Xpforgemagedemarteaux");
                                            this.xpforgemagedepelles = properties.getLong("Xpforgemagedepelles");
                                            this.xpsculptemagedarcs = properties.getLong("Xpsculptemagedarcs");
                                            this.xpsculptemagedebaguettes = properties.getLong("Xpsculptemagedebaguettes");
                                            this.xpsculptemagedebaton = properties.getLong("Xpsculptemagedebaton");
                                            this.levelbucheron = properties.getLong("Levelbucheron");
                                            }
                                            
                                            @Override
                                            public void init(Entity entity, World world)
                                            {
                                            // TODO Auto-generated method stub
                                            }
                                            
                                            public final void sync()
                                            {
                                            Packetcaracteristique packetcaracteristique = new Packetcaracteristique(this.cooldown , this.kamas, this.classe, this.xpalchimiste, this.xpbucheron, this.xpchasseur, this.xpmineur, this.xppaysan,
                                            this.xppecheur, this.xpbijoutier, this.xpboulanger, this.xpbricoleur, this.xpforgeurdedagues, this.xpforgeurdepees, this.xpforgeurdehaches, this.xpforgemagedemarteaux,
                                            this.xpforgeurdepelles, this.xppoissonnier, this.xpcordonnier, this.xpforgeurdeboucliers, this.xpsculpteurdarcs, this.xpsculpteurdebaguettes, this.xpsculpteurdebatons,
                                            this.xptailleur, this.xpcordomage, this.xpcostumage, this.xpjoaillomage, this.xpforgemagededagues, this.xpforgemagedepees, this.xpforgemagedhaches, this.xpforgemagedemarteaux,
                                            this.xpforgemagedepelles, this.xpsculptemagedarcs, this.xpsculptemagedebaguettes, this.xpsculptemagedebaton, this.levelbucheron);
                                            TutoMod.network.sendToServer(packetcaracteristique);
                                            
                                            if (!player.worldObj.isRemote)
                                            {
                                            EntityPlayerMP player1 = (EntityPlayerMP) player;
                                            TutoMod.network.sendTo(packetcaracteristique, player1);
                                            }
                                            }
                                            
                                            private static String getSaveKey(EntityPlayer player)
                                            {
                                            return player.getDisplayName() + ":" + EXT_PROP_NAME;
                                            }
                                            
                                            public static void saveProxyData(EntityPlayer player)
                                            {
                                            ExtendedEntityPropCaracteristique playerData = ExtendedEntityPropCaracteristique.get(player);
                                            NBTTagCompound savedData = new NBTTagCompound();
                                            playerData.saveNBTData(savedData);
                                            Commonproxy.storeEntityData(getSaveKey(player), savedData);
                                            }
                                            
                                            public static void loadProxyData(EntityPlayer player)
                                            {
                                            ExtendedEntityPropCaracteristique playerData = ExtendedEntityPropCaracteristique.get(player);
                                            NBTTagCompound savedData = Commonproxy.getEntityData(getSaveKey(player));
                                            if (savedData != null)
                                            {
                                            playerData.loadNBTData(savedData);
                                            }
                                            playerData.sync();
                                            }
                                            public void update(long cooldown, long classe, long kamas, long xpalchimiste, long xpbucheron, long xpchasseur, long xpmineur, long xppaysan, long xppecheur, long xpbijoutier,
                                            long xpboulanger, long xpbricoleur, long xpforgeurdedagues, long xpforgeurdepees, long xpforgeurdehaches, long xpforgeurdemarteaux, long xpforgeurdepelles,
                                            long xppoissonnier, long xpcordonnier, long xpforgeurdeboucliers, long xpsculpteurdarcs, long xpsculpteurdebaguettes, long xpsculpteurdebatons, long xptailleur,
                                            long xpcordomage, long xpcostumage, long xpjoaillomage, long xpforgemagededagues, long xpforgemagedepees, long xpforgemagedhaches, long xpforgemagedemarteaux, long xpforgemagedepelles,
                                            long xpsculptemagedarcs, long xpsculptemagedebaguettes, long xpsculptemagedebaton, long levelbucheron)
                                            
                                            {
                                                  this.cooldown = cooldown;
                                                  this.kamas = kamas;
                                                  this.classe = classe;
                                                  this.xpalchimiste= xpalchimiste;
                                              this.xpbucheron= xpbucheron;
                                              this.xpchasseur= xpchasseur;
                                              this.xpmineur= xpmineur;
                                              this.xppaysan= xppaysan;
                                              this.xppecheur= xppecheur;
                                              this.xpbijoutier= xpbijoutier;
                                              this.xpboulanger= xpboulanger;
                                              this.xpbricoleur= xpbricoleur;
                                              this.xpforgeurdedagues= xpforgeurdedagues;
                                              this.xpforgeurdepees= xpforgeurdepees;
                                              this.xpforgeurdehaches= xpforgeurdehaches;
                                              this.xpforgeurdemarteaux= xpforgeurdemarteaux;
                                              this.xpforgeurdepelles= xpforgeurdepelles;
                                              this.xppoissonnier= xppoissonnier;
                                              this.xpcordonnier= xpcordonnier;
                                              this.xpforgeurdeboucliers= xpforgeurdeboucliers;
                                              this.xpsculpteurdarcs= xpsculpteurdarcs;
                                              this.xpsculpteurdebaguettes= xpsculpteurdebaguettes;
                                              this.xpsculpteurdebatons= xpsculpteurdebatons;
                                              this.xptailleur= xptailleur;
                                              this.xpcordomage= xpcordomage;
                                              this.xpcostumage= xpcostumage;
                                              this.xpjoaillomage= xpjoaillomage;
                                              this.xpforgemagededagues= xpforgemagededagues;
                                              this.xpforgemagedepees= xpforgemagedepees;
                                              this.xpforgemagedhaches= xpforgemagedhaches;
                                              this.xpforgemagedemarteaux= xpforgemagedemarteaux;
                                              this.xpforgemagedepelles= xpforgemagedepelles;
                                              this.xpsculptemagedarcs= xpsculptemagedarcs;
                                              this.xpsculptemagedebaguettes= xpsculptemagedebaguettes;
                                              this.xpsculptemagedebaton = xpsculptemagedebaton;
                                              this.levelbucheron = levelbucheron;
                                            }
                                            
                                            //Kamas
                                            public boolean pay(long amount)
                                            {
                                            boolean sufficient = amount <= this.kamas;
                                            if (sufficient)
                                            {
                                            this.kamas -= amount;
                                            this.sync();
                                            } else
                                            {
                                            return false;
                                            }
                                            return sufficient;
                                            }
                                            public void addKamas(long amount)
                                            {
                                            this.kamas += amount;
                                            this.sync();
                                            }
                                            
                                            public long getKamas()
                                            {
                                            return this.kamas;
                                            }
                                            
                                            public void setKamas(long newKamas)
                                            {
                                            this.kamas = newKamas;
                                            this.sync();
                                            }
                                            
                                            //Cooldown
                                            public void addCooldown(long amount)
                                            {
                                            this.cooldown += amount;
                                            this.sync();
                                            }
                                            
                                            public void setCooldown(long newCooldown)
                                            {
                                            this.cooldown = newCooldown;
                                            this.sync();
                                            }
                                            //Metier
                                            //Bucheron
                                            
                                            public void addxpbucheron(long amount)
                                            {
                                            this.xpbucheron += amount;
                                            this.sync();
                                            }
                                            public void setxpbucheron(long newXpbucheron)
                                            {
                                            this.xpbucheron = newXpbucheron;
                                            this.sync();
                                            }
                                            public void addlevelbucheron(long amount)
                                            {
                                            this.levelbucheron += amount;
                                            this.sync();
                                            }
                                            @SideOnly(Side.CLIENT)
                                            public void openscreen()
                                            {
                                            Minecraft.getMinecraft().displayGuiScreen(new Guilevelmetier());
                                            }
                                            }
                                            

                                            mon Packetcaracteristique:

                                            package joueur;
                                            
                                            import java.io.IOException;
                                            
                                            import net.minecraft.client.Minecraft;
                                            import net.minecraft.client.entity.EntityPlayerSP;
                                            import net.minecraft.client.network.NetHandlerPlayClient;
                                            import net.minecraft.entity.player.EntityPlayer;
                                            import net.minecraft.entity.player.EntityPlayerMP;
                                            import net.minecraft.network.NetHandlerPlayServer;
                                            import interfaces.packets.Zaap;
                                            import io.netty.buffer.ByteBuf;
                                            import io.netty.channel.ChannelHandlerContext;
                                            import cpw.mods.fml.common.network.ByteBufUtils;
                                            import cpw.mods.fml.common.network.simpleimpl.IMessage;
                                            import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
                                            import cpw.mods.fml.common.network.simpleimpl.MessageContext;
                                            import cpw.mods.fml.relauncher.Side;
                                            import cpw.mods.fml.relauncher.SideOnly;
                                            
                                            public class Packetcaracteristique implements IMessage
                                            {
                                            public long cooldown;
                                            public long kamas;
                                            public long classe;
                                            public long levelbucheron;
                                            
                                            public long xpalchimiste, xpbucheron , xpchasseur , xpmineur , xppaysan , xppecheur , xpbijoutier , xpboulanger , xpbricoleur , xpforgeurdedagues , xpforgeurdepees ,
                                            xpforgeurdehaches , xpforgeurdemarteaux , xpforgeurdepelles , xppoissonnier , xpcordonnier , xpforgeurdeboucliers , xpsculpteurdarcs , xpsculpteurdebaguettes ,
                                            xpsculpteurdebatons , xptailleur , xpcordomage , xpcostumage , xpjoaillomage , xpforgemagededagues , xpforgemagedepees , xpforgemagedhaches , xpforgemagedemarteaux ,
                                            xpforgemagedepelles , xpsculptemagedarcs , xpsculptemagedebaguettes , xpsculptemagedebaton;
                                            
                                            public Packetcaracteristique()
                                            {
                                            
                                            }
                                            
                                            public Packetcaracteristique(long cooldown, long kamas, long classe, long xpalchimiste, long xpbucheron, long xpchasseur, long xpmineur, long xppaysan, long xppecheur, long xpbijoutier,
                                            long xpboulanger, long xpbricoleur, long xpforgeurdedagues, long xpforgeurdepees, long xpforgeurdehaches, long xpforgeurdemarteaux, long xpforgeurdepelles,
                                            long xppoissonnier, long xpcordonnier, long xpforgeurdeboucliers, long xpsculpteurdarcs, long xpsculpteurdebaguettes, long xpsculpteurdebatons, long xptailleur,
                                            long xpcordomage, long xpcostumage, long xpjoaillomage, long xpforgemagededagues, long xpforgemagedepees, long xpforgemagedhaches, long xpforgemagedemarteaux, long xpforgemagedepelles,
                                            long xpsculptemagedarcs, long xpsculptemagedebaguettes, long xpsculptemagedebaton, long levelbucheron)
                                            {
                                            this.cooldown = cooldown;
                                            this.kamas = kamas;
                                            this.classe = classe;
                                               this.xpalchimiste= xpalchimiste;
                                            this.xpbucheron= xpbucheron;
                                            this.xpchasseur= xpchasseur;
                                            this.xpmineur= xpmineur;
                                            this.xppaysan= xppaysan;
                                            this.xppecheur= xppecheur;
                                            this.xpbijoutier= xpbijoutier;
                                            this.xpboulanger= xpboulanger;
                                            this.xpbricoleur= xpbricoleur;
                                            this.xpforgeurdedagues= xpforgeurdedagues;
                                            this.xpforgeurdepees= xpforgeurdepees;
                                            this.xpforgeurdehaches= xpforgeurdehaches;
                                            this.xpforgeurdemarteaux= xpforgeurdemarteaux;
                                            this.xpforgeurdepelles= xpforgeurdepelles;
                                            this.xppoissonnier= xppoissonnier;
                                            this.xpcordonnier= xpcordonnier;
                                            this.xpforgeurdeboucliers= xpforgeurdeboucliers;
                                            this.xpsculpteurdarcs= xpsculpteurdarcs;
                                            this.xpsculpteurdebaguettes= xpsculpteurdebaguettes;
                                            this.xpsculpteurdebatons= xpsculpteurdebatons;
                                            this.xptailleur= xptailleur;
                                            this.xpcordomage= xpcordomage;
                                            this.xpcostumage= xpcostumage;
                                            this.xpjoaillomage= xpjoaillomage;
                                            this.xpforgemagededagues= xpforgemagededagues;
                                            this.xpforgemagedepees= xpforgemagedepees;
                                            this.xpforgemagedhaches= xpforgemagedhaches;
                                            this.xpforgemagedemarteaux= xpforgemagedemarteaux;
                                            this.xpforgemagedepelles= xpforgemagedepelles;
                                            this.xpsculptemagedarcs= xpsculptemagedarcs;
                                            this.xpsculptemagedebaguettes= xpsculptemagedebaguettes;
                                            this.xpsculptemagedebaton = xpsculptemagedebaton;
                                            this.levelbucheron = levelbucheron;
                                            }
                                            
                                            @Override
                                            public void fromBytes(ByteBuf buf)
                                            {
                                            cooldown = buf.readLong();
                                            kamas = buf.readLong();
                                            classe = buf.readLong();
                                            xpalchimiste = buf.readLong();
                                            xpbucheron = buf.readLong();
                                            xpchasseur = buf.readLong();
                                            xpmineur = buf.readLong();
                                            xppaysan = buf.readLong();
                                            xppecheur = buf.readLong();
                                            xpbijoutier = buf.readLong();
                                            xpboulanger = buf.readLong();
                                            xpbricoleur = buf.readLong();
                                            xpforgeurdedagues = buf.readLong();
                                            xpforgeurdepees  = buf.readLong();
                                            xpforgeurdehaches = buf.readLong();
                                            xpforgeurdemarteaux = buf.readLong();
                                            xpforgeurdepelles = buf.readLong();
                                            xppoissonnier = buf.readLong();
                                            xpcordonnier  = buf.readLong();
                                            xpforgeurdeboucliers = buf.readLong();
                                            xpsculpteurdarcs = buf.readLong();
                                            xpsculpteurdebaguettes  = buf.readLong();
                                            xpsculpteurdebatons = buf.readLong();
                                            xptailleur = buf.readLong();
                                            xpcordomage = buf.readLong();
                                            xpcostumage = buf.readLong();
                                            xpjoaillomage = buf.readLong();
                                            xpforgemagededagues = buf.readLong();
                                            xpforgemagedepees = buf.readLong();
                                            xpforgemagedhaches = buf.readLong();
                                            xpforgemagedemarteaux = buf.readLong();
                                            xpforgemagedepelles = buf.readLong();
                                            xpsculptemagedarcs = buf.readLong();
                                            xpsculptemagedebaguettes = buf.readLong();
                                            xpsculptemagedebaton = buf.readLong();
                                            levelbucheron = buf.readLong();
                                            }
                                            
                                            @Override
                                            public void toBytes(ByteBuf buf)
                                            {
                                            buf.writeLong(cooldown);
                                            buf.writeLong(kamas);
                                            buf.writeLong(classe);
                                            buf.writeLong(xpalchimiste);
                                            buf.writeLong(xpbucheron);
                                            buf.writeLong(xpchasseur);
                                            buf.writeLong(xpmineur);
                                            buf.writeLong(xppaysan);
                                            buf.writeLong(xppecheur);
                                            buf.writeLong(xpbijoutier);
                                            buf.writeLong(xpboulanger);
                                            buf.writeLong(xpbricoleur);
                                            buf.writeLong(xpforgeurdedagues);
                                            buf.writeLong(xpforgeurdepees);
                                            buf.writeLong(xpforgeurdehaches);
                                            buf.writeLong(xpforgeurdemarteaux);
                                            buf.writeLong(xpforgeurdepelles);
                                            buf.writeLong(xppoissonnier);
                                            buf.writeLong(xpcordonnier);
                                            buf.writeLong(xpforgeurdeboucliers);
                                            buf.writeLong(xpsculpteurdarcs);
                                            buf.writeLong(xpsculpteurdebaguettes);
                                            buf.writeLong(xpsculpteurdebatons);
                                            buf.writeLong(xptailleur);
                                            buf.writeLong(xpcordomage);
                                            buf.writeLong(xpcostumage);
                                            buf.writeLong(xpjoaillomage);
                                            buf.writeLong(xpforgemagededagues);
                                            buf.writeLong(xpforgemagedepees);
                                            buf.writeLong(xpforgemagedhaches);
                                            buf.writeLong(xpforgemagedemarteaux);
                                            buf.writeLong(xpforgemagedepelles);
                                            buf.writeLong(xpsculptemagedarcs);
                                            buf.writeLong(xpsculptemagedebaguettes);
                                            buf.writeLong(xpsculptemagedebaton);
                                            buf.writeLong(levelbucheron);
                                            }
                                            
                                            public static class Handler implements IMessageHandler <packetcaracteristique, imessage="">{
                                            @Override
                                            public IMessage onMessage(Packetcaracteristique message, MessageContext ctx)
                                            {
                                            if(ctx.netHandler instanceof NetHandlerPlayServer)
                                            {
                                            ExtendedEntityPropCaracteristique prop = ExtendedEntityPropCaracteristique.get(((NetHandlerPlayServer)ctx.netHandler).playerEntity);
                                            prop.update(message.cooldown, message.kamas,message.classe ,message.xpalchimiste ,message.xpbucheron ,message.xpchasseur ,message.xpmineur ,message.xppaysan,
                                                        message.xppecheur ,message.xpbijoutier ,message.xpboulanger ,message.xpbricoleur ,message.xpforgeurdedagues ,message.xpforgeurdepees ,message.xpforgeurdehaches,
                                                        message.xpforgeurdemarteaux, message.xpforgeurdepelles, message.xppoissonnier, message.xpcordonnier, message.xpforgeurdeboucliers, message.xpsculpteurdarcs,
                                                        message.xpsculpteurdebaguettes, message.xpsculpteurdebatons,message.xptailleur, message.xpcordomage, message.xpcostumage, message.xpjoaillomage,
                                                        message.xpforgemagededagues, message.xpforgemagedepees, message.xpforgemagedhaches, message.xpforgemagedemarteaux, message.xpforgemagedepelles,
                                                        message.xpsculptemagedarcs, message.xpsculptemagedebaguettes, message.xpsculptemagedebaton, message.levelbucheron);
                                            }
                                            else if(ctx.netHandler instanceof NetHandlerPlayClient)
                                                   {
                                            ExtendedEntityPropCaracteristique prop = ExtendedEntityPropCaracteristique.get(getClientPlayer());
                                                       prop.update(message.cooldown, message.kamas ,message.classe ,message.xpalchimiste ,message.xpbucheron ,message.xpchasseur ,message.xpmineur ,message.xppaysan,
                                                        message.xppecheur ,message.xpbijoutier ,message.xpboulanger ,message.xpbricoleur ,message.xpforgeurdedagues ,message.xpforgeurdepees ,message.xpforgeurdehaches,
                                                        message.xpforgeurdemarteaux, message.xpforgeurdepelles, message.xppoissonnier, message.xpcordonnier, message.xpforgeurdeboucliers, message.xpsculpteurdarcs,
                                                        message.xpsculpteurdebaguettes, message.xpsculpteurdebatons,message.xptailleur, message.xpcordomage, message.xpcostumage, message.xpjoaillomage,
                                                        message.xpforgemagededagues, message.xpforgemagedepees, message.xpforgemagedhaches, message.xpforgemagedemarteaux, message.xpforgemagedepelles,
                                                        message.xpsculptemagedarcs, message.xpsculptemagedebaguettes, message.xpsculptemagedebaton, message.levelbucheron);
                                                   }
                                                   return null;
                                            }
                                               }
                                            
                                            @SideOnly(Side.CLIENT)
                                               public static EntityPlayer getClientPlayer()
                                               {
                                               return Minecraft.getMinecraft().thePlayer;
                                               }
                                            
                                            }
                                            

                                            et mon item qui compte :

                                            package equipement.epees;
                                            
                                            import joueur.ExtendedEntityPropCaracteristique;
                                            import net.minecraft.entity.player.EntityPlayer;
                                            import net.minecraft.item.Item.ToolMaterial;
                                            import net.minecraft.item.ItemStack;
                                            import net.minecraft.item.ItemSword;
                                            import net.minecraft.util.ChatComponentTranslation;
                                            import net.minecraft.world.World;
                                            
                                            public class Goultard extends ItemSword
                                            {
                                            public Goultard(ToolMaterial material)
                                            {
                                            super(material);
                                            }
                                            
                                            @Override
                                            public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer player)
                                            {
                                            if (!world.isRemote)
                                            {
                                            ExtendedEntityPropCaracteristique metier = ExtendedEntityPropCaracteristique.get(player);
                                            metier.addKamas(10);
                                            ChatComponentTranslation comp = new ChatComponentTranslation("tu as " + metier.kamas +" kamas");
                                            player.addChatComponentMessage(comp);
                                            }
                                            return itemstack;
                                            }
                                            }
                                            
                                            

                                            Voila donc ça fonctionne mais avec des erreurs console … le crash du dessus et le bon

                                            Merci à toi pour ton aide</packetcaracteristique,>

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 3 / 7
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB