• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Problème avec les packets

    1.7.x
    1.7.10
    2
    5
    1303
    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.
    • Sevening
      Sevening dernière édition par

      Salut Salut !

      Hier j’ai voulu faire un mod qui détécte si le joueur utilise le launcher custom ou pas ( je sais que les launchers custom ne son plus en support )
      J’ai fait de nombreuses recherches et j’ai fini par tomber sur un topic qui disait que j’avais besoin de faire appel aux packets custom !
      La encore après de nombreuses recherches je me suis retrouvé avec des tutoriels datant du 27 avril 2013 utilisant le Packet270CustomPayload x)

      C’est alors que j’ai trouvé le tutoriel qui a été posté ici même >>>celui-ci<<<

      J’ai bien lu et tout compris .

      Mais je me retoruve avec le problème que (2 possibilités)

      La plus probable : Le packet ne s’envoye pas

      Alors pour faire simple je doute que le packet soit envoyé vu que je ne reçois aucun message de retour !

      Mon code
      Class ModCustomMenu

      @Mod(modid = "ChaosPVP", name = "ChaosPVP", version = "1.0.0")
      public class ModCustomMenu {
      public static SimpleNetworkWrapper network;
      
      @EventHandler
      public void preinit(FMLPreInitializationEvent e){
      
      }
      @EventHandler
      public void init(FMLInitializationEvent e) {
      if (e.getSide().isClient()) {
      network = NetworkRegistry.INSTANCE.newSimpleChannel("ChaosPVP");
            network.registerMessage(Launcher.Handler.class, Launcher.class, 84, Side.SERVER);
      FMLCommonHandler.instance().bus().register(this);
      MinecraftForge.EVENT_BUS.register(new EventsHandler());
      }
      }
      
      @SubscribeEvent
      @SideOnly(Side.CLIENT)
      public void onTick(TickEvent.ClientTickEvent event) {
      Minecraft mc = FMLClientHandler.instance().getClient();
      if (mc.currentScreen != null
      && mc.currentScreen.getClass().equals(GuiMainMenu.class)) {
      // mc.displayGuiScreen(new GuiCustomMainMenu());
      } else if (mc.currentScreen != null
      && mc.currentScreen.getClass().equals(GuiMultiplayer.class)) {
      //mc.displayGuiScreen(new GuiCustomMainMenu());
      }
      }
      @SubscribeEvent
      public void playerLoggedInEvent(ClientConnectedToServerEvent event) {
      Minecraft mc = FMLClientHandler.instance().getClient();
      network.sendToServer(new Launcher("Launcher") );
      
      }
      

      Class Launcher

      public class Launcher implements IMessage {
      
         private String text;
      
         public Launcher() { }
      
         public Launcher(String text) {
             this.text = text;
         }
      
         @Override
         public void fromBytes(ByteBuf buf) {
             text = ByteBufUtils.readUTF8String(buf); // this class is very useful in general for writing more complex objects
         }
      
         @Override
         public void toBytes(ByteBuf buf) {
             ByteBufUtils.writeUTF8String(buf, text);
         }
      
         public static class Handler implements IMessageHandler <launcher, imessage="">{
      
             @Override
             public IMessage onMessage(Launcher message, MessageContext ctx) {
             if(message.text.equals("Launcher")){
              System.out.println("You have the launcher ! You're now prefixed !");
             }
             System.out.println(String.format("Received %s from %s", message.text, ctx.getServerHandler().playerEntity.getDisplayName()));
                 return null; // no response in this case
             }
         }
      }
      

      2ème possibilité : Le serveur ne recoit pas le packet

      Mais bon je ne pense pas que celui ci soit le vrai problème !

      Merci d’avance :)</launcher,>

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Salut,
        Déjà tu n’enregistres que les paquets côté client, donc c’est pour ça que ça ne fonctionne pas.
        Deuxièmement, ce que tu fais est inutile, comme tu as fait un mod pour ton serveur, n’importe quel personne qui veut se connecter devra avoir le mod, sinon il ne pourra pas se connecter.

        1 réponse Dernière réponse Répondre Citer 0
        • Sevening
          Sevening dernière édition par

          Alors comment est-ce qu’un serveur ( je ne dirai pas le nom pour éviter toute pub ) a réussi à faire en sorte que certains joueurs ne puissent se connecter qu’avec le launcher pour éviter Nodus , WeepCraft , etc. ?

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

            Si se sont des serveurs non Forge il ont juste à faire les modif sur les sources de MC.
            Si c’est un serveur Forge tu évites directement tous les mods de cheat qui ne sont pas compatible avec Forge.
            Et de toute façon si la personne n’a pas ton mod d’installé il ne pourra pas se co. Donc Forge + ton mod fait déjà office de protection. C’est ce que je t’ai déjà dit sur mon premier message.

            1 réponse Dernière réponse Répondre Citer 0
            • Sevening
              Sevening dernière édition par

              Ok , Merci !

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

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB