MFF

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

    Est-il Op?

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    42 Messages 4 Publieurs 10.0k 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

      Il te manque un constructeur vide dans la classe PacketOpenPlayerMenu. Pour tous les paquets il faut toujours un constructeur vide.
      Ajoutes :
      public PacketOpenPlayerMenu() {
      }
      Et ta variable isOp ne devrait pas être static, dans le handler tu dois utiliser message.isOp au lieu de isOp.

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

        ça ne crash plus mais j’ai aucune réponse comme si le packetop ne recoit plus le 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

          Mets des System.out.println(“blabla”); par-ci par là pour regarder si ça s’exécute ou pas.

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

            Ma touche est détectée mais le packet n’est pas reçu

            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 as bien enregistré les paquets ?

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

                Ouais

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

                  Envoi classe principale (celle avec le network), la classe du paquet et l’envoi du paquet.

                  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
                  • DiabolicaTrixD Hors-ligne
                    DiabolicaTrix Correcteurs Moddeurs confirmés
                    dernière édition par

                    J’envoie demain, je n’ai pas accès à mon ordi c’est pour ça que je ne l’ai pas encore donné

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

                      Dans ton PacketOpenPlayerMenu, les méthodes fromBytes(ByteBuf buf) et toBytes(ByteBuf buf) ne doivent pas être vide.
                      Relis le tutoriel.
                      Pourquoi as-tu utilisé static pour ton boolean isOp ?

                      –------------------------------------------------------------------------------------
                      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

                        C’était pas volontaire, c’est eclipse qui me l’avait proposé, je l’ai enlevé après. Sinon, je de nouveau accès à mon ordi j’édit dans 2 min pour les codes.

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

                          C’était pas volontaire, c’est eclipse qui me l’avait proposé, je l’ai enlevé après. Sinon, je de nouveau accès à mon ordi j’édit dans 2 min pour les codes.

                          PS: qu’est-ce que j’utilise dans le fromByte?

                          Edit:

                          Main:

                          network = NetworkRegistry.INSTANCE.newSimpleChannel("T4Channel");
                          network.registerMessage(PacketOp.Handler.class, PacketOp.class, 0, Side.SERVER);
                          
                          network.registerMessage(PacketOpenPlayerMenu.Handler.class, PacketOpenPlayerMenu.class, 0, Side.CLIENT);
                          

                          PacketOp:

                          package diabolicatrix.base;
                          
                          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.EntityPlayerMP;
                          import net.minecraft.server.MinecraftServer;
                          
                          public class PacketOp implements IMessage {
                          
                          @Override
                          public void fromBytes(ByteBuf buf) {}
                          
                          @Override
                          public void toBytes(ByteBuf buf) {}
                          
                          public static class Handler implements IMessageHandler <packetop, packetopenplayermenu="">{
                          private boolean isOp;
                          
                          @Override
                          public PacketOpenPlayerMenu onMessage(PacketOp message, MessageContext ctx) {
                          EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                          System.out.println("Message Reçu");
                          if(MinecraftServer.getServer().getConfigurationManager().func_152596_g(player.getGameProfile()))
                          {
                          System.out.println("op");
                          return new PacketOpenPlayerMenu(true);
                          }
                          else
                          {
                          System.out.println("player");
                          return new PacketOpenPlayerMenu(false);
                          }
                          }
                          
                          }
                          
                          }
                          

                          PacketOpenPlayerMenu:

                          package diabolicatrix.base;
                          
                          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;
                          
                          public class PacketOpenPlayerMenu implements IMessage {
                          
                          public boolean isOp;
                          
                          public PacketOpenPlayerMenu(boolean b) {
                          this.isOp = b;
                          }
                          
                          public PacketOpenPlayerMenu() {
                          }
                          
                          @Override
                          public void fromBytes(ByteBuf buf) {
                          }
                          
                          @Override
                          public void toBytes(ByteBuf buf) {}
                          
                          public static class Handler implements IMessageHandler <packetopenplayermenu, imessage="">{
                          @Override
                          public IMessage onMessage(PacketOpenPlayerMenu message, MessageContext ctx) {
                          if(message.isOp)
                          {
                          Minecraft.getMinecraft().displayGuiScreen(new GuiMouseOverOp());
                          }
                          else
                          {
                          Minecraft.getMinecraft().displayGuiScreen(new GuiMouseOver());
                          }
                          return null;
                          }
                          }
                          
                          }
                          ```</packetopenplayermenu,></packetop,>
                          1 réponse Dernière réponse Répondre Citer 0
                          • SCAREXS Hors-ligne
                            SCAREX
                            dernière édition par

                            Çà veut dire que t’as essayé d’appeler la valeur de façon statique. Or tu dois avoir un booléen par joueur

                            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
                            • DiabolicaTrixD Hors-ligne
                              DiabolicaTrix Correcteurs Moddeurs confirmés
                              dernière édition par

                              Ouais, pour le static, ça va mais pour les codes, j’ai edit mon message précédent, pour le formbyte et tobyte qu’est-ce que je dois mettre pour un boolean?

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

                                Incrémente le discriminant pour ton channel. Mets ta variable isOp en private.
                                Dans fromByte, tu as un ByteBuffer plein avec lequel tu remplis les attributs de ton objet.
                                Dans toByte, tu as un ByteBuffer vide que tu dois remplir avec les attributs de ton objet.
                                Je ne peux que te conseiller d’apprendre le Java car je ne pense pas que tu ai un bagage assez suffisant pour faire du modding Minecraft correctement. Je ne te dis pas ça pour te décourager mais au contraire, ça va t’éviter de patauger dans la boue pour chaques nouveautés et tu coderas beaucoup plus vite.

                                –------------------------------------------------------------------------------------
                                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

                                  Pour l’incrémentation c’était une erreur d’inattention sinon je ne comprend pas très bien l’utilité de frombyte/tobyte et ce qui faut que je mettes dedans, pour la vitesse j’ai aucun problème que ça me prenne 3 ans, ça ne me dérange pas :P. J’aime mieux apprendre avec quelque chose de concret comme Minecraft que de me mettre sur OpenClassroom et faire une calculatrice… :s


                                  package diabolicatrix.base;
                                  
                                  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.EntityPlayerMP;
                                  import net.minecraft.server.MinecraftServer;
                                  
                                  public class PacketOp implements IMessage {
                                  
                                  @Override
                                  public void fromBytes(ByteBuf buf) {}
                                  
                                  @Override
                                  public void toBytes(ByteBuf buf) {}
                                  
                                  public static class Handler implements IMessageHandler <packetop, packetopenplayermenu="">{
                                  private boolean isOp;
                                  
                                  @Override
                                  public PacketOpenPlayerMenu onMessage(PacketOp message, MessageContext ctx) {
                                  EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                                  System.out.println("Message Reçu");
                                  if(MinecraftServer.getServer().getConfigurationManager().func_152596_g(player.getGameProfile()))
                                  {
                                  System.out.println("op");
                                  return new PacketOpenPlayerMenu(true);
                                  }
                                  else
                                  {
                                  System.out.println("player");
                                  return new PacketOpenPlayerMenu(false);
                                  }
                                  }
                                  
                                  }
                                  
                                  }
                                  

                                  Mon code fonctionne jusqu’ici, si le joueur est op, ça ecrit op sinon player mais le packetopenplayermenu ne récupère pas le true ou le false donc c’est toujours le menu player qui ouvre.</packetop,>

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

                                    Pour le paquet qui vient du client, y’a pas besoin d’y insérer des données. En revanche il faut écrire ton booléen dans ton autre paquet : fromBytes et toBytes sont comme les NBT, une fonction lit, l’autre écrit, regarde le tuto de blackout.

                                    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
                                    • DiabolicaTrixD Hors-ligne
                                      DiabolicaTrix Correcteurs Moddeurs confirmés
                                      dernière édition par

                                      J’ai lu le tuto de blackout mais quel est la fonction pour les boolean? Je sais que pour les string c’est ByteBufUtils.readUTF8String(buf); et que pour les int c’est: ByteBufUtils.readVarInt(buf, maxSize);

                                      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

                                        buf.read/writeBoolean

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

                                          Ah parfait merci beaucoup! mon code final:

                                          PacketOp:

                                          package diabolicatrix.base;
                                          
                                          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.EntityPlayerMP;
                                          import net.minecraft.server.MinecraftServer;
                                          
                                          public class PacketOp implements IMessage {
                                          
                                          @Override
                                          public void fromBytes(ByteBuf buf) {}
                                          
                                          @Override
                                          public void toBytes(ByteBuf buf) {}
                                          
                                          public static class Handler implements IMessageHandler <packetop, packetopenplayermenu="">{
                                          private boolean isOp;
                                          
                                          @Override
                                          public PacketOpenPlayerMenu onMessage(PacketOp message, MessageContext ctx) {
                                          EntityPlayerMP player = ctx.getServerHandler().playerEntity;
                                          System.out.println("Message Reçu");
                                          if(MinecraftServer.getServer().getConfigurationManager().func_152596_g(player.getGameProfile()))
                                          {
                                          System.out.println("op");
                                          return new PacketOpenPlayerMenu(true);
                                          }
                                          else
                                          {
                                          System.out.println("player");
                                          return new PacketOpenPlayerMenu(false);
                                          }
                                          }
                                          
                                          }
                                          
                                          }
                                          

                                          PacketOpenPlayerMenu:

                                          package diabolicatrix.base;
                                          
                                          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;
                                          
                                          public class PacketOpenPlayerMenu implements IMessage {
                                          
                                          private boolean isOp;
                                          
                                          public PacketOpenPlayerMenu(boolean b) {
                                          this.isOp = b;
                                          }
                                          
                                          public PacketOpenPlayerMenu() {
                                          }
                                          
                                          @Override
                                          public void fromBytes(ByteBuf buf) {
                                          this.isOp = buf.readBoolean();
                                          }
                                          
                                          @Override
                                          public void toBytes(ByteBuf buf) {
                                          buf.writeBoolean(this.isOp);
                                          }
                                          
                                          public static class Handler implements IMessageHandler <packetopenplayermenu, imessage="">{
                                          @Override
                                          public IMessage onMessage(PacketOpenPlayerMenu message, MessageContext ctx) {
                                          if(message.isOp)
                                          {
                                          System.out.println("OP");
                                          Minecraft.getMinecraft().displayGuiScreen(new GuiMouseOverOp());
                                          }
                                          else
                                          {
                                          System.out.println("Player");
                                          Minecraft.getMinecraft().displayGuiScreen(new GuiMouseOver());
                                          }
                                          return null;
                                          }
                                          }
                                          
                                          }
                                          ```</packetopenplayermenu,></packetop,>
                                          1 réponse Dernière réponse Répondre Citer 0
                                          • RedRelayR Hors-ligne
                                            RedRelay Moddeurs confirmés
                                            dernière édition par

                                            Tu as encore private boolean isOp; dans PacketOp.Handler qui ne sert a rien.
                                            Le problème c’est que tu ne va pas tout apprendre en ne faisant que du concret. L’inverse est vrai aussi. Tu ne peux pas tout apprendre avec uniquement de l’abstrait.

                                            Les tutoriels d’OpenClassRoom sont destinés au plus large publique possible. Par conséquent le rythme est très très moux pour être sûr que tout le monde comprend. Donc ça peut te paraître lent et ennuyeux. Je n’ai jamais été très fan des tutoriels OCR bien que je reconnais qu’ils ne sont pas mauvais, ils ne me correspondent pas.

                                            Ce tutoriel http://jmdoudoux.developpez.com/cours/developpons/java/ de Jean-Michel DOUDOUX est destiné a un publique plus spécialisé. L’apparence et le formatage du texte sont moins acceuillant que sur OCR, mais tu vas apprendre plus de chose et plus vite.

                                            Je suis bien plus friand de ces derniers. Ça se voit je pense quand on regarde la rédaction de mes tutoriels par rapport aux autres membres de ce forum.

                                            Je comprend que le concret te passionne plus que les tutos, mais crois-moi, fait au moins les 2 😉

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

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB