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

    Résolu [1.16.5] Block qui Execute une Command

    1.16.x
    1.16.x
    3
    6
    242
    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.
    • R
      RotorTV dernière édition par

      Bonjour,
      j’essaye de faire en sorte que mon Block execute une commande quand je fais clique droit dessus.

      Il y a plusieurs Tuto pour d’autre version que la 1.16.5 mais je n’en ai trouvé aucun pour cette version.

      Je remercie d’avance toutes personne me venant en aide.

      P 1 réponse Dernière réponse Répondre Citer 0
      • P
        PlagueZ @RotorTV dernière édition par

        @RotorTV clone le commande block juste a la place que il utilise un champ de saisie tu hard code ta commande?

        “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

        R 1 réponse Dernière réponse Répondre Citer 0
        • R
          RotorTV @PlagueZ dernière édition par

          @PlagueZ Merci mais je doit mettre quoi pour que la command soit executer ?
          Genre les lignes de codes des anciens tutos ne marche pas et je ne sais pas non plus au les mettres dans la class.

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

            Personne d’autre n’a d’idée de comment je pourrais faire ça ?

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

              Après pas mal de recherche j’ai enfin trouvé comment faire.

              @SubscribeEvent
              public static void PlayerRightClick(PlayerInteractEvent.RightClickBlock event) {
                      BlockState iblockstate = event.getWorld().getBlockState(event.getPos());
                      Block block = iblockstate.getBlock();
                      if (block == ModBlocks.PARADIS_TP.get())
                      {
                      	Paradis_Tp.onBlockActivated();
                      }
              	}
              
              public static void onBlockActivated() {
              	MinecraftServer source = LogicalSidedProvider.INSTANCE.get(LogicalSide.SERVER);		
              	source.getCommands().performCommand(source.createCommandSourceStack(), "execute in destriummod:paradis run teleport @p 1 100 1");
              	  		
              	}
              

              Si d’autre gens auront le meme problème que moi.

              Krafty 1 réponse Dernière réponse Répondre Citer 0
              • Cette question est désormais résolue  R RotorTV 
              • Cette question n'est désormais plus résolue  R RotorTV 
              • Cette question est désormais résolue  R RotorTV 
              • Krafty
                Krafty @RotorTV dernière édition par Krafty

                @RotorTV Je préviens juste que le système est TRÈS mal fait… (c’est pas ta faute si t’es débutant) C’est pas optimisé DU TOUT parce que ça passe d’abord par le système qui décrypte la commande, et la méthode avec l’évènement onRightClick je pense que tu l’as mis dans la classe principale, il ne faut pas faire ça, car ça va exécuter la méthode même si t’as pas cliqué sur TON bloc, donc problème d’FPS garanti. Donc mets cette méthode dans la classe de ton bloc, et comme ça tu pourras utiliser, comme il y aura plus le “static”, une méthode de tp directement sur l’entité joueur, ça sera plus opti et comme tu as mis la commande en “@p”, ça vas fonctionner même si le joueur qui a cliqué se trouve plus loin qu’un joueur qui a pas cliqué (ça fait pas ça avec le “@p”).

                Je vais faire ton code, j’ai l’impression que t’es un peu maladroit… Sans vouloir te vexer hein, c’est pour t’aider ^^

                Dans la classe de ton bloc :

                @Override
                	public ActionResultType use(BlockState p_225533_1_, World p_225533_2_, BlockPos p_225533_3_, PlayerEntity p_225533_4_, Hand p_225533_5_,
                			BlockRayTraceResult p_225533_6_) {
                		p_225533_4_.changeDimension(); // J'ai jamais encore travaillé sur les dimensions
                                // mais tu devrais avoir un objet "ServerWorld" je pense, et mets-le là.
                		p_225533_4_.teleportTo(1, 100, 1);
                		return ActionResultType.SUCCESS;
                	}
                

                C’est très simple. À l’avenir évite les coordonnées fixes, parce que lors de la génération de la dimension on ne sait pas où se trouvera un bon endroit ou apparaître, il faudrait éviter de se tp dans le vide ou de finir emmuré… Je ne sais pas comment calculer un spawn convenable, mais je te conseille de décortiquer CE MOD pour trouver comment faire.

                À+

                Krafty

                1 réponse Dernière réponse Répondre Citer 0
                • Déplacé de Support pour les moddeurs par  robin4002 robin4002 
                • 1 / 1
                • Premier message
                  Dernier message
                Design by Woryk
                Contact / Mentions Légales

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB