MFF

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

    Liste, tableau?

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    13 Messages 5 Publieurs 2.1k Vues 1 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Car pour les listes ça va être plus compliqué.

      1 réponse Dernière réponse Répondre Citer 0
      • RedRelayR Hors-ligne
        RedRelay Moddeurs confirmés
        dernière édition par

        Que tu utilises un tableau ou plusieurs boolean, si ça crash c’est pas la structure de données qui est foireuse, c’est ton code.
        Créer plusieurs boolean n’est pas une bonne idée, car d’un point de vue programmation tu ne pourra pas faire de boucle, tu ne pourra pas retourner l’ensemble de tes permis via un getter etc… Bref, ça t’impose énormément de limite. D’un point de vue JVM, tu fragmentes la mémoire inutilement.

        Un tableau c’est bien si tu connais d’avance sa taille.
        Une List, se décompose en 2 implémentations : l’ArrayList et la LinkedList.
        Une ArrayList se base sur un tableau dont la taille est multiplié par 2 dès qu’un ajout dépasse le nombre de case.
        Une LinkedList c’est une chaine d’élément. C’est a dire que l’élément 1 possède un lien vers l’élément 0 et l’élément 2 etc…

        ArrayList ou LinkedList ? ça dépend :

        • Si tu veux accédez a l’élément i et qu’il est au milieu de ta liste

        ArrayList : Tu peux y accéder directement.
        LinkedList : Tu dois parcourir la moitié de ta liste.

        • Si tu ajoute un élément à la moitié de ta liste (idem pour la suppression)

        ArrayList : Tu recopies les éléments suivant a la case n+1, un par un.
        LinkedList : Tu insert directement l’élément en modifiant juste le chainage

        En gros :

        Structure de donnée : Accès random / Modification
        ArrayList :  +++ / +
        LinkedList : + / +++

        –------------------------------------------------------------------------------------
        Si tu trouves mon intervention pertinente, n'hésite pas a m…

        1 réponse Dernière réponse Répondre Citer 0
        • DiabolicaTrixD Hors-ligne
          DiabolicaTrix Correcteurs Moddeurs confirmés
          dernière édition par

          En fait, la taille n’est pas variable dans je n’ai techniquement pas besoin d’une liste sinon, mon code crashait au niveau de mon buf.readBoolean(); car en fait j’utilisait un boucle pour parcourir le tableau et buf chacun de mes valeurs, mais je crois que pour le récupérer je dois utiliser une boucle pour les récupérer un par un?

          Bref, je crois que l’utilisation d’un tableau serait moins complexe et je vais réessayer et renvoyer le crash si il y en a un.

          Sinon, un autre problème dont je n’ai aucune idée, comment je pourrais récupérer le nom de la valeur en fait, il me faudrait un nom localisé pour chaque permis et lister les permis qu’il possède.

          EDIT: J’ai fait un système avec des tableau et cette façon m’a semblé la meilleure mais je dois avoir fait une erreur.

          Le crash:

          [19:51:47] [Client thread/ERROR] [FML]: FMLIndexedMessageCodec exception caught
          io.netty.handler.codec.DecoderException: java.lang.NullPointerException
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:?]
          at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
          at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
          at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
          at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
          at net.minecraft.client.Minecraft.runTick(Minecraft.java:2152) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
          at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
          at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
          at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
          at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
          at GradleStart.main(Unknown Source) [start/:?]
          Caused by: java.lang.NullPointerException
          at diabolicatrix.project.PacketRestrainClientServer.fromBytes(PacketRestrainClientServer.java:43) ~[PacketRestrainClientServer.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:17) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:7) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:17) ~[FMLIndexedMessageToMessageCodec.class:?]
          at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:?]
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:?]
          … 19 more
          [19:51:47] [Client thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
          io.netty.handler.codec.DecoderException: java.lang.NullPointerException
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:?]
          at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
          at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
          at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
          at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
          at net.minecraft.client.Minecraft.runTick(Minecraft.java:2152) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
          at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
          at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
          at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
          at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
          at GradleStart.main(Unknown Source) [start/:?]
          Caused by: java.lang.NullPointerException
          at diabolicatrix.project.PacketRestrainClientServer.fromBytes(PacketRestrainClientServer.java:43) ~[PacketRestrainClientServer.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:17) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:7) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:17) ~[FMLIndexedMessageToMessageCodec.class:?]
          at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:?]
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:?]
          … 19 more
          [19:51:47] [Client thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
          io.netty.handler.codec.DecoderException: java.lang.NullPointerException
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:?]
          at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
          at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
          at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
          at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
          at net.minecraft.client.Minecraft.runTick(Minecraft.java:2152) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
          at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
          at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
          at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
          at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
          at GradleStart.main(Unknown Source) [start/:?]
          Caused by: java.lang.NullPointerException
          at diabolicatrix.project.PacketRestrainClientServer.fromBytes(PacketRestrainClientServer.java:43) ~[PacketRestrainClientServer.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:17) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:7) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:17) ~[FMLIndexedMessageToMessageCodec.class:?]
          at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:?]
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:?]
          … 19 more
          [19:51:47] [Client thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
          io.netty.handler.codec.DecoderException: java.lang.NullPointerException
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:?]
          at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
          at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
          at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
          at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
          at net.minecraft.client.Minecraft.runTick(Minecraft.java:2152) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
          at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
          at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
          at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
          at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
          at GradleStart.main(Unknown Source) [start/:?]
          Caused by: java.lang.NullPointerException
          at diabolicatrix.project.PacketRestrainClientServer.fromBytes(PacketRestrainClientServer.java:43) ~[PacketRestrainClientServer.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:17) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:7) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:17) ~[FMLIndexedMessageToMessageCodec.class:?]
          at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:?]
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:?]
          … 19 more
          [19:51:47] [Client thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
          io.netty.handler.codec.DecoderException: java.lang.NullPointerException
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:?]
          at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
          at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
          at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
          at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
          at net.minecraft.client.Minecraft.runTick(Minecraft.java:2152) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
          at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
          at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
          at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
          at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
          at GradleStart.main(Unknown Source) [start/:?]
          Caused by: java.lang.NullPointerException
          at diabolicatrix.project.PacketRestrainClientServer.fromBytes(PacketRestrainClientServer.java:43) ~[PacketRestrainClientServer.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:17) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:7) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:17) ~[FMLIndexedMessageToMessageCodec.class:?]
          at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:?]
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:?]
          … 19 more
          [19:51:47] [Client thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
          io.netty.handler.codec.DecoderException: java.lang.NullPointerException
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:?]
          at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
          at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
          at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
          at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
          at net.minecraft.client.Minecraft.runTick(Minecraft.java:2152) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
          at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
          at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
          at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
          at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
          at GradleStart.main(Unknown Source) [start/:?]
          Caused by: java.lang.NullPointerException
          at diabolicatrix.project.PacketRestrainClientServer.fromBytes(PacketRestrainClientServer.java:43) ~[PacketRestrainClientServer.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:17) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:7) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:17) ~[FMLIndexedMessageToMessageCodec.class:?]
          at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:?]
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:?]
          … 19 more
          [19:51:47] [Client thread/ERROR] [FML]: SimpleChannelHandlerWrapper exception
          io.netty.handler.codec.DecoderException: java.lang.NullPointerException
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:?]
          at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) [DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [DefaultChannelPipeline.class:?]
          at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:?]
          at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
          at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
          at net.minecraft.client.Minecraft.runTick(Minecraft.java:2152) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
          at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
          at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
          at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
          at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
          at GradleStart.main(Unknown Source) [start/:?]
          Caused by: java.lang.NullPointerException
          at diabolicatrix.project.PacketRestrainClientServer.fromBytes(PacketRestrainClientServer.java:43) ~[PacketRestrainClientServer.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:17) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:7) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:17) ~[FMLIndexedMessageToMessageCodec.class:?]
          at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:?]
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:?]
          … 19 more
          [19:51:47] [Client thread/ERROR] [FML]: There was a critical exception handling a packet on channel T4Channel
          io.netty.handler.codec.DecoderException: java.lang.NullPointerException
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:99) ~[MessageToMessageDecoder.class:?]
          at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:337) ~[DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:323) ~[DefaultChannelHandlerContext.class:?]
          at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) ~[DefaultChannelPipeline.class:?]
          at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) ~[EmbeddedChannel.class:?]
          at cpw.mods.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:86) [FMLProxyPacket.class:?]
          at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) [NetworkManager.class:?]
          at net.minecraft.client.Minecraft.runTick(Minecraft.java:2152) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) [Minecraft.class:?]
          at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
          at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51]
          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_51]
          at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_51]
          at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
          at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
          at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
          at GradleStart.main(Unknown Source) [start/:?]
          Caused by: java.lang.NullPointerException
          at diabolicatrix.project.PacketRestrainClientServer.fromBytes(PacketRestrainClientServer.java:43) ~[PacketRestrainClientServer.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:17) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.simpleimpl.SimpleIndexedCodec.decodeInto(SimpleIndexedCodec.java:7) ~[SimpleIndexedCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:77) ~[FMLIndexedMessageToMessageCodec.class:?]
          at cpw.mods.fml.common.network.FMLIndexedMessageToMessageCodec.decode(FMLIndexedMessageToMessageCodec.java:17) ~[FMLIndexedMessageToMessageCodec.class:?]
          at io.netty.handler.codec.MessageToMessageCodec$2.decode(MessageToMessageCodec.java:81) ~[MessageToMessageCodec$2.class:?]
          at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) ~[MessageToMessageDecoder.class:?]
          … 19 more
          [19:51:47] [Server thread/INFO]: Player445 lost connection: TextComponent{text='Disconnected', siblings=[], style=Style{hasParent=false, color=null, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null}}
          [19:51:47] [Server thread/INFO]: Player445 a quitté la partie
          [19:51:47] [Server thread/INFO]: Stopping singleplayer server as player logged out
          [19:51:48] [Server thread/INFO]: Stopping server
          [19:51:48] [Server thread/INFO]: Saving players
          [19:51:48] [Server thread/INFO]: Saving worlds
          [19:51:48] [Server thread/INFO]: Saving chunks for level 'Nouveau monde'/Overworld
          [19:51:49] [Server thread/INFO]: Saving chunks for level 'Nouveau monde'/Nether
          [19:51:49] [Server thread/INFO]: Saving chunks for level 'Nouveau monde'/The End
          [19:51:51] [Server thread/INFO] [FML]: Unloading dimension 0
          [19:51:51] [Server thread/INFO] [FML]: Unloading dimension -1
          [19:51:51] [Server thread/INFO] [FML]: Unloading dimension 1
          [19:51:51] [Server thread/INFO] [FML]: Applying holder lookups
          [19:51:51] [Server thread/INFO] [FML]: Holder lookups applied
          
          

          Mes classes:

          EEPRestrained:

          package diabolicatrix.project;
          
          import java.awt.List;
          import java.util.LinkedList;
          
          import diabolicatrix.project.proxy.CommonProxy;
          import net.minecraft.client.resources.I18n;
          import net.minecraft.entity.Entity;
          import net.minecraft.entity.player.EntityPlayer;
          import net.minecraft.entity.player.EntityPlayerMP;
          import net.minecraft.init.Items;
          import net.minecraft.item.ItemStack;
          import net.minecraft.nbt.NBTTagCompound;
          import net.minecraft.world.World;
          import net.minecraftforge.common.IExtendedEntityProperties;
          
          public class EEPRestrained implements IExtendedEntityProperties {
          
          public final static String EXT_PROP_NAME = "EEPRestrained";
          
          public boolean[] licenses;
          
          private EntityPlayer player;
          public long cash;
          public long money;
          public boolean escorted = false;
          public EntityPlayer escorter;
          
          public boolean restrained = false;
          
              public EEPRestrained(EntityPlayer player) {
          this.player = player;
          this.restrained = false;
          this.cash = 0;
          this.money = 0;
          this.licenses = new boolean[] {false, false, false, false, false, false, false, false, false};
              }
          
              public static final void register(EntityPlayer player) {
          player.registerExtendedProperties(EEPRestrained.EXT_PROP_NAME, new EEPRestrained(player));
          }
          
          public static final EEPRestrained get(EntityPlayer player) {
          return (EEPRestrained)player.getExtendedProperties(EXT_PROP_NAME);
          }
          
          @Override
          public void saveNBTData(NBTTagCompound compound) {
          
          NBTTagCompound properties = new NBTTagCompound();
          
          properties.setBoolean("Restrained", this.restrained);
          properties.setBoolean("Escorted", this.escorted);
          properties.setLong("Cash", this.cash);
          properties.setLong("Money", this.money);
          
          for(int i = 0; i < this.licenses.length; i++)
          {
          properties.setBoolean("License" + i, this.licenses*);
          }
          
          compound.setTag(EXT_PROP_NAME, properties);
          
          }
          
          public void saveNBTDataMoney(NBTTagCompound compound) {
          
          NBTTagCompound properties = new NBTTagCompound();
          
          properties.setLong("Money", this.money);
          
          compound.setTag(EXT_PROP_NAME, properties);
          
          }
          
          @Override
          public void loadNBTData(NBTTagCompound compound) {
          
          NBTTagCompound properties = (NBTTagCompound) compound.getTag(EXT_PROP_NAME);
          this.restrained = properties.getBoolean("Restrained");
          this.escorted = properties.getBoolean("Escorted");
          this.cash = properties.getLong("Cash");
          this.money = properties.getLong("Money");
          
          for(int i = 0; i < this.licenses.length; i++)
          {
          this.licenses* = properties.getBoolean("License" + i);
          }
          
          }
          
          @Override
          public void init(Entity entity, World world) {
          }
          
          public final void sync() {
          if (player.worldObj.isRemote) {
                    Base.instance.network.sendToServer(new PacketRestrainServer(this.restrained, this.cash, this.money, this.escorted, this.licenses));
          }
          
          if (!player.worldObj.isRemote) {
          EntityPlayerMP player1 = (EntityPlayerMP) player;
          Base.instance.network.sendTo(new PacketRestrainClientServer(this.restrained, this.cash, this.money, this.escorted, this.licenses), player1);
          }
          }
          
          private static String getSaveKey(EntityPlayer player) {
          return player.getDisplayName() + ":" + EXT_PROP_NAME;
          }
          
          public static void saveProxyData(EntityPlayer player) {
          EEPRestrained playerData = EEPRestrained.get(player);
          NBTTagCompound savedData = new NBTTagCompound();
          
          playerData.saveNBTData(savedData);
          CommonProxy.storeEntityData(getSaveKey(player), savedData);
          }
          
          public static void loadProxyData(EntityPlayer player) {
          EEPRestrained playerData = EEPRestrained.get(player);
          NBTTagCompound savedData = CommonProxy.getEntityData(getSaveKey(player));
          
          if (savedData != null) {
          playerData.loadNBTData(savedData);
          }
          playerData.sync();
          }
          
          public void restrain() {
          this.restrained = true;
          this.sync();
          }
          
          public void unrestrain() {
          this.restrained = false;
          this.sync();
          }
          
          public boolean isRestrained()
          {
          return restrained;
          }
          
          public void pay() {
          this.sync();
          }
          
          public void addCash(long amount) {
          boolean sufficient = amount <= this.getMoney();
          if(sufficient)
          {
          this.cash += amount;
          this.money -= amount;
          this.sync();
          }
          }
          
          public boolean sufficient(long amount) {
          boolean sufficient = amount <= this.getCash();
          if(sufficient)
          {
          return true;
          }
          else
          {
          return false;
          }
          }
          
          public boolean sufficientm(long amount) {
          boolean sufficient = amount <= this.getMoney();
          if(sufficient)
          {
          return true;
          }
          else
          {
          return false;
          }
          }
          
          public String buyCashTest(long amount, ItemStack item) {
          boolean sufficient = amount <= this.getCash();
          if(sufficient)
          {
          if(item != null)
          {
          
          boolean isEmpty = false;
          for (int i=0; i<= player.inventory.getSizeInventory() - 5; i++) {
          //System.out.println(i);
                     if(player.inventory.mainInventory* == item || player.inventory.mainInventory* == null) {
                         isEmpty = true;
                         break;
                     }
                 } 
                 if(isEmpty) {
              //this.delCash2(amount);
              //player.inventory.addItemStackToInventory(item);
          return "t4.boughtitem";
                 } else {
                  return "t4.notenoughspace";
                 }
          
          }
          else
          {
          }
          }
          else
          {
          return "t4.notenoughmoney";
          }
          return null;
          }
          
          public void buyCash(long amount, ItemStack item) {
          boolean sufficient = amount <= this.getCash();
          if(sufficient)
          {
          if(item != null)
          {
          
          boolean isEmpty = false;
          for (int i=0; i<= player.inventory.getSizeInventory() - 5; i++) {
                     if(player.inventory.mainInventory* == item || player.inventory.mainInventory* == null) {
                         isEmpty = true;
                         break;
                     }
                 } 
                 if(isEmpty) {
              this.delCash2(amount);
              player.inventory.addItemStackToInventory(item);
                 } else {
                 }
          
          }
          else
          {
          }
          }
          else
          {
          }
          }
          
          public void addCashRaw(long amount) {
          
          this.cash += amount;
          this.sync();
          }
          
          public void delCash(long amount) {
          boolean sufficient = amount <= this.getCash();
          if(sufficient)
          {
          this.cash -= amount;
          this.money += amount;
          this.sync();
          }
          }
          
          public void delCash2(long amount) {
          boolean sufficient = amount <= this.getCash();
          if(sufficient)
          {
          this.cash -= amount;
          this.sync();
          }
          }
          
          public void delMoney(long amount) {
          boolean sufficient = amount <= this.getMoney();
          if(sufficient)
          {
          this.money -= amount;
          this.sync();
          }
          }
          
          public long getCash() {
          return this.cash;
          }
          
          public void addMoney(long amount) {
          
          this.money += amount;
          this.sync();
          }
          
          public void setMoney(long amount) {
          
          this.money = amount;
          this.sync();
          }
          
          public void setCash(long amount) {
          
          this.cash = amount;
          this.sync();
          }
          
          public long getMoney() {
          return this.money;
          }
          
          public boolean isEscorted() {
          return escorted;
          }
          
          public void setEscorted(boolean escorted) {
          this.escorted = escorted;
          }
          
          }
          
          

          PacketRestrainServer:

          package diabolicatrix.project;
          import java.util.List;
          import java.util.UUID;
          
          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 io.netty.buffer.ByteBuf;
          import net.minecraft.client.Minecraft;
          import net.minecraft.entity.player.EntityPlayer;
          import net.minecraft.entity.player.EntityPlayerMP;
          import net.minecraft.server.MinecraftServer;
          
          public class PacketRestrainServer implements IMessage {
          
          private boolean restrained;
          private long money;
          private long cash;
          private boolean isMoney;
          private boolean escorted;
          
          private boolean[] licenses;
          
          public PacketRestrainServer(boolean restrained, long cash, long money, boolean escorted, boolean[] licenses) {
          this.restrained = restrained;
          this.cash = cash;
          this.money = money;
          this.escorted = escorted;
          this.licenses = licenses;
          }
          
          public PacketRestrainServer() {}
          
          @Override
          public void fromBytes(ByteBuf buf) {
          this.escorted = buf.readBoolean();
          this.restrained = buf.readBoolean();
          this.money = buf.readLong();
          this.cash = buf.readLong();
          for(int i = 0; i < this.licenses.length; i++)
          {
          this.licenses* = buf.readBoolean();
          }
          }
          
          @Override
          public void toBytes(ByteBuf buf) {
          buf.writeBoolean(this.escorted);
          buf.writeBoolean(this.restrained);
          buf.writeLong(this.money);
          buf.writeLong(this.cash);
          for(int i = 0; i < this.licenses.length; i++)
          {
          buf.writeBoolean(this.licenses*);
          }
          }
          
          public static class Handler implements IMessageHandler <packetrestrainserver, imessage="">{
          @Override
          public IMessage onMessage(PacketRestrainServer message, MessageContext ctx) 
          {
          EntityPlayer player = ctx.getServerHandler().playerEntity;
          EEPRestrained props = EEPRestrained.get(player);
          props.money = message.money;
          props.cash = message.cash;
          props.restrained = message.restrained;
          props.escorted = message.escorted;
          props.licenses = message.licenses;
          return null;
          }
          
          }
          
          }
          
          

          PacketRestrainClientServer:

          package diabolicatrix.project;
          import java.util.List;
          import java.util.UUID;
          
          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;
          import io.netty.buffer.ByteBuf;
          import net.minecraft.client.Minecraft;
          import net.minecraft.entity.player.EntityPlayer;
          import net.minecraft.entity.player.EntityPlayerMP;
          import net.minecraft.server.MinecraftServer;
          
          public class PacketRestrainClientServer implements IMessage {
          
          private boolean restrained;
          private long money;
          private long cash;
          private boolean isMoney;
          private boolean escorted;
          
          private boolean[] licenses;
          
          public PacketRestrainClientServer(boolean restrained, long cash, long money, boolean escorted, boolean[] licenses) {
          this.restrained = restrained;
          this.cash = cash;
          this.money = money;
          this.escorted = escorted;
          this.licenses = licenses;
          }
          
          public PacketRestrainClientServer() {}
          
          @Override
          public void fromBytes(ByteBuf buf) {
          this.escorted = buf.readBoolean();
          this.restrained = buf.readBoolean();
          this.money = buf.readLong();
          this.cash = buf.readLong();
          for(int i = 0; i < this.licenses.length; i++)
          {
          this.licenses* = buf.readBoolean();
          }
          }
          
          @Override
          public void toBytes(ByteBuf buf) {
          buf.writeBoolean(this.escorted);
          buf.writeBoolean(this.restrained);
          buf.writeLong(this.money);
          buf.writeLong(this.cash);
          for(int i = 0; i < this.licenses.length; i++)
          {
          buf.writeBoolean(this.licenses*);
          }
          }
          
          public static class Handler implements IMessageHandler <packetrestrainclientserver, imessage="">{
          @Override
          @SideOnly(Side.CLIENT)
          public IMessage onMessage(PacketRestrainClientServer message, MessageContext ctx) 
          {
          EntityPlayer player = Minecraft.getMinecraft().thePlayer;
          EEPRestrained props = EEPRestrained.get(player);
          props.money = message.money;
          props.cash = message.cash;
          props.restrained = message.restrained;
          props.escorted = message.escorted;
          props.licenses = message.licenses;
          return null;
          }
          
          }
          
          }
          
          ```</packetrestrainclientserver,></packetrestrainserver,>
          1 réponse Dernière réponse Répondre Citer 0
          • SCAREXS Hors-ligne
            SCAREX
            dernière édition par

            Tu dois initialiser ton tableau

            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
            • DeletedD Hors-ligne
              Deleted
              dernière édition par

              Il est initialisé son tableau, regarde sa variable licenses

              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

                Non.

                private boolean[] licenses;
                

                licenses est null.

                Cette variable n’est que initialisé dans le constructeur utilisé pour l’envoie du paquet :

                public PacketRestrainServer(boolean restrained, long cash, long money, boolean escorted, boolean[] licenses) {
                this.restrained = restrained;
                this.cash = cash;
                this.money = money;
                this.escorted = escorted;
                this.licenses = licenses;
                }
                

                Dans le constructeur utilisé à l’arrivé du paquet, il n’y a rien :

                public PacketRestrainServer() {}
                

                Pour la gestion des noms, afin d’éviter de faire un tableau avec des booleans et un autre avec des Strings pour le nom non localisé, ce que je ferai c’est utiliser un seul tableau. Seulement celui avec les strings et j’utiliserai un string null (ou un qui vaut “”) pour l’équivalent de false, dans les autres cas true.

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

                  A oui mal vu…
                  Au pire, si il l avait initialisé en même temps que la déclaration y aurait pas eu ce genre de soucis ^^’

                  1 réponse Dernière réponse Répondre Citer 0
                  • DiabolicaTrixD Hors-ligne
                    DiabolicaTrix Correcteurs Moddeurs confirmés
                    dernière édition par

                    Pour les nom localisé, c’est une bonne idée, par contre pour le reste normalement je ne crois pas que le fait qu’il soit null cause un problème car elles le sont toutes et je n’ai pas de problème.

                    private boolean restrained;
                    private long money;
                    private long cash;
                    private boolean isMoney;
                    private boolean escorted;
                    
                    private boolean[] licenses;
                    

                    Sinon, je n’ai pas trop compris, tu veux que je mettes quoi dans l’arrivée du packet?

                    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

                      Tu utilises le field length du tableau licences, or comme licences est null ça cause un NPE.

                      1 réponse Dernière réponse Répondre Citer 0
                      • DiabolicaTrixD Hors-ligne
                        DiabolicaTrix Correcteurs Moddeurs confirmés
                        dernière édition par

                        Ah d’accord, je dois donc l’initialisé là à la place du constructeur.

                        1 réponse Dernière réponse Répondre Citer 0
                        • 1 / 1
                        • Premier message
                          Dernier message
                        Design by Woryk
                        ContactMentions Légales

                        MINECRAFT FORGE FRANCE © 2024

                        Powered by NodeBB