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

    Résolu Click droit sur une entity exécute command

    1.7.x
    1.7.10
    2
    3
    426
    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.
    • K
      Kuribo24 dernière édition par

      Bonjour, je cherche depuis bientôt 3h a que quand je fasse un click droit sur mon entity (que j’ai crée) ça excute une command a la console du serveur

      Voila ma classe Event:

      public class EventPNJ1
      {
          @SubscribeEvent
          public void onRightClickPNJ1(PlayerInteractEvent e)
          {
              if(e.entity instanceof EntityPlayer)
              {
                  if(EntityPlayer (e.action.RIGHT_CLICK_AIR))
                  {
                      MinecraftServer minecraftserver = MinecraftServer.getServer();
                      net.minecraft.entity.player.EntityPlayer entity = null;
                      if (minecraftserver != null)
                          minecraftserver.getCommandManager().executeCommand((EntityPlayer) entity, "say salut");
                  }
              }
      
          }
      
          private boolean EntityPlayer(Action rightClickAir)
          {
      
              return false;
          }
      }
      

      Ci possible crée une permission et vérifier si le joueur la avant de excuter la command.

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

        Tu as plusieurs problèmes dans ton code actuellement :

        • C’est inutile de faire un null check sur minecraftserver car MinecraftServer.getServer() ne retourne jamais null pendant qu’un monde est lancé.
        • Ta variable “entity” est toujours nulle donc la commande ne peut pas s’éxécuter, tu peux par exemple remplacer son utilisation par “minecraftserver” vu que lui aussi peut envoyer des commandes.

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

          Ah j’ai refait tout mon code et la il marche

          Il suffit d’ajouter ceci dans la classe du mob

          
          public boolean interact(EntityPlayer entity) 
              {
                  super.interact(entity);
                  int i = (int) this.posX;
                  int j = (int) this.posY;
                  int k = (int) this.posZ;
          
                  if (true) 
                  {
          
                      if (true) 
                      {
                          MinecraftServer.getServer().getCommandManager().executeCommand(MinecraftServer.getServer(), "say salut");
                      }
          
                  }
          
                  return true;
              }
          
          

          C’est plus propre je trouve et je suis débutant dans le java je pratique depuis bientôt 4mois

          Merci de m’avoir aider.

          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